general08 Feb 2007 03:06 pm

I’m writing in hope that you will do me a small favor. When I started this blog is was fun and easy for me to run. Then you discovered it. It used to be wide open so anyone could comment but you ruined that with your lame solicitations for lame drugs linking to your various shady online web accounts. Hundreds of them. So now I get an email each time you post a comment and I have to log in and moderate from time to time. In case you haven’t noticed, nobody cares about this blog. Nobody reads it and I hardly post to it. You, on the other hand, still visit me regularly, posting about ten pieces of spam each day that I have to delete manually.

So I have a favor to ask, one that will make our relationship work better. Please do me a favor and click an ad each time you visit me. I’ve made a total of $1.35 since I started this boring deflated balloon of a blog and I’ve now spent more time deleting your amgen, tamafil, viagra, and other bullshit ads than I have blogging.

Clicking some ads is the least you could do. In exchange, I’ll accept every comment you post on this blog entry for public viewing, just this once.

Judging from the messages you’ve left here, I’m convinced you are a flesh-and-blood human being or else you’re one seriously sophisticated robot. Either way, how about taking the time to say hello every so often? Maybe write a few sentences about yourself and a few comments on how the weather is wherever you are? We can be penpals, we can make this a better relationship.

Anyhow, thank you, and have fun selling your drugs.

general25 Dec 2006 08:52 am

For the past six months I’ve been working on a startup project and it’s just about at the point where all the the features are in place it’s time to see if it will sink or swim on the WWW. One of the important features involves email and the requirements call for both plaintext and HTML email options. I hadn’t done HTML in email before and until I began using Google Mail a while back I still used Pine for both work and personal mail.

I had read enough warnings about how hard it is to make HTML email look right that I decided to test the messages my application was producing on various web email clients. I chose Hotmail and Yahoo mail in addition to my Google mail account. I could have chosen AOL but decided against it until I absolutely had to–I did’t want to give them the impression that their advertising actually works, lest they produce more of it.

The good news is that the HTML mail looks fine in all of these applications. The trick was to use inline style elements instead of an external CSS file, to not use enclosing html/head/body tags (everything’s in one big div tag), and to set a reasonable fixed width on the message so it doesn’t look wrong when a user opens it up.

In my testing I was shocked at how bad Hotmail is. The trouble started when I tried to create my Hotmail account with Firefox 2–it doesn’t work. I switched to Explorer and the account creation page magically worked, I guess I shouldn’t be surprised. Unfortunately, even Explorer couldn’t make Hotmail itself usable. Clicks don’t always register, the things to click on are never where you expect them to be, and it’s slow as hell. Hotmail was also full of ads–this is supposed to be my email inbox but it looked like a newspaper advertisement for Fry’s Electronics.

When I signed up for Yahoo mail I was given the option to use the new beta version of the application and I chose it. Within an hour I had switched to their original user interface. The beta version is an all AJAX application that looks cool but it’s very slow. The UI element that divides the page horizontally got stuck when I stretched it downward and I couldn’t find a way to un-stick it. That was the reason I switched to the non-beta interface, I’m glad I had that option. I noticed tons of Javascript errors on the Yahoo beta, it clearly still needs work.

I can’t believe people put themselves through the Hotmail experience every day. I’m sure most of them simply don’t know better as it seems reasonable to assume that Hotmail is a good product after all of the years it’s been in existence and all of the wealth and talent at Microsoft.

software& general20 Dec 2006 08:26 am

I’ve always wondered why email is still so insecure. I’ve used PGP and mail services like hushmail before but they’ve been hard habits to keep since so few of the people I mail with seem to use them.

Recently, I started randomly specifying https for many of the common URLs I visit and they mostly fail except for https://mail.google.com. It’s nice that this one just works and at least the conversation between my browser and Google Mail is secured. I like the thought that at least my employer isn’t reading my personal mail.

I’ve tried other URLs, including plain-old https://www.google.com and it simply forwards to a non-SSL version of the search engine. Still, that’s nicer than just failing outright like most sites do.

I wish I had an option to secure all of my HTTP traffic by telling my browser to automatically use SSL everywhere. At this point, the overhead of doing so seems really negligible to me (though I know it might be meaningful to the sysadmins at Google). I wish I could expect all web sites to support SSL as well as they support plain HTTP traffic. I also wish someone would finally come up with a secure email system that was easy and invisible enough that my grandmother would use it. The world would be a better place.

