Friday, June 29, 2007

Eclipse 3.3 is Out ... Sorta

Well, the download page has been updated. Looks like they're splitting it into 'distributions':

  • Eclipse IDE for Java Developers: The essential tools for any Java developer, including a Java IDE, a CVS client, XML Editor and Mylyn.

  • Eclipse IDE for Java EE Developers: Tools for Java developers creating JEE and Web applications, including a Java IDE, tools for JEE and JSF, Mylyn and others.
  • Eclipse IDE for C/C++ Developers: An IDE for C/C++ developers.
  • Eclipse for RCP/Plug-in Developers: A complete set of tools for developers who want to create Eclipse plug-ins or Rich Client Applications. It includes a complete SDK, developer tools and source code.
  • Eclipse Classic: The classic Eclipse SDK: the Eclipse Platform, Java Development Tools, and Plug-in Development Environment, including source and both user and programmer documentation.
The follow-on pages don't yet work.

Update: The 'more info' pages now work, the downloads don't.

Update: The downloads work.

Tuesday, June 26, 2007

The Secret to Life, Career and Happiness

Well, a secret, anyway, maybe not the secret.

Nobody else knows what they're doing either.
Really. That's something I think you need to know. I hope this isn't a surprise most of you, but for those of you whom it is, I'm glad you're here, reading this.

Assuming you're not psychopathically confident, there are probably times in your life or your career when you've felt a little lost, like you weren't sure what to do. This could be when you were trying to ask that cute girl out at the school dance, and you weren't sure how to approach her, or when you're trying to decide between one job and another, or when you're confused about an architectural decision your company has just made.

I get this feeling all the time, I'm not ashamed to tell you. It's probably a daily occurrence. When I was younger, this used to bother me, made me feel like I was clueless where everyone else knew how to navigate their way through life, and I was hapless and insecure.

Over time, I've come to the realization that it's not true. Many, if not most of you, feel confused or lost exactly the same way, probably almost as much as I do. It's part of the human condition, we're all just muddling along.

So, why is this A Secret to Life, Career and Happiness
Well, if you were labouring under the false impression that it was just you, and that the rest of us always know what you're doing, I hope this takes a burden off your shoulders. We don't. In fact, much of the time, we're making it up as we go along.

Interestingly, once you realize this and start to behave accordingly, you'll find that people respond well to you admitting that you don't know what you're doing. In fact, you'll find that admitting you're lost and confused is basically a leadership trait. That may sound odd to some of you, but I'm largely convinced that it's true.

Admit You're Lost at Work
Assume, for instance, that you're working on a project, and the enterprise architect for your enterprisey company has decided that this project Must Be SOA (TM). You don't see any likelihood of other programs interacting with yours, nor is there a technology boundary or multiple user interfaces, so you think to yourself, "Why SOA? It's going to cost us time, but what does it buy us?"

Chances are, some of your coworkers are feeling the same way, but unfortunately, many of them are feeling as I used to: that the reason they're confused is that they don't know what they're talking about, and that the architect and their coworkers are all happy with the decision because they do know what they're talking about.

So if you step up, and say what you're thinking, "Do we really need a service-oriented architecture here?" you'll often find two things are true:
  • The people who were feeling the same way are relieved. It becomes clear to them that they're not alone, confused about the architectural choice. They're not alone in their confusion. This is a good feeling, so they're happy.
  • Secondly, if your team and enterprisey company are any good, they'll recognize that you're perceptive and analytical, that you ask the right questions and aren't afraid to look stupid in order to advance your understanding and the team's.
These are all good things, and I've found that asking these kinds of questions almost always helps. Usually, either I come away with the understanding I was looking for, or the question helps to drive change. Either way, it's a win.

Don't Swallow that Foot
Don't take this too far; having a question doesn't mean you should be obnoxious. If your company is pursuing a second product line when the first is having some troubles, you could ask, "Our first product line is already failing, so why are we wasting time trying to build another product line that is already failing?" Depending on where you work, this could get you a laugh, a stern conversation or a pink slip.

If you're treading on politically sensitive ground in a politically sensitive company, you could try using yourself as the scapegoat for the question. "I'm sorry, I'm having a little trouble understanding, maybe I missed something. I feel like we're having trouble proving the success of our first product line and now we're going to end up splitting our effort on a new product line. Would it be better to focus all our energies on the first product for the time being?" Most people have a hard time criticizing a question when you start it by implying clearly that you could just be confused or mistaken.

So, be free. Admit that you're lost. And when you're done, come back and tell me how it went.

Tuesday, June 19, 2007

The Feedroom

For those of you who haven't had a chance to come visit me at the new office yet ...


Welcome to The Feedroom Toronto, courtesy of my cellphone.

