Apparently my blog has come down with a bad case of journalitis -- a condition where it is neglected for long periods of time.
My wife and I really have been quite busy of late. I have started on an open source project which threatens to take forever to complete, even if I do spend all my free time on it each week. And we are also getting new floors.
I've come to find a new level of respect for those programmers out there who spend their time away from work on open source projects. I've found it to be very difficult, even though I am really passionate about the project. I imagine that many programmers have to sacrifice a lot of other things to work on their labor of love. Especially after they've put in 8 hours at their day job. But I cannot in good conscience sacrifice much of my time -- especially the time my wife needs me. So I do what I can and hope that it won't fall by the wayside like other projects that I've embarked upon.
One thing that will help this project though, is that I have other people already interested in it and working with me. None of them are programmers, but they are experienced in the kind of work. Thankfully, they will be able to help me with much of the non-programming work that I tend to ignore or procrastinate.
I have a long term dream that someday work on this project could be my day job. But I'm a little fearful to ask how long "long term" will actually be. The end goal is something almost too good to be true. So in the meantime, I'll just have to patiently and diligently work toward my goal.
I'm reminded of a quote from Trigun, "Every great journey must begin with a single enormous step."
Sunday, May 31, 2009
Friday, April 17, 2009
Jetsettin'
It's been a few months since I took my new job. I've spent the time working on-site for one of our clients. It has been a good experience for me. The company is quite large -- we were drawn a small part of our org chart one time and it took up the entire wall. Based on what I've heard, I should be working for this client for a while to come.
I guess they have been pretty happy with my performance. My keen senses have picked up on that when they frankly told me so. They have assigned me to be the lead programmer for the upcoming project (which is based on the one I've been working on thus far). Then this week they asked me to travel out-of-state for two days to meet and work with the other departments we work with.
All in all, I am very excited about it. I'm glad that I've been able to earn their trust and demonstrate my ability. This kind of work isn't my #1 favorite -- I'm not actually writing or designing code -- but I'm doing my best at it. When I switched jobs a little while back, one of the main reasons I did it was to increase the breadth and depth of my experience. I think it is working.
The biggest drawback of it all is that I'll be away from my sweetheart. I suppose that these two days will give us a taste of what her upcoming Science Fair trip will be like. Separation-wise, that is.
I'll miss you while I'm gone sweetie!
I guess they have been pretty happy with my performance. My keen senses have picked up on that when they frankly told me so. They have assigned me to be the lead programmer for the upcoming project (which is based on the one I've been working on thus far). Then this week they asked me to travel out-of-state for two days to meet and work with the other departments we work with.
All in all, I am very excited about it. I'm glad that I've been able to earn their trust and demonstrate my ability. This kind of work isn't my #1 favorite -- I'm not actually writing or designing code -- but I'm doing my best at it. When I switched jobs a little while back, one of the main reasons I did it was to increase the breadth and depth of my experience. I think it is working.
The biggest drawback of it all is that I'll be away from my sweetheart. I suppose that these two days will give us a taste of what her upcoming Science Fair trip will be like. Separation-wise, that is.
I'll miss you while I'm gone sweetie!
Wednesday, April 8, 2009
STOP!
Yesterday morning after I dropped my wife off at work, I ran a stop sign.
I didn't mean to... I was just distracted somehow. Or maybe I didn't notice the sign (although I have driven on that road many times and should know by now that a sign is there.)
It freaked me out. Especially since it was a 2-way stop crossing a busy road. And just as I realized I had done it, I saw a police car up ahead on the other side of the road. Apparently he didn't notice my crime, because he just drove on by casually.
Everything turned out fine, I suppose. I wasn't pulled over. Even better, I wasn't in an accident. But I couldn't help thinking about how easily I could have been in trouble. The last thing I need is to be paying for causing a wreck.
Overall, I think I'm a pretty good driver. I try to be observant and obey the traffic laws. But this incident caused me to wonder how often I'm not paying attention while driving. It also gave me pause to consider that maybe the stupid drivers I often see on the road aren't really stupid after all. Perhaps they are just having a lapse of attention. Perhaps.
I didn't mean to... I was just distracted somehow. Or maybe I didn't notice the sign (although I have driven on that road many times and should know by now that a sign is there.)
It freaked me out. Especially since it was a 2-way stop crossing a busy road. And just as I realized I had done it, I saw a police car up ahead on the other side of the road. Apparently he didn't notice my crime, because he just drove on by casually.
Everything turned out fine, I suppose. I wasn't pulled over. Even better, I wasn't in an accident. But I couldn't help thinking about how easily I could have been in trouble. The last thing I need is to be paying for causing a wreck.
Overall, I think I'm a pretty good driver. I try to be observant and obey the traffic laws. But this incident caused me to wonder how often I'm not paying attention while driving. It also gave me pause to consider that maybe the stupid drivers I often see on the road aren't really stupid after all. Perhaps they are just having a lapse of attention. Perhaps.
Thursday, March 5, 2009
Science Smorgasbord
Tonight I went to the local high-school science fair to be a volunteer judge. There were some really interesting projects there. There was one which was a Flash program for translating eye movement to a mouse cursor. There was an interesting one about what colors of (non-white) light you can see the best with in the dark (spoiler: green is apparently best. Though I thought I've heard/read something about red being good for not ruining your night-vision...). There was also a really good random number project which almost didn't make it because it looked like crap. Oh and number theory one about a possible relationship between several different famous sequences.
After all those projects, I thought it had been a pretty good night. But the best was yet to come. During the awards ceremony, the host teacher told a joke that completely cracked me up. As soon as I came home, I Googled that sucker and found it here (although I've modified it a bit to suit my own tastes).
Comedic. Gold.
After all those projects, I thought it had been a pretty good night. But the best was yet to come. During the awards ceremony, the host teacher told a joke that completely cracked me up. As soon as I came home, I Googled that sucker and found it here (although I've modified it a bit to suit my own tastes).
A Mathematician, a Biologist and a Physicist are sitting in a street cafe when they notice two people go into the house on the other side of the street. After some time passes, they notice three people come out of the house.
The Physicist says, "The measurement wasn't accurate."
The Biologist concludes, "They have reproduced!"
The Mathematician: "Now, if exactly 1 person enters the house then it will be empty again."
The Physicist says, "The measurement wasn't accurate."
The Biologist concludes, "They have reproduced!"
The Mathematician: "Now, if exactly 1 person enters the house then it will be empty again."
Comedic. Gold.
Monday, February 23, 2009
Starting From Scratch? Never Say Never
While following my blog quest, I ran across an interesting article which told several compelling reasons why the PHP group is not just re-writing the PHP code from scratch for the upcoming PHP 6.
As I was sifting (or slogging, perhaps) through the comments, I found a link to an interesting article entitled, Things You Should Never Do, Part I by Joel. My curiosity sufficiently piqued, I started reading.
At the risk of over-simplfying, the author basically says, "Never rewrite your code from scratch." It's a bold statement. I can certainly appreciate the intention behind it. From my own experience, I know that rewriting code from scratch can be a long and daunting process.
Most programmers I know (with myself as a definite inclusion), tend to look back at their "old" code and think, "I could do that better if I rewrote it today." Sometimes the code really isn't very old at all.. only a few months. For the most part, I think that having that feeling is a good thing. It means that you've been learning. It means that you have the drive to improve yourself and your work. But acting on that feeling often leads to trouble, just as Joel says. I like how he points out that new code isn't necessarily better than old code -- old code does not rust.
I also concur with his assessment that so-called "old" code is better tested. It is more mature. And I see where I sometimes need to repent of saying that the legacy code is a mess. Joel hits the nail on the head when he identifies that old code looks messy because it is easier to write code than to read it.
So I agree with the spirit of the article. But I take umbrage with a particular word: never.
You (or a software company) should never rewrite their code from scratch? That I don't believe. Now I realize that Joel's article was written back in 2000. I haven't followed his blog to find out if there was a Part II, or if he recanted what he said. But I believe there are some instances where it can be a very good thing to rewrite your software from scratch.
After pondering for a while, I came up with the following list of times when rewriting your code may be beneficial:
I find that Mac OS X is a great example of how rewriting code can be a good thing. Rather than take OS 9 (which was a mature piece of software with a solid background) and turn out a new-and-improved version, they scrapped it instead. They rewrote things from the ground up. They ended up with a terrific operating system... my favorite, in fact.
[I'm adding this aside to recognize that OS X was built on some "old" code, specifically UNIX and NeXT. Although it was not written completely from scratch, I think it still exemplifies the point I am trying to make.]
Now there was a painful transition from OS 9 to OS X. For a while the best programs were not available for OS X. Users clung on to the last vestiges of OS 9. But over time, new software emerged. I think many Mac owners are now glad that they don't have to worry about "Classic" mode anymore.
Personally, I think that this is something that Windows could benefit from. They've taken many pages from Steve Jobs' book, why not this one too? A lot of the issues (especially security issues) in Windows linger because of backward compatibility. But a new OS would mean that old programs wouldn't work anymore. Microsoft, Windows programmers, and users would all have to take a leap of faith. But it can be done.
Another example is with some software my previous company was developing. We had some legacy AS2 / C code which was really just a nightmare to maintain, let alone improve. We looked at the situation and decided that we should take advantage of the new AS3 and rewrite. The new product turned out much better than the old one, both for the user and programmer. That's not to say it was perfect, but a definite improvement.
There are probably some other times when a total code rewrite would be beneficial. So certainly we shouldn't say never. But that decision needs to be made cautiously, with eyes open to the risks. If possible, keep up development on the previous version of the software.
I suppose that the moral of the story is that there is a time and season for all things -- even rewriting code from scratch.
As I was sifting (or slogging, perhaps) through the comments, I found a link to an interesting article entitled, Things You Should Never Do, Part I by Joel. My curiosity sufficiently piqued, I started reading.
At the risk of over-simplfying, the author basically says, "Never rewrite your code from scratch." It's a bold statement. I can certainly appreciate the intention behind it. From my own experience, I know that rewriting code from scratch can be a long and daunting process.
Most programmers I know (with myself as a definite inclusion), tend to look back at their "old" code and think, "I could do that better if I rewrote it today." Sometimes the code really isn't very old at all.. only a few months. For the most part, I think that having that feeling is a good thing. It means that you've been learning. It means that you have the drive to improve yourself and your work. But acting on that feeling often leads to trouble, just as Joel says. I like how he points out that new code isn't necessarily better than old code -- old code does not rust.
I also concur with his assessment that so-called "old" code is better tested. It is more mature. And I see where I sometimes need to repent of saying that the legacy code is a mess. Joel hits the nail on the head when he identifies that old code looks messy because it is easier to write code than to read it.
So I agree with the spirit of the article. But I take umbrage with a particular word: never.
You (or a software company) should never rewrite their code from scratch? That I don't believe. Now I realize that Joel's article was written back in 2000. I haven't followed his blog to find out if there was a Part II, or if he recanted what he said. But I believe there are some instances where it can be a very good thing to rewrite your software from scratch.
After pondering for a while, I came up with the following list of times when rewriting your code may be beneficial:
- When you are building something new. Not just a new version, mind you. A new product or perhaps a paradigm shift on an old product.
- When you are adding new features which the old code cannot support without difficulty. Sometimes you can be painted into a corner by legacy code.
- When you want to take advantage of new technologies or languages.
I find that Mac OS X is a great example of how rewriting code can be a good thing. Rather than take OS 9 (which was a mature piece of software with a solid background) and turn out a new-and-improved version, they scrapped it instead. They rewrote things from the ground up. They ended up with a terrific operating system... my favorite, in fact.
[I'm adding this aside to recognize that OS X was built on some "old" code, specifically UNIX and NeXT. Although it was not written completely from scratch, I think it still exemplifies the point I am trying to make.]
Now there was a painful transition from OS 9 to OS X. For a while the best programs were not available for OS X. Users clung on to the last vestiges of OS 9. But over time, new software emerged. I think many Mac owners are now glad that they don't have to worry about "Classic" mode anymore.
Personally, I think that this is something that Windows could benefit from. They've taken many pages from Steve Jobs' book, why not this one too? A lot of the issues (especially security issues) in Windows linger because of backward compatibility. But a new OS would mean that old programs wouldn't work anymore. Microsoft, Windows programmers, and users would all have to take a leap of faith. But it can be done.
Another example is with some software my previous company was developing. We had some legacy AS2 / C code which was really just a nightmare to maintain, let alone improve. We looked at the situation and decided that we should take advantage of the new AS3 and rewrite. The new product turned out much better than the old one, both for the user and programmer. That's not to say it was perfect, but a definite improvement.
There are probably some other times when a total code rewrite would be beneficial. So certainly we shouldn't say never. But that decision needs to be made cautiously, with eyes open to the risks. If possible, keep up development on the previous version of the software.
I suppose that the moral of the story is that there is a time and season for all things -- even rewriting code from scratch.
Thursday, February 5, 2009
Read, Think, Write, Learn
In trying to be a conscientious, career-minded programmer, one of my goals has been to keep abreast of the goings-on in the programming world. Keeping current and learning new things is really vital for the overall success of a programmer. It keeps you relevant, it keeps you from being pigeon-holed, and it helps you stay interested in developing software, to name a few reasons.
In pursuit of that goal, in the last few months I've been looking for interesting blogs and sites that are relevant to my work. There are a few that I felt are worth mentioning. In fact, you'll notice that I've even gone as far as to add links on my sidebar! (Go ahead, look over there.)
The first one I want to mention is the excellent Grant Skinner's gBlog. I was first introduced to this blog sometime a year or so ago when I was doing a lot of Flash work. At the time we were having some problems with our application which turned out to be memory / garbage collection issues. Enter the gBlog. Mr. Skinner has some very helpful information out there about memory management in ActionScript 3 (AS3). Now I may have run across his site before, but this time it stuck. Useful information and really cool demos? That's a site to not forget.
More recently (in the last month or so), I've started following another blog called Coding Horror written by Jeff Atwood. I have found this blog to be very interesting. He has great writing style that practically compels me to read it and he covers some, dare I say, delectable topics. Plus he is working on a very cool site: Stack Overflow.
The thing that I love about these two blogs is that while I might not agree with everything they write, they cause me to think about stuff I care about. And that, my friends, is worth its weight in kilobytes.
In pursuit of that goal, in the last few months I've been looking for interesting blogs and sites that are relevant to my work. There are a few that I felt are worth mentioning. In fact, you'll notice that I've even gone as far as to add links on my sidebar! (Go ahead, look over there.)
The first one I want to mention is the excellent Grant Skinner's gBlog. I was first introduced to this blog sometime a year or so ago when I was doing a lot of Flash work. At the time we were having some problems with our application which turned out to be memory / garbage collection issues. Enter the gBlog. Mr. Skinner has some very helpful information out there about memory management in ActionScript 3 (AS3). Now I may have run across his site before, but this time it stuck. Useful information and really cool demos? That's a site to not forget.
More recently (in the last month or so), I've started following another blog called Coding Horror written by Jeff Atwood. I have found this blog to be very interesting. He has great writing style that practically compels me to read it and he covers some, dare I say, delectable topics. Plus he is working on a very cool site: Stack Overflow.
The thing that I love about these two blogs is that while I might not agree with everything they write, they cause me to think about stuff I care about. And that, my friends, is worth its weight in kilobytes.
Monday, February 2, 2009
Weekend Warrior
This weekend I was very industrious. My usual routine involves me helping my wife clean the house and then avoiding any other thing which resembles work. But this Saturday was different.
I fixed our leaking toilet by replacing the flapper. Although the toilet mechanism isn't terribly complex, I was still worried that I hadn't properly diagnosed the problem. But ever since installing the new flapper we haven't heard any more of the tell-tale running water.
I installed a programmable, digital thermostat. This was a bit more like rocket-science... or perhaps defusing a bomb? But the instructions were very clear and I didn't even electrocute myself. Within a few minutes time I had removed the hold and installed the new. Now we can actually tell what temperature it is set at instead of the old-fashoned guesswork. And it was easy to set up for our schedule. I'm hoping to see some savings in the utility bills this year.
I built some shelf additions for our DVDs. We have a deep bookcase which is deep enough for two rows of DVDs. Each shelf is also pretty tall, so I got the idea to raise the back layer of DVDs so we could see the back row. So while I was out buying the flapper and thermostat, I picked up some wood and got it cut right there at the store. I probably should have planned it a bit better and measured the wood I purchased, because when I got home I was miffed to discover that the wood was not the size it had claimed to be! I don't know if it was mislabeled or what. But I salvaged the operation and now we have our DVDs shelved in all their glory.
It felt good to get so much done around the house! Not that I necessarily want to abandon my typical ways, but now and then I enjoy a little weekend handiwork.
I fixed our leaking toilet by replacing the flapper. Although the toilet mechanism isn't terribly complex, I was still worried that I hadn't properly diagnosed the problem. But ever since installing the new flapper we haven't heard any more of the tell-tale running water.
I installed a programmable, digital thermostat. This was a bit more like rocket-science... or perhaps defusing a bomb? But the instructions were very clear and I didn't even electrocute myself. Within a few minutes time I had removed the hold and installed the new. Now we can actually tell what temperature it is set at instead of the old-fashoned guesswork. And it was easy to set up for our schedule. I'm hoping to see some savings in the utility bills this year.
I built some shelf additions for our DVDs. We have a deep bookcase which is deep enough for two rows of DVDs. Each shelf is also pretty tall, so I got the idea to raise the back layer of DVDs so we could see the back row. So while I was out buying the flapper and thermostat, I picked up some wood and got it cut right there at the store. I probably should have planned it a bit better and measured the wood I purchased, because when I got home I was miffed to discover that the wood was not the size it had claimed to be! I don't know if it was mislabeled or what. But I salvaged the operation and now we have our DVDs shelved in all their glory.
It felt good to get so much done around the house! Not that I necessarily want to abandon my typical ways, but now and then I enjoy a little weekend handiwork.
Subscribe to:
Posts (Atom)