Monday, March 31, 2008

Firefox Makes Me Happy

So I am working on a feature that requires me to load up the same page using 6 different variations of the URL params. 

  1. Make a folder on the Bookmark Toolbar.
  2. Put my 6 test cases into that folder.
  3. Right click on folder.  Choose "Open all in tabs."  Presto, there's my 6 cases.
  4. Make a change?
  5. Right click on a tab.  Choose "Reload all tabs."  Presto, there's my 6 changed cases.
  6. Repeat until done.

Wii With Your Toddler

My oldest, at almost 6, can figure out Wii pretty well.  She understands what buttons to push, and the general notion of how to point and shoot, how to time your swing in bowling, that sort of thing.

My second, at almost 4, is more of a Zen player - swing wildly while pushing random buttons, and kinda sorta figure out that some combinations do things while some do not.  Throws strikes more often than not, which really upsets her older sister who can't for the life of her figure out how to repeat the feat.

My youngest, at almost 2, has really been too young to play thus far.  He grabs a nunchuck controller while we're not using it and wiggles it around like he is playing, but he really has no idea.

While playing EA Playground this weekend, I discovered a way to get him involved in the game.  The Wii controller is perfect for turning your youngest child into a giant joystick.

Take the paper airplane game.  The idea is easy enough - wind up and hurl your airplane, and then, as if you were actually driving it, you tilt your controller left and right, up and down, avoiding obstacles and collecting treasures, trying to make it to the other side of the room and out the window in the allotted time.

Well, then.  Take 2yr old, put him in your lap.  Put controller in his hands.  Put one hand on the controller so he doesn't drop or throw it, and another tightly around his waist.  Now instead of moving the controller with your hand, keep the controller steady and use your whole body to turn.  Lean wayyyyy over to the left, then wayyyy over to the right!  Pull back!  Nose dive!  Much more fun that way.  Now he's playing, and digging it.  And visually he can start to get the idea that when he goes left, the airplane goes left. 

He seemed to like it, he wanted to play again several times.  I'll have to try that trick out on some other games.

Sunday, March 30, 2008

Help, My Wii Remote Is Backward

Ok, this is a new one.  Went to play EA Playground with the kids (a new rental, never played it before), and discovered that my P2 controller is...reversed.  As in, mirror image.  Left is right, up is down.  Oddly, when I bring up the Home Menu, even the hand icon is upside down?!  Messed up.

I resync the controllers, this time using the backward one as P1 instead of P2, to see if it is a problem with the game.  Nope - now P1 is backwards.  The problem is with the controller.  But, still, if you go out of the game and back to the main menu, the controller is fine. 

I fire up Mario Galaxy and play for awhile.  Controller works fine.  I attribute it to some weird quirk of the game (I even went down to Blockbuster and got another copy of the game to rule out a bad CD of some sort, even though the programmer in me can't imagine how that would be it). 

But then, while playing Wii Bowling with that controller, we get the same problem - everything is backwards.  Ok, now this is a problem, I can't exactly play meaningfully with one broken controller.

I call Nintendo, who admit that they've never heard of the problem.  They are intrigued, though, that even the hand icon goes upside down.  The guy gives me the "unofficial" Wiimote fix - turn it upside down and whack it a few times.

And you know what?  It worked!  My little hand icon turned rightside up before my eyes, and now it's working fine.

I know everybody's familiar with the "whack it" fix - I'm just blogging this because no amount of Googling told me anything about the "mirror image" problem, so I figure the next person that comes along looking for it will know, the whack it solution works for that, too.

Friday, March 28, 2008

People You May Know

So Facebook this week ripped off a standard LinkedIn feature where it uses your network of friends to try and guess at people you may know.  It's a fairly standard thing at this point, I suppose.  LinkedIn's is almost like magic, I have no idea how it works - one of the first people that ever showed up on their list for me was my first mortgage broker, who I hadn't used in 5 years.  Coincidence?  Spooky.

Facebook's seems to be strictly overlapping of friends.  Which, in turn, means that it's good for rounding up the stragglers.  I'll explain.  Say that there are 50 people in your company who are on Facebook.  You are friends with 30 of them.  So on average you overlap 30 friends with those other 20 who are not on your friends list, and presto, up they come in the "You may know this person" column.  So in that sense, it's completely accurate, and even borderline useful.  It works across companies as well, since there's no reason why the same logic doesn't apply to previous companies.  There are 50 people on Facebook from your last job, and you are friends with 10, ergo you overlap 10 friends with 40 other people.  The problem there is that you'll get many new people who have been hired since you were last there who no, you don't know, but Facebook can't figure that out.

I did get one hit, though, that I found fascinating.  I might know Tom, because Tom is also friends with Jeff and Brian.  Here's the catch - Jeff and Brian don't know each other, at all.  I checked.  I currently work with Jeff.  Brian I met 10 years ago and have kept in touch with (he was in my wedding), but other than online correspondence we don't really hang out. As a matter of fact he's in New York and I'm in Boston.  Interestingly, though, Jeff and I both went to WPI (even though that is not how I know him, as he went years after I did), and Jeff and Brian are both in acapella groups.

So, I email Tom and introduce myself.  Turns out that he knows Jeff because Tom's fiance knows Jeff's wife.  Tom is at WPI shooting footage for a film he is working on, apparently on the subject of acapella groups, and runs into Brian.

That's the sort of story that's interesting, but not terribly useful to me.  Does that make Tom my friend?  Not really, no.  But if Facebook uncovered more wild 6-degrees style of connections like that, I'd find it a fascinating tool indeed.

Thursday, March 27, 2008

iPhone / iTouch : Geek Parents' Best Friend

Still looking for a reason to invest in an iPhone?  If you're the geeky parent of young children, here's a whole bunch of ways your new toy would be useful.  All tested by yours truly:

10) Audiobooks.  Fine, you loaded up your whole music collection.  But honestly, you can pretty much have music on in the background no matter what the kids are doing, can't you?  How often do you get a chance to sit down and read?  Head over to and load yourself up on some free audiobooks.  Whenever there's a break in the action, like waiting in the minivan to pick them up at school, you can be listening to books on a wide variety of topics and feel like you're actually making use of that time.

