Thursday, July 31, 2008

blogging disease

I think MySpace and the like are a sickness. Wall-e proved it. All the people were speaking to each other through video chat instead of interacting directly.

I've posted few blog entries and I think the same can be said for blogging. I find I check for comments a lot...which is a symptom of the disease. Another symptom is the delusions of grandeur - where one writes blog entries conversationally, as if people are reading it...

So, what do you think?

Monday, July 28, 2008

Security problem?

I've read and heard over and over that the best hackers use the weakest link to hack into systems. Don't know what the weakest link is? It's you and me! How else could phishing scams be so successful?

Today I came across this image via digg. Supposedly this is a person tricking another person into giving out their password by telling them that the IRC software they are using will not display his password. Check it out:


Now I don't think I'd fall for that. But plenty of people probably would. So keep a sharp lookout and remember to keep your password(s) to yourself.

Friday, July 25, 2008

Tastes change

Everyone's tastes change as they get older. When I was a kid I loved Peanut Butter and Jelly sandwiches. So much that I used to make Triple-Decker PB&Js! Sometimes I'd go crazy and make a Quadruple-Decker!!! Today I can hardly stand the stuff. I still make them in a pinch. But by the time I'm on the last quarter sandwich I literally start to gag. I need a lot of milk to get it down.

I realized how my tastes are changing as I age while I made a tuna sandwich the other day.

Sidebar: How does Mike make a tuna sandwich? Glad you asked.

To start, I like white albacore tuna. In water please, no oil. You can use what ever you like. Pictured, I have one can of tuna, one celery stick, chopped, and about two table spoons of mayo. Finally some salt and pepper to finish it up.

I don't think there is a need to measure. Mayo for example, just feel the tuna get soft as you add it in a bit at a time.

Speaking of mayo, I use the real deal - no "light" knock-off for me. I say, if you're going to risk the mercury, may as well have real mayo to go with it.

I drain the tuna and press with fork in a colander before I mix all this up to remove the water. Why? I don't know. I was shown this way by a chef while working in a restaurant on Long Island. It is a long-standing habit.



Bread has to be whole wheat for me. Toasted and buttered. Not too much of either.






Put it together with some lettuce and tomato slices, and I have a snack I can finish without gagging.



As I was saying tastes change.

Back when I was in middle school a neighbor had a Toyota Supra. For the longest time I always wanted one. I swore to myself I'd buy one when I could. While in college I drooled over the last model imported to the US. A bright yellow one was always teasing me from the student parking lot at RIT. Some go to college with a bit more coin than others! But I digress.

Now that I can afford a nice car, I drive a Volvo s40. I find it interesting that, using the 89 Supra for comparison, both of these cars have the same horsepower. The one I have seats 4 comfortably and doesn't hurt the kidneys on long drives.

I notice lots about myself changing as I get older. One of them is the set of things that I get excited about - otherwise known as my tastes.

What about you, how are your tastes changing?

Oh, and in case you're worried about me, I may not have a supra but I still have a fun toy.

Thursday, July 24, 2008

Check in your Changes

At work, managing changes in files is a big part of what I do. These files are put together to make up a design unit. Many design units are put together to make a whole SOC. Much of the data is constantly evolving.  Files might be changed by myself in my current workspace or by someone else and committed to the server ahead of me. All these changes have to happen cohesively to keep development moving forward.

As an individual contributor, part of my job is not just making changes but also managing and understanding how files are changing in the design as a whole. Importantly, when I change a file and get set to check it in I need to be sure the changes are correct. If that seems obvious, it is. But truly "correct" goes beyond just running a test suite. I typically check:
  • are the comments still correct
  • are there any debug print statements that need to be deleted
  • are there any temporary experimental changes still hanging around
  • are any files changed unexpectedly
  • are my files too old to commit
After checking the status of every file to make sure there are no unexpected changes, my I perform a diff of every file. I use a graphical tool, tkdiff. Sometimes the differences are so numeras that the task seems daunting:


That picture represents 67 changes across almost 800 lines of code. Going through this change by line by line takes 15-20 minutes. The cleanup is worth it. Code that is checked in after this type of last minute read-through goes a long way towards keeping the code the best it can be - outside the domain of pure functionality.

By using tkdiff, I can scroll round up and down from each change. This lets me look at the comments - especially the ones that have not changed next to code that has changed. This is how I keep comments correct.

That last bullet, "are my files too old.." is very important. In this case, when the commit is run one of too things might happen. One, the commit goes through. Or two, the version control tool reports that I can't commit because my changed file is out of data with respect to the server. Two may seem unfortunate, but it is actually better than the first one which can introduce errors later. In the second case, I'm forced to update, and re-run the test suite. Why isn't it OK to just check in when I know my workspace contains a lot of stale (files that have been changed on the server)? Because after I commit my changes the state of the server data is not known - it hasn't been tested yet. It could easily fail the test suite.

What to do about a workspace that is out of date depends on the data that is out of date. If it is related to your change, you really should update your workspace and re-test. If it isn't it might be safe to simply commit the change. But beware, it is always better for your group (your colleagues who will soon see all of your changes!) to check your work first. So finish your changes, then merge with the latest data on the trunk, turn the test suite and deal with any issues yourself. This saves the team valuable time. One way to do this is to "merge early and often." If you never let your workspace get stale, you won't have this issue.

If you can convince everyone on your team the importance of merging early and often. To only run the test suit on data that is as close to HEAD of the tree as possible. You'll find the group will save time by spending less of it sorting things out with those annoying reply-to-all "who checked in xyz and broke everything" emails.

Of course none of this replaces keeping yourself from going dark. There is also the need for periodic peer reviews.

So, how do you manage your check in process?

Wednesday, July 23, 2008

Computers for the Kids

Getting a computer for your kids presents quite a few problems. Some of these are:
  • preventing unwanted programs
  • preventing viruses and ad-ware
  • keeping OS up to date
  • keeping software running

I just stumbled on a interesting $249 (minus keyboard, mouse, and monitor) solution: CherryPal.


It works like this: you buy the box, attach your keyboard, mouse and monitor to it and turn it on. It uses very little power itself and has almost no storage. How can it be any good? All the apps and your storage are kept on servers managed by CherryPal.

This means that your kids can only use what they provide which is currently: "OpenOffice.org office productivity suite, iTunes, a CherryPal-brand media player that supports all common files formats, and a CherryPal-branded instant messenger that supports all common IM programs." With more to come.

You can attach an external hard drive if you want to keep your files locally. They say they support printers, cameras etc. One thing they don't support is a monitor greater than 1024x768 - basically a deal breaker for anyone other than the kiddies. I could find some CRTs with this resolution, but no LCDs at NewEgg. 1024x768 is clearly old school.

This product is not available yet and I'd wait for professional reviews first. But looking at the web site CherryPal seems like an inexpensive way to get computing for your kids that is not maintained-by-dad.

Of course, if you have the cash, get a Mac.

Thursday, July 17, 2008


Wow, I'm famous. Just kidding. Jib-Jab has a new feature that lets you add yourself to videos. It's lots of fun. Give it a try yourself!