Arc and Angle To me programming is more than an important practical art. It is also a gigantic undertaking in the foundations of knowledge. – Grace Hopper

8Jan/120

How To Get The Sidebar on Pages in WordPress TwentyEleven Theme

I've used WordPress software as a CMS for a bunch of websites, and I'd typically just customize the default theme, which for most of my sites was the TwentyTen theme. When the default theme became TwentyEleven, it threw me for a slight curve when the sidebar was not automatically present on pages. That seemed like an odd change.

At my last job, we simply hard-coded the sidebar and then recopied that code every time we started a new project. Well, I just realized that all of that is totally unnecessary and I really should've looked into the issue further. All you have to do is go to Pages, select all, click edit, and change the template to "sidebar template" as a bulk action. It couldn't be easier. Lesson learned.

11Dec/110

Grid Based Design

At work, I'm starting on a massive website redesign project that is already well on its way. While I have a lot of experience working with HTML and CSS to develop the structure and visual styles of a website, this project is using software and techniques that are pretty much entirely new to me.

One of these techniques is a way of approaching layout design using a grid based design structure. The idea behind it is that it provides a very well-balanced visual structure and its supposed to give developers a more thought-out and consistent layout. It's supposed to be better for quick prototyping, but for me at least, it is far from intuitive. Right now, it slows me down because I haven't gotten used to it. I'm excited to be working on this though because I do believe it'll be a very useful skill to develop and one that I would probably never have bothered to take the time to learn on my own account. With so much to learn in this field, I rarely go back to the things I think I already know and try to find a new way of doing them.

I've only taken a cursory look at our current design, but I've been reading a bit about grid designs this weekend and I'm excited to get back to work to find out a thing or two about the current design I'll be working on.  I think I'd like to pick the brain of our designer a bit and see if he'll walk me through his design process and choices. There are tons of online articles and resources on grid based design and I'm too new to it to write about it intelligently, but if anyone is interested in getting started, Smashing Magazine put together a great overview and I've particularly been impressed with Mark Boulton's "Five Simple steps to Designing Grid Systems".

The Golden Section is a ratio which is evident throughout the universe as the number Phi. You can use this ratio to good effect in design by making sure that elements of your grid conform to this ratio. Using the Golden Section can ensure a natural sense of correct composition, even though it is based in mathematics it will ‘feel’ right.

11Dec/110

Summary of First Full Week at MOS

I've completed a full week at the Museum of Science in Boston (MOS) and I'm looking forward to going back to work tomorrow. I had a nice introduction to the work culture before I even arrived for my first day when I was CC'd on an email that the director sent to our entire department introducing me in very kind words, letting everyone know when I'd be starting and suggested that people stop by during lunch to say hi. I also received some emails from a member of the department that included some kind words and helpful advice for my first day such as, "bring a sweater". These may seem like small gestures, but they are my first impression and as it's all I had to go on at the time, it made me feel optimistic about working with this team.

For my first day, the director gave me a tour of the museum campus and introduced to me quite a few people. The museum is huge; way larger than I had previously understood including a huge education wing that I had no idea existed. I come from Chicago, home of the Museum of Science and Industry and my understanding of MOS was that it was a great science museum, but that it's outreach and mission was on a much smaller scale than Chicago. While I'm still learning about MOS, I think it's safe to say that I underestimated its reach. My Chicago bias has been exposed. There is an entire department dedicated to working with other institutions. There is a library that provides science educational resources. It's quite involved in promoting education and scientific initiatives...it's great.

After getting the grand tour, I got to spend the rest of the day walking around the exhibits on my own. I tried to visit every exhibit, but I definitely spent more time in certain areas like technology and mathematics. I also got to take in a few shows and special exhibits: a special temporary exhibit A Day In Pompeii, an Omni film Greece: Secrets of the Past, a Planetarium show Undiscovered Worlds: The Search Beyond Our Sun, and the Lightening! Live Presentation in the Theater of Electricity.

For the rest of the week, I shadowed our Web Projects Manager to various meetings to meet members of other departments and get my footing on where we are in a massive web redesign project.

It's a great place doing wonderful work, a brilliant team, an interesting project (web redesign) and that only scratches the surface. I'd love to write more about everything I've learned this week; I'll hopefully manage to touch on the big topics. My general feeling right now is, "I can't believe I get to be here."

