New toy!

My wife and I bought a 1999 Jeep Cherokee that I plan on doing some upgrading to with a lift kit and bigger tires soon. So far it seems like a fun vehicle to tinker with. If your interested in Jeeps check it out here.

Posted in Jeep | Leave a comment

Homeland Security gives Sony the slapdown on DRM

Hopefully this will be my last post about the Sony DRM rootkit stuff. Sony has announced that they are stopping production of all CDs with the rootkit DRM software, at least temporarily. This decision could be related to the slapdown they received by the Department of Homeland Security. Stewart Baker, the DHS’s assistant secretary for policy said the following at an event on combating intellectual-property theft.

“I wanted to raise one point of caution as we go forward, because we are also responsible for maintaining the security of the information infrastructure of the United States and making sure peoples’ [and] businesses’ computers are secure. … There’s been a lot of publicity recently about tactics used in pursuing protection for music and DVD CDs in which questions have been raised about whether the protection measures install hidden files on peoples’ computers that even the system administrators can’t find.

It’s very important to remember that it’s your intellectual property — it’s not your computer. And in the pursuit of protection of intellectual property, it’s important not to defeat or undermine the security measures that people need to adopt in these days.”

Quotes from Sony execs have sounded very non-apologetic, and it is obvious they don’t really see what they did as wrong. They are stopping production because of bad publicity, and industry and political pressure, not because they understand that their actions are morally wrong. The end result of this, which is obviously the opposite of what Sony and other media companies want, is that myself and other consumers will never feel safe putting a purchased music CD in our computers, and as such we will be forced to obtain our music from other sources.

Posted in Security | Leave a comment

The story of my lack of a Mac Mini

I’ve been considering purchasing a Mac for a few years. I was never overly impressed with older version of Mac OS, but ever since OSX was released I’ve been excited about the possibility of having a high quality Unix based desktop OS. Now before anyone can say “but what about Linux/FreeBSD/Solaris x86/KDE/Gnome/whatever?” let me say that I have used every one of these in the past and actually liked most of them. I ran a Linux desktop as my primary PC for around 3 years and would still be running it if I didn’t have a need for a few Windows specific applications. This website is hosted on FreeBSD, and all of my labs at school are done on Solaris. But you have to pick the best tool for the job, and Linux or BSD might be the best tool if the job is hosting a PHP/MySQL webapp, but it’s not if the job is to run MS Office. I could be wrong about OSX being the best choice for a Unix desktop, but I want to at least give it a try.

For the longest time I watched the Mac prices but not actually consider making a purchase. At least not a new Mac, and a quick look at the prices on Ebay convinced me even used Macs were way overpriced. Then Apple released the Mac Mini, with prices starting at $499. That’s my price range, so I decided I’d wait a month or so and buy one as soon as OSX 10.4 was released. I didn’t want to buy a $500 computer and then one month later have to spend another 20% of the purchase price upgrading the operating system. So a month or so went by and 10.4 was released. And all of the Macs except the Mac Mini started shipping with 512mb of RAM as the standard configuration. I figured that if I waited a couple months Apple would increase the base RAM in the Mini as well, which they did. Now I hear that Apple is shipping 1.5ghz machines to some customers that order the 1.42ghz ones, and the new 1.5ghz machines also have faster hard drives and more video RAM. But I can’t order a 1.5ghz machine. I’d have to order a 1.42ghz and take my chances on getting the upgrade, and would have no room to complain if I received what I ordered instead of what I wanted. And even if Apple publishes the new specs, there is always the Intel Macs coming next year.

This is the heart of the problem. Apple builds computers for people who treat them like they are appliances. People buy them, use them for a few years, and replace them. While this is much of the attraction for a lot of people, it’s a big cultural change for people in the PC community who are used to constant tinkering and upgrading along the way. If you are buying a machine you can’t really upgrade much and you’re going to keep it for a few years, you want it to be the as well equipped as possible to start out, and Apple always has something cool just around the corner that seems worth waiting for.

Posted in Apple | Leave a comment

Why do people switch to Linux?