software& general22 Sep 2006 02:18 pm

I received a note from my previous web hosting service to inform me that they were closing. It was a small and reliable outfit and I knew this was one of the risks of doing business with them. I shopped around a bit for a budget web hosting site to move my stuff over to and within a day I had created a new account.

I thought that moving this blog over would be a pain since it’s backed by a mySQL database and runs on WordPress. It couldn’t have been easier. The steps basically boiled down to:

1) Export the database into a gzipped file (three clicks)

2) Import the database on the new site (three clicks)

3) FTP download the folder this blog lives in (five clicks)

4) Upload the folder to the new FTP site (five clicks)

5) Edit the config file to point to the new database/user/password (about four clicks and some typing)

Then, presto! My blog is up and running on the new site. It seems faster too! For a while there I was second guessing my decision to do this myself when hosted services like blogger and typepad exist.

This was just too easy.

running& software& nutrition31 Jul 2006 09:33 pm

Yerba Mate makes me a better programmer and it helps my running too. I’m usually hard pressed to link these two activities which take up so much of my time but Yerba Mate is definitely important to both.

When it comes to programming, Yerba Mate helps me concentrate and think clearly. I suppose most of this benefit comes from the caffeine content of the tea, but the effect is markedly different than the effect I get from drinking coffee or regular tea. I can feel my mind focus into a laser beam when I drink Mate. Also, Mate is something you drink slowly and I think this results in a more sustained and measured stimulation.

I drink Mate first thing each morning. I generally run in the morning and that early Mate is fundamental to my training program. Warm Mate in my stomach each morning gets me ready for a run and gives me the extra motivation I need on many days. Besides having caffeine in it, Yerba Mate also has lots of good things in it like potassium and magnesium. In sharp contrast to coffee, Mate is great on my digestive tract. It also acts as an appetite suppressant which I think is great when I’m up at 3am programming and find myself wanting to eat all sorts of badness.

If you like to try new things, I can highly recommend Yerba Mate. It may be an acquired taste, but so is coffee. You can read more about Yerba Mate elsewhere online and you can buy Yerba Mate and the paraphernalia required to drink Mate online and probably at a local Latin market in your neighborhood.

If you have an Argentine friend, save yourself lots of trial and error and ask them about Mate.

running17 Jul 2006 12:18 pm

I’m considering running the California International Marathon on December 3rd 2006. I’m sort of broke so I like the fact that I won’t have to travel too far and the marathon is small and fast. In fact, there’s a net loss of elevation over the 26.2 mile course. Weather should be good for running in December and I want to try to get as close to a Boston qualifying time as I can get, which would be a 3:10 for me. That’s going to be really tough considering my fastest time is 3:30 and I’ve only ever run two marathons. Good news is that the 3:30 was on the really tough Big Sur course, so maybe I can get close in Sacramento.

I’ve been keeping a light maintenance training schedule since the Bir Sur which was in late April. Still, I’ve managed to gain about 7 pounds and will now fall back into all-out training mode. I’ve started upping my mileage in the past couple of weeks and ran 30 miles last week.

The bad news is that I’m at home sick today. I had cold chills and fever Saturday night and felt like a boneless chicken all day on Sunday. Along with the fever I have lots of pain on the right side of my middle back. I’m headed to the doctor’s office, the advice nurse thinks I might have a kidney infection.

Not the greatest way to start a training regimen, but one thing I have learned about training for a marathon is that these things happen and you have to listen to your body and plan for a smart recovery.

software09 Jun 2006 11:05 pm

I called in sick to work and interviewed at Google on Tuesday. I haven’t been happy with my current job for a while now I’ve done nine interviews already this year. I interviewed up a storm in January and February, about the same time I sent Google my resume. I waited but didn’t hear back and figured that I was in a pile with thousands of other folks who thought they’d interview at google.

I finally did get called and my experience went like I expected. My interviewers (five total) quizzed me on algorithms, software architecture, network protocols, multithreading, the works. I was interviewed by junior and senior engineers alike and I actually had a great time and enjoyed the questions. I was really happy with my performance and there was only one interviewer I felt I had not pleased, a junior developer who asked for a lot of detail with many t’s to cross and i’s to dot. Even with this interviewer I felt I did well enough but may have splashed a bit too much in my landing, so to speak. Everyone I spoke to at Google seemed to be working on projects they were passionate about, it was refreshing.