It's not all cupcakes and sprinkles though. The commute is about double what I anticipated and this last week has been hampered by purchasing a lemon of a vehicle that I thought would be a simple car to get me reliably to and from the T station. Unfortunately, there's a whole lot of problems with the car that are hopefully being fixed by the dealer (not likely...they've been awful and cheap) and I'm preparing myself to have to pursue a drawn out process for a refund. It's generally taking about an hour car drive to/from the T station and then another near hour on the T...four hours out of the day. It's a lot. I've been able to try out varying schedules and I'm liking the 8am-4pm time slot, and this'll do for a while. As much as I love and adore where I currently live, I suspect another move is in the not too distant future.

8Dec/110

Fourth Day at MOS

So I have completed my fourth day at MOS and I'm feeling pretty good about it. I look forward to work, learning a lot and the people in my department all seem really great. I know it's early, but it does seem like an ideal environment.

Today I participated in two meetings, one with the visual audio folks where we discussed some ideas for integrating video on the website. This department has a lot of archival and current videos on hand, so we're going to have more talks about potentially integrating it into the new main website in the not-too-distant future, but we have to think about how to do it intelligently and consider how it will be managed and how to best present it on the site.  We also had a department meeting where everyone summarized where we are with projects which is a nice way of keeping a large group of people integrated and on the same page. There are some really cool projects going on with work for exhibits and other systems, interesting stuff.

I've just gotten my first exposure to grid-based CSS, which I had read about a long time ago and Bonnie's brother had mentioned it to me as well, but I never really took it seriously as something to learn because I was more focused on learning classic CSS. It's a challenge because it's a very different way of thinking than I've been exposed to, but it actually makes a lot of sense and I think in the long run it'll be a much more efficient way of writing stylesheets.

This is really only another post to kind of briefly summarize what I actually want to write about in more depth if I have time. So additional potential topics:

  • command line vs. GUI interfaces
  • permanent marker on paint
  • source code control systems
  • HTML5 in an IE8 world

 

 

6Dec/110

Second Day at MOS

Oh man, so today is the completion of my second day at the Museum of Science in Boston and my head is spinning. I've decided that I want to try my best to document what is going on in my life right now as best I can, but I have so little time and so much newness. I don't even know where to start. Hopefully this weekend I'll find some time to flush out some content that adequately summarized all I've experienced and learned this week. It's 9:30 and half an hour past my bedtime, which is to say that I have to get up by 5 and get home by 7 if I'm lucky and have NO time outside of work to be spending on blogging.

So, I'll make a very quick list of things that I want to elaborate on, and perhaps if I'm motivated I'll get back to it:

  • Drupal stuff
  • Standards and HTML5
  • Museum organization stuff
  • SASS
  • Monitor ports
  • Our friendly mouse

Yawn, stretch, good night and sweet dreams.

3Dec/110

The Pragmatic Programmer

A while ago I was browsing online resources for information about programming and I had come across a reading list that recommended "The Pragmatic Programmer" by Andrew Hunt and David Thomas. I couldn't find it in the Ocean State Library System, but our awesome local librarians were able to track down a copy for me from the Salem State College Library in Massachusetts.  Whoever says that library's are obsolete simply doesn't read enough. I'm so happy I have this book in my hands now and for free; thank you Tiverton Library.

It was written in 2000, which in technology-years is ancient, but it deals with general principles and universal problems, so for the most part, it really isn't very dated.

One section I love talks about investing in your "knowledge portfolio". They're speaking my language. The basic idea is that the value of knowledge declines unless you continue to invest in it. Technology advances, market forces shift, environments are always changing and the value of your knowledge can quickly become obsolete or devalued. "An investment in knowledge always pays the best interest. -Benjamin Franklin".

Managing your "knowledge portfolio" isn't so different than managing your financial portfolio.

  • Invest Regularly (Learn constantly)
  • Diversify (The more technologies you are comfortable with, the better you will be able to adjust to change)
  • Manage Risk (Don't put all of your technical eggs in one basket)
  • Buy Low, Sell High (It can pay off to learn an emerging technology before it becomes popular)
  • Review and Rebalance

I guess I already knew all of that, but I never really thought of it as good, sound advice from a career advancement perspective. I just saw learning and trying new technologies as essential to staying passionate about what I do and I simply trusted that persistence and experience will pay off in the end. I like how they dissected those ideas and provided clarity that I can use to make better choices about my goals and how I spend my time.

2Dec/110

New Job in Boston

I have some great news. On Monday, I'm about to begin what I believe is a very exciting chapter in my work life. I'll start my first day working as a web & interactive developer at the Museum of Science in Boston. As a friend of mine so eloquently put it, that is "Alpha-Geek status...some seriously sexy stuff". The requisite Facebook announcement garnered nearly as many likes & comments as my birthday, and while I'm sure that many of those are from friends and family who are simply happy for me, I'm sure that the overwhelming response is because it's for the Museum of Science.

There is a lot to be excited about, but what really has me glowing is that it's an opportunity to do something I'm personally connected to and to advance my techie skills. Chock it up to hitting my 30's, but somewhere along my adventures through early adulthood, I've developed a yearning to do something with my life that contributes to making things a little bit better. To work for a museum that focuses on science and education and provides hundreds of visitors a few hours of fun, that's rewarding. That's something I want to be a part of.

It also just sounds like a great opportunity to advance my web skills and work with technologies I haven't had a chance to try out yet. It should be fun and challenging...perfect.

Now of course I'm a bit nervous and I'm sure it will have some stresses that I don't foresee...but that's called life. So far, everyone I've met has been incredibly friendly and helpful.

Getting this new position has reignited the spark I felt when I had just completed school and started my new position at my most recent job; I just wanted to learn learn learn and try something new. Now it feels like it's happening all over again, and to top it off, it comes with a free Segway tour of Boston.

9Sep/110

Find A Website’s IP Address

I started this blog when my whole focus was about learning and sharing, and since I've had a job, I've neglected the poor thing. Noo! I'll try to be better. I tend to make too big of a deal out of blog ideas and then put them off, instead of just regularly and spontaneously sitting down and just sharing random thoughts/tidbits. I tend to wait until I have a great big lesson, as though I'm planning a web design course or something. I think I'm going to attempt to simply share a thing or two a week. They don't need to be major.

So, for today's small little tidbit, I'm going to share something that I knew, but forgot about and was reminded only a few minutes ago while watching a Youtube clip. Sometimes, one needs to find the IP address of a website. Maybe you're really interested in the numbers that represent your own website, but most likely, you need it for some sort of functional purpose.

A recent example of this has happened at my job when we had built a new website for a client on our own server. We had simply pointed their domain name from their previous hosting account to their new hosting account with us. It turned out that some of the company's employees had saved some bookmarks to certain pages of their previous website on their desktops, and when we pointed the domain name to new servers, they couldn't access their page anymore...even though they hadn't yet canceled their old hosting account. The files were still on it, but the domain name wasn't pointing to that server anymore.

So we told them that as long as they still had access to their hosting account, we could probably get the specific directory moved to the new server. We had the proper FTP username and password, but the domain name wasn't going to work. We needed their IP address in order to connect to that server. They didn't know what their IP address was.

When I need a client's IP address and they don't know it off the top of their head, which is rather normal and probably healthy, I was sending them to http://whatismyipaddress.com/, which is fine, but it's much faster and much more responsible to simply get the IP myself...and I forgot that I could use command prompt to do just that.

So, to all dorks, web designers and others, this is a really really simple way of getting a websites IP address:

How To Ping A Website for it's IP Address

Step 1: Open your command prompt. On my current computer using Windows XP, you just go to the Start menu, then click run. Type "cmd" (without the quotes) to open command prompt and click OK.

Step 2: Once your command prompt is open, type: ping websitename.com (don't actually type websitename.com. Type in the name of the website that you want to retrieve the IP address from.) So for example, you could type: ping arcandangle.com and it was display a few bits of information including the IP address.

That's it. I should mention that in the example I started with, I wouldn't be able to ping that client by their domain name and get their old IP address. It would have given me the current IP address that their domain name was pointing to, which would have been our own server. BUT, the lesson here is that before transferring a domain name, I could have pinged and recorded their IP address just in case I needed it in the future.

28May/110

Dynamic Select Menu With Javascript

OK, so I promised I'd write something about how to dynamically change parts of a web form using javascript. As an example, I'm going to change the options on an HTML select menu based on which radio button a user selects. Do to the fact that it is spring and I'm anxious to plan a vacation, I decided that my example should be travel-related. So what I'm going to do is show you how to present two radio button options to your user asking them if they'd prefer a domestic vacation or a vacation abroad. Then, depending on which radio button they select, the options of destinations which change.

First I'll show you the code that goes in your header and then I'll show you the code that goes in the body section of your page. After both code blocks, I'll explain what's happening.


This code goes in the header of the page:




This code goes in the body of the page:


What type of travel destination would you prefer? Abroad Domestic

Explanation

The code in the body section of the page is an HTML form with two radio buttons and one selection menu. When either radio button is clicked, it calls the function that is written in the header and passes the function its value (in this case, it's either passing the function a value of '1' if the abroad button is clicked or '2' if the domestic button is clicked.) The statements in the function then set the values and text of the options list depending on which value it receives.

So, starting with the form. The first line is the opening form tag containing three form attributes: action, method and name. The action is the address of where to send the form-data when a form is submitted. Since this is just an example, I just put a generic web page down. Usually it would be sent to a form processing page. The method is how the form is sent, either by "post" or "get" method. The name is the name of the form. So this form is submitting its data to a page on my site called dynamic-option-list.html via the post method and the name of the form is "travel".


The next few lines create the two radio buttons. They are part of the same set, so they have the same name attribute: type. The first one has an initial value of 1. It is set to be initially checked when the page first opens. It also uses the "onclick" event, which performs whatever action is in the quotes when a mouse is clicked on that object. In this case, when the mouse clicks either radio button, the onclick event calls the function named ChangeOptions() and passes it its value. So if a user clicks the second button, the onclick event calls the ChangeOptions function and passes it a value of "2".



What type of travel destination would you prefer?
Abroad
Domestic



The function is declared in the header inside of script tags. The function is named "ChangeOptions" and receives the value from the element that called the function. In this case, let's pretend a user clicked the second radio button. That button has a value of 2, so when it is clicked, the onclick event calls the ChangeOptions function, which receives the button's value of 2.


function ChangeOptions(ElementValue)

The statements inside of the function's brackets then check to see if the value is 1 or 2 and sets the values and text of the selection menu's options accordingly. It uses the javascript "with" statement, which basically allows you to write less code. We could write code for each option that basically says, "If the value is 1, then set the text on the element named "optionList" of the form named "travel". Instead, we're using the "with" statement to say, "In all instances contained within these brackets, we're referring to the form named travel....so please don't make me repeat it each time." Document refers to the web page itself.

The "if" statement grabs the value received by the function (in this example 2) and says, if the value is equal to 2, then do these following statements. optionList [0] refers to the first option (originally "Australia") and sets its text to "California" and changes its value to 0. The options are basically an array that can be identified by an index number starting with 0. So the first option has an index of 0, the next option has an index of 1, etc.


{
	with (document.forms.travel)
	 {
		if (ElementValue == 1)
		{
			optionList [0].text = "Australia"
			optionList [0].value = 1
			optionList [1].text = "South America"
			optionList [1].value = 2
			optionList [2].text = "Europe"
			optionList [2].value = 3
		}
		if (ElementValue == 2)
		{
		optionList [0].text = "California"
		optionList [0].value = 0
		optionList [1].text = "Florida"
		optionList [1].value = 1
		optionList [2].text = "New York"
		optionList [2].value = 2
		}
	 }

	}


17May/110

Illustrator Compound Path

What is a compound path?

A "compound path" is an object made of two or more paths.

You may create a compound mask to:

  • Add "holes" to a path
  • When "creating outlines" of text and you want to preserve the transparent holes in some letters (like the middle section of an "O" "A" "R", etc.
  • When applying a gradient across multiple paths

So, let's say you have some text and you want to "create outlines". If you have a black "O" on top of a red circle, you want the middle of the "O" to be transparent so that the red will show through. Illustrator lets you create your own compound paths.

How to make a compound path in Illustrator

It's very easy to create a compound path in Illustrator.

  • Create a shape
  • Create another shape
  • Position one shape over the other
  • Select the objects
  • Go to Objects --> Compound Path --> Make

Done.