9) It's your honey-do list.  Many times over the years I've told myself I'll carry an organizer, or a voice recorder, or even just a pad of paper.  Something so I can take notes when an idea hits me, or something has to go on the to-do list.  Never kept it up for very long.  Well, my iTouch is in my pocket near constantly, so now I've always got something where I can type out a quick note to myself.  Especially handy when I've been sent for a quick grocery run on the way home from work and the list gets dictated to me over the phone.

8)  Backlight.  When checking on the kids before going to bed yourself, why turn on the lights, or reach for the flashlight?  One button turns the iTouch on, shining enough light to see that the little buggers are still breathing.  Also handy when your spouse goes to bed before you and you're emptying your pocket change, setting the alarm, etc... without waking her up.

7) It's an educational toy.  My daughters like to play games in the dark before going to bed.  Sometimes I'll bust out the iTouch to play letter and number games, like asking them what 2+2 is, or how to spell their name.  To do that on a piece of paper would require you leave the lights on.

6) It plays video.  Well yeah, duh, of course it does.  But at 6am on a Sunday morning when your 2yr old won't go back to sleep, and you're downstairs watching Elmo with the sound down low so you don't wake anybody up, you may be tempted to slip in just one earbud and actually watch one of your own shows, courtesy iPhone.  After all, the little guy is entranced by Sesame Street, he doesn't even know you're in the room. 

5) It plays video for them, too.  Want to know how to keep children occupied in the waiting room at the doctor's office?  Have a selection of kids' shows loaded up on your iTouch.  Works every time, even when they've seen the same episode 20 times.  I even use mine in the car in lieu of a portable DVD player, for short trips around town.  An FM transmitter broadcasts the sound through the car radio and I position the iPod behind my seat so kids can see it.

4) e-Book Reader.  It's not a great one, but the Safari browser that comes with the device has a sufficient PDF reader.   Many nights I've had a child falling asleep on one shoulder, holding him up with one hand while the other hand holds my iTouch where I can get some reading done.  Personally I find that turning the device sideways gets the best font size, although it means more pages to scroll through.  (Also good for reading email and RSS feeds). 

3) Clock.   Is it 2am or closer to 3?  Have you been in here rubbing the baby's back for 5 minutes or 20?  If you're already holding your backlit device where you can read books from it, you can see what time it is right in front of you.  Can also be used as a stopwatch/timer when it's time for timeouts.

2) No 911 (iTouch only).  No matter how many random buttons my son pushes on my iTouch, I know he's not going to call my friends (or the police) accidentally.  I can't say that about my cell phone.  So he can happily play with it while he is bored. I'm hoping the new SDK allows somebody to make a fingerpainting program.