The whole Google interview experience was a confidence booster and I’m glad I did it whether or not a Google paycheck is in my future. I felt like I could easily fit into that environment, enjoy it, and excel.

Still, there are many great companies in Silicon Valley, and I still have lots of sick days left.

software29 May 2006 03:10 pm

This post is password protected. To view it please enter your password below:

running03 May 2006 09:40 am

I had a great time at the Big Sur marathon this weekend and I ran a race I didn’t think I had in me.

I wanted to be somewhere between an 8-8:30 pace but the only other marathon I had run was Las Vegas in December and I ran that very flat course at a 9 minute pace (3:56). With the experience of only one marathon I really didn’t know what to expect in Big Sur.

The start was sort of slow. Even though I lined up around the 3:30 finisher zone I ended up with lots of slower runners in front of me. Maybe they were smarter runners, the race started with a few downhill miles and it was hard to keep myself in check. I remember running two slow miles then overcompensating with a seven minute mile, then finally backing off and settling into a nice pace.

I also remember immediately noticing the stunning beauty of Big Sur. The fresh air and trees alone were worth the race fee, the ocean views were a bonus. The weather was superb for running and the headwind I thought was a certainty for this race was nonexistent.

Looking back at it, the race itself is mostly a blur in my memory. I remember those first few miles. I remember the 1/2 marathon mark and Bixby Bridge. Then I remember the first signs of muscle pain at mile 15–I had a miniature panic there thinking I had paced myself too fast and was destined to crash. After a couple of miles though I was still right on my pace and the pain I felt was gone.

I hit mile 20 feeling like I could easily run a ten miler. I’m not sure what I did right, but I felt really great! I picked up the pace and the next 6.2 were a blur, I ran fast and steady to the finish for a 3:30:42!

I had built up so much worry about Hurricane Point and all of the hills in Big Sur and in the end they were no big deal. I could feel my hill training paying off.

I didn’t have to stop at all during this race, not for the bathroom, not to stretch, I even took my water while jogging. I feel like I planned my race prep really well–nothing fancy, I just followed the advice I see again and again on the running forums I frequent and I practiced my routine enough that it became a habit.

Also, I raced for the first time with headphones and it made a difference. I planned the music carefully and it really kept me focused, paced, and happy the whole race.

I had a tender right knee (IT band) during my training when I started doing my longest long runs and I was pleasantly surprised that I didn’t feel any pain during or after this race. I’m proud of myself for following sound advice, it really is possible to work through an injury with some intelligence and restraint. It was hard not to be bummed when I was hurt but next time I will have this experience to draw from and I won’t let myself get down.

Before this race I didn’t think I had the genetics to run a Boston qualifying time, but now I know I can do it if I train well enough and make it a goal. If I do decide to try for it, I have almost exactly three years to run a 3:10. Still seems daunting, but man it’s exciting.

software30 Mar 2006 10:01 pm

I’ve recently been working with several software projects that are struggling with ANT. In each case, the project has evolved from simple beginnings into big and complicated codebases comprising multiple modules and applications. I’ve built many ANT build systems and have seen how complicated things can get after a few years of organic growth. Afterall, developers like to write software and users like to get features so there’s rarely time or will enough to maintain a build system as an application changes.

I did a bit of research and found a few new ANT features that make it possible to design reasonable build systems that will grow gracefully as a project grows more complex. The most useful of these is a new task called subant which will invoke targets on other ANT build files. This is similar to antcall, which I had used for this purpose in the past, but it has a much cleaner syntax and is easier to use.

I decided to build a sample workspace that contained three modules named module1, module2, and module3 with the following dependencies:

  • module1 is standalone
  • module2 depends on module1
  • module3 depends on module1 and also depends on module2

I built a simple directory structure to hold these modules, made a few classes that exercised the dependency rules above, and did my best to come up with an ANT build system for the project that is simple and will stay simple as the project grows.

Here’s a link to my sample project workspace: sampleworkspace.tar.gz

During my research, the following two links were enlightening and are worth checking out:

The ANT Manual

Click “Ant Tasks”, “Core Tasks” and study subant. The documentation for it includes a working build system for a multi-module project and was the basis for the system I came up with.

Advanced ANT Techniques, Part I by Ajith Kallambella

This well written article highlighted several useful ANT techniques, including subant. Also has a clear explanation of how to use a common build file multiple times, which keeps you from repeating yourself (once for each module, for example).

Next Page »