Monday, June 18, 2007

MySQL - No Millisecond-Precision Date/Time

I guess I've been spoiled not doing anything particularly serious in MySQL thus far; I'm only just now discovering that it doesn't support millisecond-precision date-time datatypes directly. Fascinating.

Not a big deal most of the time, but for some precise date-comparison routines, we've used this capability before, in Oracle, and in other databases, so I'm just a little surprised.

Sunday, June 17, 2007


People are very excited about the benefits of virtualization. I don't disagree with them; there's some interesting ideas there.

Virtual workstations, for things like testing and QA of software on different environments is very useful, and something that existing virtualization tools do pretty well.

Virtual server environments, while successful, seem to be a bit of a leaking abstraction. If I have an application in ASP.NET that I want to deploy on a virtual host, do I really care if my Virtual Windows has Internet Explorer and DirectX? I wouldn't think so -- not unless my application relies on the presence of either.

So I'm interested in seeing the operating system for virtualization get pared down. This would probably start by paring down existing operating systems, but could eventually result in an operating system that sees no use other than as a thin layer between virtualization technology and an application development/deployment stack.

For those of us building in Java, a virtual os that binds the virtulization technology to a JVM and offers those relevant services to the JVM might also result in improved performance for virtual servers that are hosting Java applications.

Saturday, June 16, 2007

Week in Review: June 10-16

Another busy week. I started at The Feedroom, which has been interesting so far. We'll see how I feel in a few months, but so far, so good. I'll be more comfortable when I have a better understanding of the domain in which we operate, and a stronger sense of the needs and requirements of the software we'll be building.

Looking through my Google Reader shared links, and a few others, I've saved the following:

  • W3C's (ancient) description of lost-update came up in the context of Atom Publishing Protocol (APP); if you haven't looked at this before, and you do web applications and web services, you probably should.
  • The Easy Glider looks like it'd have a lot of the potential value of the Segway, but with a radically lower cost that would make it a lot more attainable. Sure, the technology behind it is simpler, less impressive, but is that really the point? But then, isn't that where the bicycle excels?
  • The Trail-Gator looks like a nice way to keep your kids 'in line' when you need to and let them explore when you don't. At least, if you and your children both cycle.
  • The Capsule Turntable Room is stylish outdoor furniture which would look really nice in the right setting. S'probably expensive.
  • This belt is really interesting. It's price is not. I could get a half-decent lens for that price.
  • Acabion GTBO is yet another of those car/motorcycle hybrids that get a lot of interesting press but nobody actually buys.
  • The Humanscale Daybed looks like a nice place to relax and use the laptop.
  • Marc Andressen lists Killer OS X applications for 2007 and an extensive list of cheatsheets: handy.
  • Every year or two, I feel like I want a smoker. So then I look them up, read about the Weber Bullet, determine where to buy supplies, and ... then do nothing for another two years.
  • Archy looks like an interesting way to list and select Maven archetypes.
  • I'd almost forgotten xiao xiao's stick figure combat; I was cleaning off the server downstairs and found one of these videos.
  • The Whirlpool Factory Clearance Centre in Mississauga might have the blender ring we seem to have lost.

Friday, June 8, 2007

The Feedroom

I guess now the news is out 'internally', I can let the cat out of the bag here: I'm moving on from Exchange Solutions to The Feedroom. Excited and nervous, both, but looking forward to a change.

It's always hard for me to move on; I try not to take jobs I can't get invested in, and having invested of myself in a project and a company, it's a hard thing to separate. So, I'm leaving behind a bit of an extended family for another one. Fingers crossed.

Thursday, June 7, 2007

The Danger of Selling Development Tools

If you have a platform—like Microsoft Windows or Mac OS X operating systems, Java and .NET virtual machines, the iPhone, etc.—and you make development tools for it, I believe you're better off delivering said tools for free.

Now, you can charge for the platform, for the tools, for both, or for neither, but I'd argue that you want the development tools to be as cheap as possible, and, if possible, free. You want to do this because you want to encourage as much development
as you can, and any barrier to development, including the cost of tools, reduces the likelyhood of outside developers building software for your platform. And an active development culture helps to make your platform compelling.

You can't build everything yourself. You can build the premiere applications for your platform, and establish a look and feel, a set of standards that everyone strives for -- Apple does this well, but if you try and lock out the outside developer, you will eventually lose ground to someone else, because an active development community is vibrant. They'll turn out crap, and they'll turn out some weird stuff, and they'll turn out some really great things, and you'll miss out on all of that. I'm biased, because I'm a developer, but even as a consumer, I've shied away from platforms that felt as if they were a development monoculture.

