I couldn't decide whether to file this under /Computing/Mac, or /Motorcycling, so I put it under /Miscellany. I was doing a little referer_log surfing tonight, and happened across an interesting referral.
Photo of my Bike (with Apple logo) on Japanese site
From the context, the site looks like a collection of interesting appearances of the Apple logo. I'm honored to be one of them, even though they're stealing bandwidth from me.
This just in...
I seem to be quite the hot item in Japan. The cycling portion of my weblog is linked from this Japanese weblog
Posted: Wed Feb 25 19:55:03 -0800 2004
Well, the once seemingly huge 60G drive on my G4 desktop has been starting to feel cramped lately. Last I checked I "only" had 8M left. With the imminent arrival of the Garage Band Jam Pack, which I believe takes another 3G, I was definitely in need of more hard drive space. As luck would have it, I happened to be in MicroCenter the other day with a friend that was shopping for a new Mac laptop, and they had LaCie 160GB firewire drives on sale for $169. Geez, just over $1 per gig. Hard to pass up, so I bought one. It's now humming away hosting my 25GB or so of music, with 122.5GB free. And suddenly my original hard drive has 31GB free. Unreal. The only thing cooler would be to have bought two of them and run them as a mirrored RAID array. Maybe when they get even cheaper.
Posted: Tue Feb 17 20:30:52 -0800 2004
While working in some legacy code yesterday, I had an insight that I can't believe took me so long to figure out. I've always thought it odd that some people insist on differentiating member variable names by some naming convention, such as by prefixing the name with an 'm', as in:
private String mFoo;
I've never been a big fan of overloading variable names with type or scope information because I think it makes it harder to read the variable names, and by extension, the code. To me, the extra "information" is noise, so it lowers the S/N ratio of the code. The inclusion of scope information seems especially unnecessary(and therefore especially noisy) to me, and yesterday I figured out why: it's because I tend to factor my methods into very small, cohesive units.
I assert that where this convention exists you will also find code with long, uncohesive methods.
Why? Because methods that are very small don't have many local variables compared to long-winded, uncohesive methods. Therefore, there can be very little confusion about where a given variable was declared, and therefore no need to communicate the scope in the variable name. Long methods tend to use more variables from multiple scopes (simply because they're long), so to keep things clear, the programmer uses naming conventions to communicate scope that would otherwise be pretty obvious.
This is another argument for short methods, similar to the refactoring that states that a block of code prefaced by a comment should probably be replaced with a well-named method call.
In other words, program by intention - make your code say what it's doing.
Posted: Fri Feb 13 06:52:07 -0800 2004
My second post about my new PowerBook was unfortunately kind of lukewarm (I didn't think the battery lasted long enough). However, now that I've lived with "sylph" for a couple of weeks, I'm pretty much in love. I've been using the machine at work, pretty much as my main development machine, even though they gave me a very fast Windows box. Sylph, which is currently carrying "only" 512M of RAM, compiles our entire source tree to a .war file in about 45 seconds. My manager's 2.4ghz Compaq laptop takes about a minute longer to compile it (under cygwin). So, you could say I'm pretty happy with the PB's performance :-).
It's also proven to be as much of a champ as the household's other Mac laptops (a 900mhz iBook and 550mhz TiBook), in terms of stability. I'm constantly sleeping it, waking it, plugging in, unplugging, switching between wireless and wired networking, adding a mouse and taking it off, etc., and it has never stumbled. I think over the last week I've only turned it off once, and it's been carried in and out of different environments daily.
I can recommend a few accessories that I've been very happy with:
- WildEepz from RadTech. They're little urethane dots that make the case top and bottom mate better when the 'book is closed.
- A PowerSleeve(z), also from RadTech. This is a very nice slipcover that I use before dropping the PB into my bag.
- The size 11 SleeveCase from WaterField Designs. This is a very nice case for carrying the PowerBook on short journeys where you don't need a lot of gear, but want protection for the 'Book. I added the optional D-rings and suspension strap. This is top-notch gear. I originally ordered it along with the WaterField Cargo bag, but decided to send back the Cargo bag and just stick my old tried-and-true Tumi Computer Brief (mine is much older than the one at the linnk) for commuting duties. This is no reflection on the Cargo bag -- it was of very impressive quality. Gary at WaterField was great about processing the return with no fuss whatsoever. I highly recommend this manufacturer of great laptop gear.
Posted: Sat Feb 07 16:02:53 -0800 2004
What am I to make of this spoof mail, claiming to be from Citibank? It's not even close to looking like something official, is full of misspellings, reads as if it was written by a five year old, and has an obviously encoded URL. This is the second such mail I've received in the past few weeks. Is someone doing a sociological experiment to find out just how dumb the general population is?
_Dear citi_bank Card_holder,
Thiss _email was se-nt by_the_ Citi_Bank _server_ to
veerify _your _EMAIL adress.
You musst clmtpoee this pcrsoes by clicking on_the link
beloww and enteering in the small _window your citi_bank
_Debit Card Nummber and pin that _you use on the ATM Machine.
That_is done - for your potcertion -c- becaurse some of our
membres no lenogr have acecss to their email addrssees
and we must verify it.
To veerify your_ E_Mail adderss and akcess your_ OnlineCitibank
account, klick on the_link beloww.
Posted: Fri Feb 06 07:17:41 -0800 2004
My last day at BEA Systems was Friday 01/23. It had come to the point where I was relatively bored with what was going on (I'd been working in the same basic code for about 1.5 years), and so had started sending out resumes and contacting my "network nodes" for interesting opportunities. Over Christmas week, I interviewed at, and was made an offer by, a small financial services company.
I started at my new job last Friday. the new gig is downtown, rather than in the DTC, which represents a return to a significant commute for me. I'll be doing software development, as usual.
So far, my impression of the company is that it has all the hallmarks of a great small company - the freedom to do what makes sense at any particular time and a group of tightly-knit folks that have a lot of ownership in the product.
There are the traditional small-company downsides, as well - the processes and other development knowledge in a company like this tend to be passed along as an oral, shared, history. This tends to be tough on a new person coming in (like me). I have to remain an infant and be handheld until I gain experience in each area, rather than sequestering myself and reading documentation to get the basics.
Of course, back on the upside, is that fact that a small company can be more agile, and adapt to new practices more easily than a large organization. That's partially why I was hired - to help change (and hopefully improve) the processes and approaches that are currently in place, where it makes sense. The business side is totall behind these changes. It should be fun, and I'm looking forward to it.
Posted: Sun Feb 01 15:57:14 -0800 2004