Deprecated: Assigning the return value of new by reference is deprecated in /www/sites/parisettelane.com/www.parisettelane.com/wordpress/wp-settings.php on line 468

Deprecated: Assigning the return value of new by reference is deprecated in /www/sites/parisettelane.com/www.parisettelane.com/wordpress/wp-settings.php on line 483

Deprecated: Assigning the return value of new by reference is deprecated in /www/sites/parisettelane.com/www.parisettelane.com/wordpress/wp-settings.php on line 490

Deprecated: Assigning the return value of new by reference is deprecated in /www/sites/parisettelane.com/www.parisettelane.com/wordpress/wp-settings.php on line 526

Deprecated: Assigning the return value of new by reference is deprecated in /www/sites/parisettelane.com/www.parisettelane.com/wordpress/wp-includes/cache.php on line 103

Deprecated: Assigning the return value of new by reference is deprecated in /www/sites/parisettelane.com/www.parisettelane.com/wordpress/wp-includes/query.php on line 21

Deprecated: Assigning the return value of new by reference is deprecated in /www/sites/parisettelane.com/www.parisettelane.com/wordpress/wp-includes/theme.php on line 618
So little time

Competition

May 19th, 2008
Trapper and Socks have it outTrapper and Socks in Action I happened to catch this cat fight in my kitchen (yes, it’s between actual cats, but there were no bets placed!). Speaking of fights, I have been doing some tinkering with Ruby and C# (especially using Mono). I have seen people do some magic with Ruby. It does seem to have some very powerful code generation capabilities and seems especially efficient at creating simple database driven web apps (using the Rails framework) . However, I hate the syntax! My background is PHP, Java, C/C++ and shell scripting. I really like using braces for block definition. The whole begin and end thing escapes me. Perhaps it’s the years of using vim as my “IDE”.

C# otoh seems to be a natural transition. I like the separation of the virtual machine from the language itself. Even though I think Microsoft is evil for trying (successfully?) to kill Java, they have done a good job with dotNET. But I would probably have avoided it had not the Mono folks done at even better job at making it work under Linux.

Test Driven Development

February 16th, 2008

So I’ve changed jobs after working for nine years at my old company. I couldn’t take the travel any more. It was interesting for a season, but that season has passed. I was very appreciative of being exposed to so many different aspects of running a software business.

Now I am working for a much larger company and it is very interesting to compare the experiences. One of the big differences for me is that previously I followed no formal theory of software design. I suppose my approach was something like: capture requirements, develop rough design, identify risks, develop proof-of-concept code for the hard parts, refine rough design, code components, unit test components, integrate components, test system, document, deploy and fix bugs throughout useful life.

The group I am in now uses agile software development with an emphasis on test driven development. I can’t say TDD really works for me. Although I can see the benefits of automated testing and I think I should have been doing that all along. However, in fairness, the system that I worked the most on was some tire testing equipment. Many of the problems that I had to deal with arose from the integration of the software proper, the PLC program and the realities of a physical machine. Don’t get me wrong, I just haven’t had enough experience with TDD to make a judgment. I guess I will just have to try it for a while and see what happens.

From my past experience, I can see that TDD is definitely not the all-in-one answer to software development. For example, if I have want to implement software protection, a.k.a. interlocks, for some piece of equipment, I cannot write a test and watch it fail before I write my code. People get upset when you destroy sensitive, costly equipment.

Also, you can write a test that exercises every line of code in your module, but still not catch all the bugs. I think TDD can be useful, but you still have to think about what you are doing and what problems are likely to occur in the future. One idea that I have been exploring recently is the concept of defensive design as it relates to software engineering.

SCO

November 27th, 2007

It’s been a long time since I have followed this story; I thought it was dead. Back in 2003 SCO sued IBM because it said that IBM took code from the original UNIX source and stuck it in the Linux kernel. I thought it was totally bogus from the beginning, but I really knew they were dead in the water when IBM decided to defend rather than settle.
Read the rest of this entry »

C++ Abstract Classes + Serialization

November 26th, 2007

Interestingly I had to delete my last post. Firefox and IE both tried to consume all of my memory when I tried to edit it. Anyway, I am working on trying to understand the “best” way to do serialization/deserialization of child classes of an abstract class. Here is what I came up with so far.
Read the rest of this entry »

Management

November 24th, 2007

I was reading a blog on Jack’s site and it got me thinking about project management and management in general. Jack was ranting (his word, not mine) about choosing the right tool for the job. I agreed with him for the most part. But another issue that I feel is just as important is keeping people motivated. Unless you have a horde of slaves working for you, you must always “bring” people along to where you want them. “Because I said so” barely works for my five-year-old (but it is sometimes necessary). However, when working with adults it is much more effective to encourage people to see your point of view. Those of you who have worked with me in the past, please contain your guffaws. I like to think I have mellowed a lot over the years.
Read the rest of this entry »