Wednesday, October 31, 2007

What is Normal?

All of us.

This post has been sitting in the "Unpublished" bucket for a while, and this post has prompted me to unleash hell....

There is no getting around the Normal Distribution, unless you are some kind of mathematical pagan who doesn't believe in The Central Limit Theorem.

With that behind us, it is safe to say that out of any "random" selection from any population:

  • There are some below average,
  • There are many that are average (within a certain SD anyway),
  • There are some above average.

Of course, the measured value is irrelevant; it could be IQ, height, weight, eye color, ability to lay out UI elements, etc.

With that stark slap-in-the-face, take a look around at your coworkers. Some of them are better than you are, some are not.

So even if you think you are really smart, in the right crowd, you are just an idiot. Keep that one in your hip pocket, next time you want to be condescending or hurtful.

Monday, October 29, 2007

No Wonder Software Works Like Shit!

A recent customer meeting regarding loading trucks and their requirements, leads me to the following scare:

Most "software" practitioners just totally ignorant of so much thoery of computation/philosophy/etc. Stuff that relates at the most fundamental level to what we do every day. Forget about easy crap like The Halting Problem, which I'm sure anyone educated on-the-job is clueless about, even though it is a critically-important result.

My shit always terminates! Does a segfault count? So are you just bitter about having a degree or what? Anyway, what a downer. Just write more tests then.

After recalling an anecdote where a bunch of idiots thought they could solve the equivalent of the Halting Problem for Ladder Logic (yes that project segfaulted), and my latest trip down Wikipedia Lane, I might just do. Spend some time on these gems and get back to me:

And that is barely scratching the surface....

Paradoxes, what self-contradicting crap! Big Deal! Those are topics so lofty they shit marble!

Yes, ignore them at your own risk. However, I'm sure people out there are churning out logic like all of the above on a routine basis, in blissful ignorance, then wonder why "it doesn't work".

I thought Ignorance was Bliss.

And don't forget Freedom is Slavery!

Friday, October 26, 2007

Always Be Always

Man, I dig this blog! Thanks for the inspiration (only 9 months to go)!

How To Achieve Ultimate Blog Success In One Easy Step

Wednesday, October 17, 2007

Some Flip-Flopping For You

No, this is not about digital logic or that US politician. I just switched the left and right panes on the blog template. Hopefully someone will visit and notice the difference.

So you finally figured out to keep content flush-left for real estate-constrained devices?

Yes, I saw how it looked on my Nokia N95....

Wednesday, October 3, 2007

JavaME: Not For The Faint-of-Heart

I have been threatening to do JavaME development for quite some time now, and finally took the plunge. The main thing holding me back was a good idea.

All I can say is, "Thank God all the tools are free!"

Now that the rant is over, let me just say that the unskilled masses should just stay home, and leave mobile application development to actual professionals.

Not sure if I'm offending you? Take this quick quiz, and be brutally honest with yourself:

  1. Not expert at starting and keeping synchronized many threads? Don't know about race conditions and deadlock? You're building a piece-of-crap then.
  2. Not good at minimizing asynchronous contexts (e.g. various Listener interface implementations)? I'd hate to be using your location-based MIDlet.
  3. Don't decouple presentation and "business" logic? Good luck keeping things maintained.
  4. Like to implement all your application logic right in the CommandListener.command()? You're building a big, user-annoying piece-of-crap!
  5. Don't like to handle exceptions? Good luck making users confirm every security prompt you ever trigger.

This can be generalized of course. However, the effects of piece-of-crap syndrome are acutely presented in the constrained mobile environment.

Hey, it still sounds like ranting to me....

Yes, don't get me started on all the newbies clogging the JavaME forums with their "I need to do X; please post full source code". First off, how do these skilless people (no excuse for not using Google to find tutorials; I did, and there are tons of them!) get into the position of being responsible for such things? Second off, Get a life (preferably in another field) and leave the real work to the skilled.

Perhaps the scariest aspect of JavaME is that I started building without a unit test framework firmly in place. Not that there aren't any; I just fell into the trap of wanting something working, putting years of experience to the test (pun intented) on this one.

Here are some pointers for you, if you insist on moving forward:

  • Use the Sun WTK as your first-line debugging environment. It installs and works out-of-the-box.
  • If you use Eclipse, definately install the EclipseME plugin. This plugin uses Antenna for WTK build tasks, so make sure to download that too.
  • Run your stuff on as many emulators as you can possibly find! I hate to break your bubble, but this is just another case of "Run Once, Test Everywhere". The Nokia S60 3rd-Edition emulator is sweet; other OEMs have emulators too. Especially download the one that goes with your personal mobile device.

With all that said, my MIDlet uses a plug-in architecture, is fully asynchronous, and multi-threaded like a mofo!

What an elitist bunch of crap!

Damned fucking-ay right!

Disclaimer

Look, this is humor, so put away the flame-thrower! Just have a laugh and go on your merry way....