I just came across an O’Reilly article about the reasons people switch to Linux, and how most people who switched did not do it out of hatred of Microsoft.

I’ve used Linux off and on since around 1996 or 1997, and am currently in one of the rare periods where there is no Linux box anywhere in my house. I think in a lot of ways it comes down to choosing the best tool for the job. In 1998 I built a dual-homed Redhat box to act as my firewall for my home network. At the time you could not just buy a Linksys router for $30 and Linux was a cheaper and better solution that Windows. When I decided I wanted to learn PHP and mySQL, the obvious solution was to stick a Linux box in the closet. When KDE became stable enough to actually use, and quit leaving core dump files all over the system, I started using Linux for my primary desktop. There was a couple year period where I hardly touched a Windows machine outside of work. As a computer science student, most of my labs have to be compiled to run on the schools Solaris machines, and being able to develop on Linux (using KDevelop, by the way) greatly increased my productivity compared to students who used Windows to edit files and had to copy them to the remote Sun box just to try to compile and debug. Right now I’m back to using Windows XP on my primary machine. I’m past most of the coding classes now, and the coding classes I have left are focusing on VB.Net. I’m also taking my communications classes that include assignments requiring specific features in Microsoft Office like tracking changes and embedding charts creating in Excel in Word docs. Right now Windows is the best tool for what I need to do. I still use Thunderbird as my mail client, and was even able to transfer my old messages and settings from my last Linux box to Windows.

So, after next summer I’ll be done with my degree and won’t have that to weigh on my OS decision. What will I choose? I just don’t know. If I’m still playing with c# in my spare time I might stick with Windows XP, or move to Vista. Then again I might just buy a Mac.

Posted in Coding, Education | Leave a comment

Visual Studio Rots the Mind

If you’re a Windows programmer you should know who Charles Petzold is. Ten years ago his Programming Windows book was the best source of information on the win32 API, and now he has written a handful of .Net books. Apparently he’s come to the conclusion that Visual Studio Rots the Mind and his lengthy rant is excellent. Personally I don’t think this is Visual Studio’s fault, especially since in many ways Visual Studio is just keeping up with competitors like Eclipse, but is more a commentary on how current development tools encourage development to follow certain patterns that focus on productivity instead of creativity.

Posted in Coding | Leave a comment

Startup School update!

A while back I posted about Paul Graham’s Startup School. Basically he helps groups of CS students start a company by giving them business advice and just enough money for them to rent a cheap office, buy bandwidth and some computer equipment, and buy a few months supply of Ramen Noodles and mac and cheese. The kids then spend a few months focusing on building a product and hopefully end up with a commercially viable company when they are done. I just came across a blog entry from a guy named Chris Sacca who attended one of the Startup School sessions at Harvard’s Science Center. Check it out here.

Posted in Coding, Education | Leave a comment

Not liking Calculus

The concepts in my Calculus class seem cool enough, but I’m just barely passing. Each week we get problems assigned and I do ok on them, but on the first exam I just blanked out. There is a big difference in reviewing a section in the textbook and solving several problems using a particular technique and getting a list of problems where you have to figure out what techniques are appropriate. The real bummer of the whole deal is that if I exclude the math classes I’d have a 4.0 GPA instead of my 3.7 or whatever it is.

Posted in Education | Leave a comment

Adding a line in jack to your factory car stereo

I use my Ipod mainly for listening to audiobooks on my trips to work and school, and have been frustrated with the wireless FM transmitters that I’ve been using. Back when I was a kid we had a car that just had an AM radio, and we had a little FM box that mounted under the dash and went in-line with the antenna, so you tuned your AM radio to a certain frequency and it played whatever the FM box was tuned to. I’ve been hoping something similar would come along for external mp3 players, but have only been able to find the ones that are made for head units that have cd-changer controls. These would require the installation of a theft prone aftermarket stereo, and I don’t really have any issues with my factory radio.

I finally found one. Go to Crutchfield.com and search for a “Scosche FM-MOD01 Modulator”. It’s only $30 and has really good reviews. I haven’t ordered one yet, but will as soon as I figure out if there is someplace I can hide the switch and jack without cutting up my dash.