1) Never say "I don't know" again.  Ever have the kids ask you a question where you don't know the answer, and you say "We should look that up on the computer'?  But right that moment you're not at the computer, so you'll do it later?  Well now you're holding an Internet-enabled device in your pocket.  Pull it out, right then and there, and answer the question. 

Wednesday, March 26, 2008

What to use for the front end?

Here's an interesting technology question that's come up.  Right now we have our main product built in ColdFusion.  We hate it, primarily for performance and stability reasons - finding it difficult to scale it and keep it running consistently.  Is that because of operational issues, or just bad codebase?  Dunno.

For a handful of random projects we've used Ruby on Rails.  Most notably this includes our Facebook application.

We've already decided to make the move toward a more service oriented architecture, with .NET being the backend.

The question came up today, "Does that mean we have to use .NET as the front end, too?  Why?"

Good question.  Technically no, I suppose you don't.  If you're doing proper services on the backend then you can use a variety of client technologies.  But then the question is, which one?

.NET is the logical choice purely out of convenience.  You're going to have a team of developers in VisualStudio all day, so why make them have two entirely different development environments?  That seems like the way Microsoft took over the world back in the 90's -- yeah, our product X isn't really that good, but you're already using product Y, and they work nice together, so why not just go with it?

Rails would be a bold choice, since this would mean putting the company's main revenue source onto the technology instead of just the occasional side project.  It's one thing for one guy to bang out Ruby code as needed, it's another for an entire team to develop a product in it.

What about ColdFusion?  If relegated to just the front end, would it be a viable option?  Would the scalability and stability problems go away if we took 90% of the code out of it and started over?

Would you bring PHP into the mix, where it currently does not exist?  What about Java?  The product's not technically in Java now, but ColdFusion runs on a Java app server and most of the coders here are proficient in it.  So that, too, is an option.

Without a better case for something else, right now .NET is going to win.  It'd be nice if it didn't, though.

Thursday, March 06, 2008

What You Can Do vs What ONLY You Can Do

Had a bit of a revelation earlier today when speaking to my boss.  We were discussing workload management, and trying to get people to focus on the important tasks while delegating the less important ones.  After all, it's hard for many engineers who are still in that phase where every creation is an artistic endeavor, every program a labor of love, and the last thing they want to do is cut a corner or give it over to someone else who is going to wreck it.  Often it's difficult to even make a decision about what to do, because you know that you could solve a problem in 12 ways, so to pick one immediately makes them ask, "But what about these other ones?"  You could play that game all day.

Here's the exercise for you all: 

First, think about what you are capable of doing, as an engineer.  There's probably a lot on that list, everything from architecture to debugging and QA, from documentation to desktop support if you really had to.  Chances are very good that in any office environment there's someone who doesn't know how to install Microsoft Office, but if you're a competent engineer, you probably do.  But would you want to?  You probably hate it, and personify the word "begrudgingly" as you drop your shoulders and shuffle your way over to her cube while trying very hard not to make sarcastic and patronizing comments that she not only won't get, but will probably find offensive.

Ok, next, think about the things that *only* you can do.  Or, if you're a pessimist who says "everyone is replaceable", think about it as the things you do best.  You've probably been hired for your design skills, or your coding or debugging skills.  True?  Chances are also very good that the stuff you are best at is also the stuff that you enjoy the most.  That's one of the perks of the work that we do, we're good at it because we love it and vice versa.

At this point, isn't the problem obvious?  The more time you spend on #1 equals the less time you spend on #2.  Just because you *can* do something does not mean that you are the best person for that job.  Your goal, then, is to take as much of the #1 stuff as you can and either automate it, or else get somebody else to do it.

Trust me.  You will be a happier person.  You will also get more, higher quality work done.  Everybody wins.

Sunday, March 02, 2008

Survive The Layoff

Read this doc on Scribd: Survive The Layoff


I got laid off once, back in 2002.  During that time (I was out like 6 months or something) I worked up this e-book on the subject.  It's been sitting on a shelf ever since.  I tried passing it through a couple of publishers, both of which flopped out of the gate.  So, now that layoff time seems to be coming around again I'm trying it differently.  I've put it up on Scribd for anybody to download who wants it.  At least this way I can track if it gets any hits. Maybe if there's really a market for such things I can continue to enhance it.

UPDATE : Steveo brings to my attention the fact that there's no "download" link on the embedded player . That's just silly, who wants to read the whole thing inline?  Download as PDF  (actually you can download in a few different formats if you like).