Welcome to Ruby on Rails
Be the 1st to comment!

For the past six months I’ve had the pleasure of working with Rails in my spare time. I’ve read several books, and written several applications for personal use. Soon, I will begin to put most of my spare time toward a Rails application I hope to release to the general public. As well, I will begin to share more of my Rails experiences on my blog. (Watch for new posts on getting started with Rails, like Ruby on Rails – Terms and Concepts).
I remember well the early days of cgi programming when I wrote my first Perl web applications. Then I transitioned to some kind of Oracle web procedures (I forget the real name) for some larger applications for Fortune 500 companies first getting onto the web (ex. Lucent Technologies). Eventually I did Flash and Java applets as they first came out. I made the move to Java (beyond the little applets I’d done) when Sun released the first beta specs of JavaServer Pages, in late 1998. In fact, thanks to the beauty of Internet archives I found this post written by none other than myself while working at Cox Target Media in 1999. (Guess I don’t have to worry about proving I’ve been doing JSP since it first came out). I have been involved in Java web application development ever since. I didn’t take an interest in .NET, and didn’t pay much attention to ColdFusion. I’ve done some PHP, mostly for small solutions and to customize my WordPress blogs. But, for 99% of my web software development in the last 8 years, I have stayed committed to Java.

When I took my second look at Rails about six months ago, and this time, really tried to discover what it was all about, I was really hooked. It made simple so many of the common every day tasks I’ve been doing for years. Ruby really made sense as a language and Rails as a framework. I have a lot to compare to it, and so far I’ve been very impressed with how well thought out it is.

In this series of Rails posts, I’m not going to take time to bash Java or any other languages and frameworks. I still believe Java is a great development platform that fulfills real software development requirements. However, I don’t feel like Java is the solution in every case. I count myself as an Internet Software Developer, not as a Java Developer. I have experience with many tools, and I prefer to choose the right tool for the job at hand. I’ll leave when I would use Java vs Rails to another discussion, as the focus of these posts will be on sharing my Rails experiences, and hopefully helping some other interested Internet Software Developers get their first taste of Rails development. This will not be a discussion of which is the best development platform, but instead will simply be me sharing with you, this new exciting and beautiful web application framework. I truly haven’t had this much fun developing web applications in a long, long time.

Online School Yearbook and the Technologies Used to Create It
Be the 1st to comment!

Last week I completed the creation of an online yearbook for our son. We homeschool him and create a portfolio or yearbook each year sampling his work and the progress he’s made. This year I decided to create the yearbook online, saving paper and storage space, and allowing us to share his work with family and friends.

I created the site statically using a combination of CSS, Javascript, HTML, and Flash. You can view the site here. I thought I would share in this post, the libraries I used and what issues I had ensuring it worked cross-browser.

Technologies/Libraries Used

First, on most pages I have a photo that is rotated with a Polaroid type effect applied to it (see photo below). I could have done this in an image editor, but choose in this case (for a low-trafficked site) to use Javascript. I used the Instant.js javascript library to accomplish this effect. It’s very easy to use and I had very few problems with it (see below).

Home Page

Second, to create the photo galleries used mainly in the Art and Field Trip sections (and in the World War II Day example below), I used the PostcardViewer from Airtight Interactive. Once again, I found this very easy to use. I already use Google Picassa to manage my photos, and PostcardViewer can be downloaded as a Picassa template.

Note: I highly recommend you try Picassa if you aren’t using it already.

Read More »

Best Places to Live (Google Mapped)
Be the 1st to comment!

I’m always drawn to reviews of the best places to live (probably because I know where I currently live is not on my top 100). Money recently published a top 100 list, but unlike any previous list I’ve seen before, Money took the time to map them on a Google map. Nice use of technology. I’d much prefer to see the list that way, than to scroll through the list of 100 to see which ones I want to read about. There are some parts of the country I’m less likely to visit or move to than others, so with the map I can look for my preferred areas.

See the map at Money’s web site.

Headset Mode
Be the 1st to comment!

Just a crazy idea (or a fresh idea as I prefer to say) to throw out there: I wish my laptop had a headset mode. By this I mean, that when in headset mode, should I accidentally pull the headset plugin from my laptop, the blaring rock music I have playing doesn’t treat everyone in the surrounding area (ie. cube row, Starbucks, etc) to a frightening musical feast. The laptop would know in this mode, NOT to play music from the speakers even if there is no earphone plugin inserted. This would also include system beeps.

A few weeks ago while working at home (thank goodness), I cat’d a “text” file from my telnet window that turned out to contain strange binary characters which caused my laptop to scream in incoherent beeps, like R2D2 being tortured. Unfortunately, muting the sound did nothing, nor did plugging in the earphones, and it took the usual insane amount of time to kill the process under Windows. Somewhere a child cried, a dog howled, and my eardrums virtually bled. I shutter to think of the embarrassment this would have caused had it occurred while working publicly.

Is it really that difficult a request? I expect if this already exists it would be on a Mac.

Increase Programming Efficiency By Taking Breaks
Be the 1st to comment!

Recently, Matt at 37signals wrote a post about taking a break from your programming task after four hours.

The comments of the post took a detour from the main point, which was to stop and take a look at the task and your direction with it. However, most of the comments seemed to focus on taking a break when you are stuck. It’s true if you hit a wall, you should take a walk and try to get some distance from the problem. You’ll often then be able to see over or around the wall, or realize the wall is actually only a figment of your imagination.

But I think the point to this post was to take a break from your task, after you’ve spent about four hours on it (though the time should be in relation to the size of the task), and reassess your current status and direction, and most importantly, if the task should even continue to be done.

Sometimes we think of a solution, but while working on it we hit road blocks; things that we weren’t aware would be a problem. An example might be using a new technology we thought would solve the problem, but in doing so we introduced new problems. As programmers, as thus problem solvers, we get so focused on solving the problem at hand, we need to take a step back and realize that the direction we are going is more work than our nifty solution was worth. Adding this new technology, for example, might turn out to add far too much complexity, and require too many other solutions to get it to work.

There may be times where, after taking a break and re-evaluating, we have to go back to the Project Manager, Team Leader, or whomever you report to, and let them know the task is not nearly as simple as you thought, and more time needs to be allotted. After reporting this, you may find that the task you are assigned to is no longer quite so important to management, knowing it will cost them more.

I’d like to add, that taking breaks from tasks, and taking time to clear the mind, and step away, is such a vital part of being a problem solver, and yet it is discouraged by the very nature of the 8 hour work day modern IT management stubbornly continues to conform to. My personal belief, is that some days should be 5 hour work days, and others might be 10. Or, you may work four hours in the morning, and four in the evening. We need to be free to stop what we are doing when it becomes clear that we are no longer making progress for whatever reason. We could be tired, we could have hit an unexpected wall, we could have a personal issue that is distracting us. In many of these cases, its much more efficient to stop, and do something entirely different and come back to your work later, than to attempt to press through, and possibly waste countless hours making absolutely no progress.

This requires management to assess your effectiveness by what you accomplish on the project and with the team, as opposed to what hours you are sitting in front of your computer monitor. For some reason that shift in people management has been very slow in coming. I know some companies, teams, and managers that understand it, but I think the majority are still far behind; still stuck in the industrial age of management styles.

Read the entire 37signals article, “Four hours upfront and then reevaluate“.