For instance, I've tended to prefer PCs because the Mac development community has often been less vibrant, IMO. In recent years, this has seemed less true.

You also want to make your tools extensible, for the very same reason. If you attempt to build all the tools yourself, you'll lose ground to someone whose tools can be extended by the community, because, again, you can't build all the tools yourself, and if you help developers to help themselves, they'll build an array of supporting tools that make your tool that much more powerful. This leads to more developers using your tools, developing for your platform.

This is, I believe, one of the areas where Microsoft has gone wrong with Visual Studio. They charge for most of the editions of Visual Studio, which encourages some developers to look elsewhere. They offer a free edition, Express, which is a good move, but the free edition cannot be extended (see the TestDriven.NET story for that; I won't attempt to argue who's in the right there, but I do believe it is in Microsoft's interests to allow developers to extend Visual Studio Express).

Now, because Microsoft Windows is one of the most successful platforms on the market, the tool strategy may not hurt them as overtly as it would hurt others, but I do believe that it hampers the adoption of .NET, and reduces the number of potential Windows/ASP.NET programmers.

Wednesday, June 6, 2007

In Review: May 27th - June 2nd

RE: Why I Don't Support Short Release Cycles

Justin James doesn't support short release cycles or agile methods. He argues that these lead to buggy, incomplete implementations that damage the industry.

I agree, buggy and incomplete releases are problems, and pandemic. But I've worked in organizations with long release cycles and waterfall processes that release software that sounds just like what he's complaining about, and I've worked in organizations with short release cycles and an agile approach where quality and complete features are paramount.

So, while I agree that the symptoms he's describing are a problem, and possibly even increasingly common, I would have to disagree that the symptoms are necessarily connected to the causes he identifies. The most common cause, in my opinion, is a deliberate willingness to sacrifice some quality and completeness, usually coming from the "business" rather than the implementation team. It's really that simple.

Reading through the comments below his post, others seem to agree with me.

Monday, June 4, 2007

Eneloop Batteries - Well Reviewed for Light and Heavy-Duty Use

I ran into a Sanyo/Eneloop display at the Green Living Show here in Toronto. They claimed to have a much longer shelf life than regular NiMH rechargeables, and come pre-charged for that reason. However, they have a lower mAh rating, which implies they won't be as good for heavy-duty work. Interesting, I thought. I should get some for low-duty long-term use, like the remote light switch we have for our ceiling fan, or the TV remote control.

I filed that away, so when the batteries in our fan remote wore out, I thought, "I should get some of those eneloops." I picked some up at The Source on my way home, and after doing so, decided I should verify the claims on the internet.

Turns out, after reading reviews on a few sites (e.g. Amazon, epinions, that people are not only having good shelf life, but are finding that they work better than much-higher-rated batteries fresh from the charger, which haven't had time to discharge naturally. Basically, they're better even for heavy-duty uses.

Not only that, but I see that Sanyo has a solar charger for these things. I'm sold. Eneloops from here on out. Well, until the next generation, anyway; problem is, I've already got a stockpile of Panasonics that are doing the job, so the upgrade to eneloops will take time.

Ambient Orb: Build Status

A few people updated this morning after a published build failure, and are waiting for the fixes to come down before they can really proceed.

Now, because the build failure was published, I only have so much sympathy, but it got me thinking about possible build statuses. Coming back to the Ambient Orb approach, it occurs to me that I'd really like three colors to be used for build status:

  • Green: Last build was successful. No new changes (or, at least, not aware of new changes). Safe to update.
  • Yellow/Amber: Last build was successful. Aware of new changes that could theoretically destabilize the build (commits to the project, or projects on which this project depends). Status of build unknown, but tentatively safe.
  • Red: Last build was not successful. There may or may not be changes, but at this point, it's probably safer not to update, until the orb goes back to green or amber.
If you used an orb this way, you'd expect it to be in 'yellow' state a fair amount, but it seems useful to be able to tell the difference between yellow and green. In order to ensure that the orb goes yellow as soon as possible, I'd consider commit-hooks rather than repository-polling.

Friday, June 1, 2007


Last weekend at Doors Open, while wandering around the distillery district, we discovered a baby starling wandering around on the street. He was too young to fly, and there didn't seem to be any parents about.

He wasn't very afraid of us, or of the cars, so we took him someplace a little quieter, to see if he'd be ok there, possibly be found by his parents. He seemed ready to jump back into the action again, and we didn't have a better plan, so we called the humane society, who were kind enough to take him (or her).

I dubbed him fluffy, due to the wispy feathers on his head and neck (and due to the fact that I once had a hamster of that name).

I feel sorry for separating him from his parents, potentially, but I'd rather that than he be roadkill, which seemed more likely.