Archive for the ‘Software’ Category

I’m Dumping my Mac

December 12, 2007

Mac has this little window that pops up for you to send helpful info to Apple whenever an application unexpected closes (“Your report will help Apple improve this software”). Here is the report I just sent to Apple:

I was reading something in Firefox and it just shut down. Actually, Firefox stalls or quits on me on a daily basis. I have almost never successfully shut Firefox down because it stalls.

I have decided to switch back to PC and give my Macbook away. I was hesitating on the decision at the Dell website, then Firefox crashed. That sealed the deal. (I restarted Firefox and then ) I quickly made the purchase.

For more more reasons why I hate Mac, click here.

A Golden Age for Software Engineers

September 8, 2007

I recently attended a discussion about Agile, and I realized there that I’m pretty spoiled as a software engineer. I entered into this profession at a time when I can complain about the Eclipse IDE because it is not as good as IntelliJ and when I can submit code changes via Perforce rather than by paper. And my first industry experience is at a company that practices Agile and TDD, utilizes separate code branches for active development versus stable, maintains a huge test infrastructure of unit tests and automated UI test scripts, and has a cubicle-free open office setup in which founders sit next to new hires.

Like a fish never knowing air, these are all second-nature to me and I only realized that they are not ubiquitous until I experienced how difficult it is to pick up someone else’s (broken) code that is totally devoid of tests, or learned that a company like Google only has one code branch… so that any other engineer working on something completely unrelated could break your piece of functionality. I’ve surprised engineers at other companies by telling them that our test infrastructure is completely automated, prompting them to ask, “So what do your QA do?” “…. They write the automated scripts!” And I’m really glad that my projects are prioritized and defined a la Agile rather than by spec writers or sales & marketing professionals or, worse yet, government bureaucrats. Things could be better at my company, but then they could also be much, much worse.

As for all this discussion about Agile this and XP that and Scrum somesuch, I used to wonder what all the fuss was about. Agile (click for “manifesto”) is basically about maximizing collaboration within a software team and being flexible enough to absorb changes in requested features. Actually, I believe that XP and Scrum fit that description, too, and I don’t care what you call it as long as it works for the team. I also thought it was all fairly commonsensical, until I realized that it was only in recent years and in certain circles that people started talking about Agile or XP or Scrum. For example, software team management at Microsoft is definitely not agile. I’m not saying that’s good or bad for a company like Microsoft, but I have to believe that large corporations and government contractees do not naturally think in terms of product releases with adjustable feature sets. Works well for the typical smallish Silicon Valley software company, though. Mehran Sahami once described computer scientists as akin to geometers in the time of Euclid, and to a lesser extent the same could be said about Agile practitioners.

The question I’d like answered next is, What is the maximum team size at which the team can still be agile?

links for 8/26/07

August 26, 2007

Liberating Public Information

August 26, 2007

Carl Malamud is my new hero. This writeup about his current endeavor is definitely the coolest tech article I read this week. He is in the middle of building a freely available public database of caselaw, caselaw that WestLaw currently makes a profit re-publishing. Somehow, WestLaw is become the for-profit reporter of court proceedings, and that strikes me as
rent-seeking and ludicrous.

In America, public record should mean public record, like EDGAR for financial records. Speaking of which, that amazing and freely available public online database is another one of Malamud’s accomplishments. Actually, I had always taken EDGAR for granted since this is after all something we should be able to take for granted. But I was ignorant of the years of legal wrangling Malamud had to go through to set this up and of the two years he personally operating the database servers before he shamed the SEC into taking it over. While the SEC was complaining that it would cost millions and take years to implement such a service, one man is all it took. Wow! He also did the same with the Smithonian and with Congressional hearings, neither of which I have ever used, but I’m sure they are of equally high quality.

And soon hopefully we will also be able to take a freely available online database of caselaw for granted, one that is easy for anyone to use and has all the hyperlinked citations that lawyers are paid to connect. I wish I had come up something like that because it certainly is a worthy project for an advanced democratic society.

The Last Straw – My Rant on Macs

August 5, 2007

When I bought my first mac last September, I was drawn to it because of its reputation for speed and stability and moreover because so many engineers I respect are mac addicts. The initial glow wore off quickly after just a couple of weeks. I noticed several things that are just ridiculous to me, including:

  • It crashes all the time: Firefox, the one application that I use whenever I’m logged in, crashes on me often. I have almost never successfully closed Firefox on my MacBook – I have to force quit out of it just to shut my computer down. This is absolutely shameful. And Adobe hangs. And OSX freezes when I navigate around the file system. So much for a crash-free Mac.
  • The most illogical file system: Speaking of file systems, this is the first time I have used a computer in which the file system I am navigating doesn’t reflect the real underlying file system, with the effect that nothing is where I think it should be. I will install applications and have no clue where they go. I can’t believe they hand out patents for this.
  • Don’t mind those 1.3B people: Chinese character processing is absolutely horrid on my Mac. When I email friends in China, I never type in Chinese anymore because it was such a half-baked feature.
  • Slow UI: I had heard so much about how the MacOS UI is so wonderful once you get used to it, and it is nothing but inferior to Windows. I’ve worked in investment banking where people are encouraged to operate without a mouse because aiming-and-clicking slows you down. I used to research companies online, build financial models in excel, respond to emails, and navigate between everything using ALT-TAB and Windows hotkeys and well-positioned folder Shortcuts. I can’t do any of that now in MacOS without using a mouse pointer. I couldn’t even ALT-TAB properly in MacOS before installing Witch, which Apple shamefully doesn’t include in its OS.
  • Lack of software: I never realized how little software is written for Mac until I owned one. Microsoft Office is slow and unwieldy on a Mac. Google didn’t release a desktop package for Mac until quite a while after they released it for Windows. I was so excited to try the media software my friend’s startup had been working on until I realized it was only released for Windows. Gah, I can’t even play the classic video game I bought (Myth: The Fallen Lords) because OSX is not backwards compatible. Rather, it’s incompatible, like Apple and Chinese… or logic.
  • Memory hardware problems: I had bought 2GB of RAM, but my MacBook has only ever registered 1GB. I sincerely don’t think I did anything wrong, and I can’t figure out why this never registered. I’m blaming Apple for this too.

But the last straw came when I tried to set up a Java project for a side programming project. I downloaded the source code, found the build.xml file, ran the build ANT task and failed to compile. There were several compile errors complaining that it couldn’t find Arrays.copyOfRange() and LinkedBlockingDeque, TimeUnit.HOURS and TimeUnit.MINUTES, and this normally is not a problem because these resources are in Java6, meaning that I simply needed to upgrade to Java6. I looked around and found that the latest released version of Java for Mac is Java FIVE. ARGH!!!! This was really the last straw that a computer company that prides itself on developer tools doesn’t even support the most recent version of Java. Thankfully, I was able to find a preview release of Java 6 for Mac, but the beta status of this product doesn’t exactly inspire admiration.

So I installed Java6 and turned my attention to editing the JAVA_HOME environment variable so that the ANT task would know where to find my newfound Java resources. After a few hours of reading helpful blogs like this and this and this and this, I finally found my way. WindowsXP allows you to easily set environment variables on the Control Panel. I would think that MacOX has something similar on its System Preferences panel, right? But NOOOOO!!!! I had to go download something that should have been included in the operating system anyway.

Is it really this ridiculous, or do I just have a knack for trying all the things Steve Jobs doesn’t think is important?

Now I can finally get started, but right now, this hilarious video shows exactly how I feel.

EDIT 12/14/07: Four months later, the saga ends and I am dumping my Mac.