Posted in Uncategorized | Leave a comment

Coding paper

Oddly, the paper from my last post received a perfect score while the class average was only 88%. Now if I could be that lucky in my calculus class…

Posted in Coding, Education | Leave a comment

Coding as art – persuasion paper

This is a paper I just finished for my technical communications class. I argue that software development should be considered as a creative art like other forms of writing. It’s not especially well written as it was one of those “write a paper by next week in your spare time between work and other classes” type assignments and I had to throw it together in a few hours, but the main point is still valid. Maybe another argument for coding being creative is the fact I’m better at it than I am writing papers.

I think that the process of creating software applications should be considered as a creative act with many similarities to other forms of writing. Some people believe that software code is simply a technical specification to tell a computer what to do, but there are several similarities between creating a software program and other forms of writing. A person writing a novel uses the rules of their language to arrange words in the correct order to express their story in the same way a computer programmer uses the rules of a programming language to provide instructions for their computer. Changes in software development methodologies have removed some of the creative aspects in an effort to improve productivity, but even some of the changes which remove creativity have direct counterparts in the methods literary writers use.

This is an issue that was addressed as a part of a lawsuit a few years ago about a software program called DeCSS which allowed users to decrypt DVD movies. The software could be used to extract a movie from a DVD for the purpose of piracy, but it could also be used for legal purposes such as allowing DVD movies to be viewed on operating systems that could not otherwise play them. Most of the issues argued in the lawsuit dealt with whether the decryption method was a trade secret of the movie industry and if viewing movies on equipment not specifically sanctioned by the movie industry was considered to be a use consumers are allowed, but the issue of whether the actual source code was a form of literature protected by the first amendment was also argued. The lawyers for the movie industry argued that the source code is a functional specification outlining their intellectual property, while the defendants argued it was a creative work. The movie industry won their lawsuit, but many factors not related to the creativity of code were considered.

A part of current software development methodology is the use of design patterns. A design pattern is a common way of solving a reoccurring problem, and they are used by all developers. If a developer figures out a way to solve a problem once and later reuses the solution to solve a similar problem he has used the concept of a design pattern even if he didn’t realize it. The current trend is to formalize this process into commonly known patterns to solve common problems, and modern developers can piece together the known solutions into a general framework for their project and concentrate on tying it all together.

Many fiction writers also use common plot structures and plot devices to build their stories, which is another application of the concept of a design pattern. The author can then focus their efforts on creating the unique parts of their story to tie the pieces together. Anyone who read a few of the Hardy Boys mystery books when they were growing up knows the story line of nearly every book. The brothers go on an adventure to try to figure how a crime and how it was committed and by whom. Their adventure doesn’t really help to understand what they are investigating, but somehow, towards the end of the story, the boys would find the hideout of the criminals and would be captured. One of the criminals would then see no harm in telling the boys the entire story of how they committed their crime, presumably since the boys were going to be killed or the criminals were going to flee the country and escape. In the end the police would show up and save the boys. By using a common pattern for the plot the author was able to spend less time developing the plot, or structure, of the books and focus on actually writing. Software developers use design patters in the same way, as a way to reduce the time needed to figure out the structure of a program and focus on actually creating the code.

Both the software developer who organizes his program as a set of design patterns and the author who uses a proven plot structure achieve the same goal. And both face the same drawbacks. They can better predict the amount of time it will take to complete their project, and will produce an end product that follows a proven formula. Neither is likely to be as creative as if they had written their entire project from scratch.

Another reason software development needs to be considered as a creative act is that if identical program specifications are given to multiple developers, each will create unique code to implement their solution. This can be illustrated by the fact that Computer Science students in a programming class create unique solutions to their lab assignments, just as students in an English class will create unique papers when all assigned to research the same topic. If programming was simply the act of translating the specifications into a language the computer can understand, each student would produce an identical solution.

The process for developing software and other forms of writing are similar, and personal style and experience are evident in the final product. This ability for software developers to express their personal style in their work indicates that the process is a creative one.

Posted in Coding, Education | Leave a comment