Thursday, July 31, 2008

Obama's Team - Pro Firefox?

Is it just me, or does Obama's latest response to McCain (mentioned here) only render properly in Firefox? Here's what I see in IE:

And here's what I see in Firefox

Somebody seriously needs to fix that, otherwise you might end up looking like a joke on the web.

Does this count as gaffe of some sort?

Radio Station Of The Day: PulsRadio

I can't fully explain it, but lately I've really been enjoying listening to Techno/Trance/Dance music while I'm working. Specifically, I've been enjoying Puls Radio, a French Non-Stop Dance and Trance music site.

Click here to give it a listen

I have this theory that the music helps me get into, and hang out longer, in Flow. But more likely, it just let's me reconnect with the Eurotrash roots I never had.

Getting Your Business On Facebook

OK, let me start of by saying that I'm pretty sure I'm the last person on the planet to join Facebook - so you probably know all of this already. But, I have to admit that I completely and accidentally made a presence for my business on Facebook, and when I went back to try to intentionally do so, I couldn't. In other words, if I missed this, maybe someone else did too?

The goal here is to create a Page for your business like I did here for i2x. A page looks a bit like this:

Turns out, the right way to do this is to sign up for a business account on Facebook, you can do this here. The workaround, for folks like myself who didn't know to do this, is to visit the Page Manager Application here and add it to your profile. Once you've done this, you can access the Page Manager app, which in turn will walk you through the process of creating a page.

Apparently, pages can have their own specific apps that aren't part of your profile. I used the Blog RSS Reader app to show the i2x news feed on the page. The solution is clunky, but at least works. There are other handy apps, like the one for reviews and discussions, which actually turn the page into a powerful little business site.

Once I reasoned most of this out through trial and error, I found the Pages help section which explains all this. D'oh - why didn't I read the help in the first place?

Happy promoting! And definitely include your company's page in the comments of this post, I'd love to see what else folks are doing with their businesses on Facebook.

Testing: Blogger to Facebook integration

Just testing, please ignore.

Update: after spending the last two days trying to Cajole facebook into importing my blog into my notes application, it finally took. Whew. I'm a happy man.

Wednesday, July 30, 2008

Russo Is Famous - A Detective Story

My friend, past running partner, and previous co-editor in chief of the high school paper, was featured today in the USA Today: Health investigators use props, patience to track salmonella.

The story discusses her job as an investigator for the CDC:

Elizabeth Russo, 32, and Kanyin Liane Ong, 28, arrived in Albuquerque two weeks ago, one of three CDC teams sent to New Mexico to interview people who have become sick in the past few weeks. Their mission is to gather data to answer a troubling question: Why did the first surveys done of salmonella patients in New Mexico point so strongly to tomatoes when later cases seemed to implicate jalapeƱos?

Now, how long before she gets her own TV show?

Congrats Russo, that's just plain awesome!

Post Run Snack

Is it bad form to walk home from dinner, after a run, eating Turtle
Pie? I mean, is there some sort of open container law I need to worry
about?

We needed to eat desert, and the ice cream place closed at 9:30pm.
Luckily, David and I were resourceful enough to solve this problem with
a trip to Harris Teeter's frozen section.

Shira's out of town, and left me to my own devices this week - can you
tell?

--Ben

The Gimp and PowerPoint - Best of friends?

I was delighted to learn today that Gimp's Windows integration is such that I could draw a shape in PowerPoint, hit Control C, flip windows over to The Gimp and hit Control V and have the content render perfectly. I could then scale and rotate the artwork in The Gimp and it still looks good. (Yes, of course this is supposed to be how Windows works...but can you really depend on Windows to always work as advertised?)

This is good news, as PowerPoint makes drawing various types of diagrams really easy, and it has a nice and large shape library ready to go.

The Gimp can also make use of one of the most impressive features I've seen of PowerPoint 2007: Smart Art. Smart Art allows you to type in your information in bullets, and then graphically pick how you'd like it visually represented. For example, I typed in the text below as bullets and then visually formatted it as a cycle:

And just like basic shapes, I can cut and paste the above into a Gimp canvas.

Getting Facebook

Yesterday, I talked through my new facebook experiment with Dave. Between, his insights, and some terrific suggestions by Nick, I think I'm starting to get this whole Facebook thing.

One of my main concerns with Facebook was:

barely have enough time to keep up my blog (not to mention have conversations with my wife), how the heck am I going to keep up a Facebook presence?

But, as Nick kindly pointed out, Facebook isn't really concerned about you publishing through it. In theory, I can continue to use twitter and my blog as I normally do, but the content will be syndicated onto Facebook.

This, as I was talking with Dave, is huge. The way I need to be thinking about Facebook is not as a set of publishing tools, but as a distribution channel. Think of it, all of a sudden I'll have friends reading my blog who would never have done so before.

One of the reasons that Blogs work is RSS - that is, your readership doesn't need to consistently return to your site to check for changes. They just read the updates as they happen. Without RSS, if people were to return to my site and find no changes after a couple days, they would no doubt lose interest. Heck, even if I was publishing, if there wasn't anything relevant, people would no doubt stop visiting. But with RSS, this isn't the case - the stream of news is pushed when it's there, and doesn't effect the user when it's not.

But, not everyone uses RSS. Which is why Facebook is so cool - they are essentially providing RSS style services to a whole population of people who don't use RSS yet. Like I said, if all goes well, I should have folks following my blog who wouldn't normally have done so.

The other feature I happen to like on Facebook are the business pages. I was able to make one for Ideas2Executables in a few minutes. The discussion board app, and the Fan capability seem really handy. I was also able to plug my i2x news feed into the page, so like my personal profile, I don't need to actually write new content to keep the page fresh.

You'll notice I used language like in theory above - that's because for the last hour and half, I've been tripping over myself trying to set up my account the way I want it. Facebook is cool stuff, with some impressive apps - but I don't think I can call it particularly easy to use. Hopefully, with a little time and practice, I'll get my account setup just like I describe above.

So, if you asked me today why I'm interested in Facebook, I'd give you a one word answer: distribution.

So, nu, will you be my friend on Facebook?

Tuesday, July 29, 2008

BarackBook - A Wise Move?

So, I'm not the only one thinking about Facebook today. The RNC launched BarackBook - a spoof of Barack Obama's Facebook page.

It's definitely amusing stuff - with many of the reviews being laugh out loud funny.

To Facebook or Not To Facebook, That is the question

Earlier today, I had a call with a customer to talk about building a FaceBook app as an add on to the existing software I've built for him. In the 45 minutes preceding the call, I figured I better actually sign up for Facebook, and poke around.

Within a few minutes, I had logged in, and connected with my first friend. I also made a page for i2x. I was kind of expecting to have the same sensation I had when I signed up for MySpace - a sort of, uh, and the big deal behind this is what exactly? type of feeling.

But that didn't happen at all - between the one person I connected with (thanks Jody, you're truly my #1 friend!) and the folks that Facebook wants to hook me up with, there are all sorts of people I had forgotten existed, but would be nice to catch up with. And that's just the very tip of the iceberg. Amazing.

Now that I've dipped a toe into the world of Facebook, I'm wondering if I should jump all the way in. Here's the pros and cons as I see them - am I missing any?

Pros

  • I'd connect up with people I lost touch with - this could be fun!
  • How can I be a geek on the web and not be active on one of the most popular web destinations?
  • This could be another way to get the word out about I2X. I love the whole notion that folks could be a fan of my business
  • In general, having a presence in more places on the web is a good thing

Cons

  • I barely have enough time to keep up my blog (not to mention have conversations with my wife), how the heck am I going to keep up a Facebook presence?
  • Do I really have enough content in my life to post on both the blog and Facebook?
  • I'm actually turned off by the fact that my profile isn't public to the world (I think, anyway)
  • I barely have enough time to keep up a news feed for i2x which requires writing 140 character updates - how am I going to also keep up a presence on Facebook for the business too?
  • I already have LinkedIn to stay connected to folks, do I really need another way to do this?

Honestly, I'm not sure what I should do at the moment. Oh well, I'll go add that little fact to my Wall (see, I'm catching onto the lingo here) and will go think it over.

Really - if you have though this through already, I'd love to hear what you decided.

A Verizon Marketing Stunt

If you ask me, their marketing stunt worked -- but you watch video, what do you think?


Verizon Wireless Surprises Customer - Watch more free videos

Via Textually

Review: Cartooning for the Beginner And Some Insights From Cartooning

It was impossible not to pick up an intro to cartooning book from the library after reading Making Comics. I did a quick Amazon search and found Cartooning for the Beginner and rented it from the library. The book appears to be catering to the 12 year old boy crowd, si I felt a tad bit like an adult checking out a Hardy Boys book, but I persevered the odds looks from the library and went through with the transaction.

I don't have a lot go on, but I have to say, I think the book worked out well. It's introductory chapters really did teach me a thing or two about cartooning, and drawing in general. My only complaint is that the learning curve is a bit steep - on one page you're learning to draw faces, and a few pages later, you're worrying about the expression of a whole body. But that's probably my lack of skill, more than anything else, showing through.

The book was good enough to give me a few key insights into drawing, and I'll share them below. For this, I have to give the book a 8.5/10 - it's probably not the ultimate guide to learning to draw, but it is fun and at least partially effective.

So, here's some insights I had...

Lessons Learned

  • When drawing a face I'd start off with a circle for the head. This, as you could imagine, looked like a line crudely drawn circle. Then, I'd start adding in just as crude features - a mouth, nose, eye sockets, eyebrows, pupils and ears. At some point while doing this, the most amazing thing happened - these random shapes stopped being a bunch of squiggly lines and instead became a face. It's really an awesome side effect of the human brain, and I could actually feel an Ah! moment when this would happen. For this feeling alone, I'd suggest getting the book and learning to draw a face. It's too spooky.
  • I continue to be amazed at how efficient cartooning is for expressing information. Consider this drawing from here: You can tell, just by looking at, that the kid is running. Yet, it's only a single frame. The fact that the brain plays this trick on you, and that cartoonists can so easily harness it, is awesome. The Cartooning For The Beginner covers this pretty well, too. Cartooning is truly the poetry of the visual world.
  • I originally assumed that the minimal tools I'd need to get by would be a sheet of paper and a pencil. This was oh so very wrong. What I needed was paper, pencil, an eraser and a pen. Here's what I was doing wrong: I was trying to get the drawing perfect with a pencil. When, what I should have been doing was working with the pencil and eraser till I got things to the point where they were correct, and then traced it with pen.

    Bottom line: drawing isn't about getting the picture 100% right the first time, it's about iterative development. And iterative development I can do.

    I suppose this is obvious, in retrospect. However, I have to admin I always assumed that artists just Got It Right, and that's what I should be shooting for.

  • My biggest insight relates to this previous point. I'm starting to have a sense that one of the traits of a person who has mastered his craft is not that he never makes errors, but that he knows how to correct them quickly.

    A professional programmer will always make syntax errors, yet, won't get stumped by them. The handyman who knows what he's doing, is just as comfortable with patching up a hole he accidentally put in the wall as he is avoiding the hole in the first place. And the artist with good technique knows how to use his tools (pencil and eraser) to not force himself into drawing only perfection - but instead, can refine his pictures till they are where he wants them to be.

    To become better at drawing, I need to focus not on trying to be perfect but on learning how to fix errors.

Even if with the little progress I've made in learning to cartoon, I have to say, it's been rewarding. You should definitely give it a try.

Monday, July 28, 2008

Map Math Tips

This morning I needed to do some map math, specifically, figure out a bounded box of points that surrounded an arbitrary latitude and longitude. Thank heavens for Google, or I'd probably have to go to a library and actually look this up in a book (oh, the horror!). Here are some useful sites, should you need to do any lat, long calculations:

  • wikpedia - Great Circle Distance - you can't talk about latitude and longitude math without Great Circle Distance coming up. This is a good thing, as once you understand even a bit of it, you can start using the term on your resume and at dinner parties.
  • Great Circle Calculator - a series of JavaScript calculators for dealing with Earth distances. Today I needed to use the Compute lat/lon given radial and distance from a known point one. Again, sounds impressive, doesn't it?
  • Aviation Formulary - a series aviation formulas, which are useful for plotting your course along the Earth. Or, in my case, for getting this particular task done.
  • Calculate distance, bearing and more between two Latitude/Longitude points - This page contains JavaScript implementations of the Avaiation Formulary page, including some useful JavaScript helpers.

All these sin()'s and cos()'s bring back bittersweet memories of sitting in Mrs. Buck's math class in high school. I'm sure she's having the last laugh now, as I struggle to remember what she taught me. So, kids, when you are in math class and ask - C'mon, will we ever use this trigonometry stuff again?, the answer is apparently, yes.

Friday, July 25, 2008

A Worthy Cause

My buddy George just told me about a Step Out To Fight Diabetes Walk he's taking part in.

The stats on diabetes in this country are pretty dismal:

  • Nearly one in 10 American adults now has diabetes.
  • Diabetes is the fifth leading cause of death by disease in the U.S.
  • One out of every three Americans born today will develop diabetes in their lifetime if present trends continue.
  • Each year, more than 80,000 people with diabetes undergo amputation.
  • Nearly 6.2 million people (nearly one-third) of the 21 million children and adults in the U.S. living with diabetes are unaware that they have the disease.

Those are more than enough reasons to support George. He's looking for walkers and donors - seems me to be a more than worthy cause.

Thursday, July 24, 2008

My favorite store in Tombstone AZ

Sent via BlackBerry from T-Mobile

Feeling Like A 10 Year Old

So, one of my clients is having me write some software that's in the first responder industry - specifically, firefighting. Turns out, we have a major Fire Expo going on in Baltimore this week. So, because he couldn't make it, I decided I'd head up and scope out the competition.

I paid my $15.00 to get into the expo area, and was off and running.

Now, the last big show I was at was JavaOne quite a number of years ago. While times have probably changed, I'd still bet that you don't want to get into a my expo show is better than your expo show argument with a firefighter. At JavaOne they had fancy editors. At the Fire Expo, they had fire trucks. JavaOne, cell phone apps, Fire Expo, the Jaws of Life. I truly felt like I was a 10 year old, wondering around looking at all this fun stuff. If I had actually been a 10 year old, I probably would have gotten away with climbing on the trucks and trying on all the gear. But alas, I stuck to talking to the software vendors instead.

Here's a tip for all you parents - next time a fire show comes to town, drag the little ones to the expo and let them have a field day.

Lawn Surprise

It hits me yesterday that my new lawn guy, Ben hasn't called me or showed up to mow my lawn. He had promised that he'd get to it in two days, and this was the second day.

Then I started thinking that it had rained the day before, so perhaps his schedule was thrown off. Either way, I'd note the fact that he didn't do it on time, but I'd not worry about it for another couple days.

This morning, at 7:00am, I step outside and do a double take - holy crap, my lawn looks awesome. It's cut, trimmed and looking great. I then check in back, that's done too, and looking great. This camera phone image doesn't do his work justice:

I'm amazed - it just got done, no fuss, no need for me even to be involved. I assume I'll get an invoice and pay the guy at some point.

I was mentioning in my last post how Ben did some things that really impressed me - I'd say quietly exceeding my expectations should be added to that list.

Gotcha Of The Day - Skype Steals Port 80

This morning, I went to test some changes I've made to a customer's web app locally, and was greeted with a totally blank screen. I undid my changes. Still nothing. I tried another browser. Still blank. I then checked the Apache access log, sure enough, the web requests weren't reaching it.

I then remembered that I had this problem a few weeks ago, fixed it, but never documented it. Turns out, Skype will grab port 80 and use it for its own purposes. This meant that Apache couldn't start up. The issue is explained here:

To get port 80 back for your Webserver, either start the server before Skype, or more efficient, disable use of Port 80 by Skype in Skype's connection options! (Same checkbox applies for port 443)

Sure enough, in Skype, you can select:

I'm sure the good people at Skype have an important reason for stealing port 80, but still, I think that takes serious chutzpah to grab a port you have no business running on.

I wish I could recall how I figured out Skype was the culprit. I probably used the networking sysinternals tools to debug it. But I don't recall which tool I used.

Wednesday, July 23, 2008

Phillips Keychain Camera - Worst. Camera. Ever.

I've seen the Phillips Keychain camera at stores like Wal-Mart and CSV before, and its usually dirty cheap - something like $10.00 - and I'm always tempted to pick one up. Well, turns out I didn't have to. Today on his way out to work, David, handed me the camera and cable and muttered some story about how it doesn't work with Mac. Sweet, his loss, my gain.

David paid something like $2.00 for the camera, and I can I tell you that was still too much. This thing is an absolute disaster. Let's talk about the pros and cons. First, the cons:

  • No real viewfinder, the fake viewfinder appears to have no bearing whatsoever on the actual picture being taken
  • The device loses your pictures when the batter dies
  • The device doesn't work out of the box with XP, Mac or Vista
  • The menu system couldn't be any more cryptic if they tried
  • The image quality is in the gutter
  • The camera generates .bmp files instead of fancy shmancy .jpg's
  • The only way to get images off the device is through some random little app which appears to be from the late 1990's
  • The software/hardware managed to cause blue screens of death on both my Vista and XP laptops. The XP laptop needed to be reverted back to a previous date to get it to stop rebooting randomly
  • There's no way to selectively remove photos from the camera - it's either all photos removed, or the last one

Now the the pros:

  • It comes with a nice USB cable

Does this mean that I won't play around with the camera and waste my time trying to find a use for it? Of course not! Free hardware? How can I turn that down. If you're like me and want to dabble with this sucker, here's a few tips I've picked up:.

Installation

Like I mentioned above, installation was a disaster on both XP and Vista. I did finally get the camera to work on Vista. I did a couple of things. First, I followed the instructions here to actually find drivers. I got them from Phillips. When installed the drivers, I got a little app on my desktop named MY CAMERA. Clicking on this brought up an app that said that it couldn't connect to the camera.

I then started dabbling with the drivers. Essentially, I uninstalled (and checked the delete driver software check box) all the drivers that were discovered by Vista, until I had the following showing in my Device Manager:

I had big problems with my laptop crashing when I opened up MY CAMERA, and these problems went away once I removed all the drivers but the one shown above.

Using the Camera

There isn't a whole to know about using the camera. Check out this review of the camera which includes some interesting discussion. Someone even decoded the 2 letter abbreviations that are the UI:

SE = self timer
CE = Continuous shooting mode
CP = compress mode
nP: non compress mode
AI: video function mode
OF: switch the camera to stand by mode
CL: delete the last photo
CA: delete all
Hr: high resolution format
Lr: low resolution format
F5: 50Hz
F6: 60 Hz

Amazingly, while this thing has all these detractors, I can confirm that it has a self-timer. I guess I should put that in the Pros above.

Apparently, to use the above features, you press the button on the front of the camera to choose the two letter code above, and then press the shutter button to cause it to take effect.

Here are some samples of what the camera can do. Finally, I can blame the hardware for my poor photography instead of my skills. Note, that last photo hasn't been processed with some funky filter - that's just how the photos come out.

Do I see any practical use for this? Well, you might think it'd be nice for kids - but it's way too much hassle for such poor results. Buy your kid a used 4 mega pixel camera off eBay for dirt cheap, not this junk. About the only thing I could see this being useful would be for some kind of photography game - everyone gets a crappy camera, the person who produces the best photo wins.

Hmmmm, crappycam.com and crappycamolympics.com are both available. I'd just need to write up some rules to the game, and toss them up. Then allow folks to upload their work, and ... (Must resist urge to start building the website).

Other than that, and wacky art projects, I think this is pretty much useless.

How To: Converting a Microsoft Word Doc to PDF

This may be common knowledge for y'all, but I had to explain to someone non-technical today how to convert a Word Doc to a PDF and it actually seemed a bit tricky to me. Here's what you do:

  • Header over to Adobe and either buy Adobe Acrobat or do 30 day trial. In this case, Adobe Acrobat isn't the same thing as Adobe Reader, which is free.
  • Download and install Adobe Acrobat
  • Bring up your document in Microsoft Word
  • Now here's the somewhat tricky part, go to File » Print. Ignore for a second that you don't actually want to print the file, but instead want to turn it into a PDF.
  • Select the printer named Adobe PDF:
  • Click OK to print your document
  • Adobe Acrobat will kick in at this point and may ask you some questions, like where you want to save the PDF file
  • And you're done!

Happy PDF'ing!

Add a text overlay in Windows Movie Maker

Today I shot a video for i2x (it's awaiting approval by our CFO, so I can't share it yet) and wanted to add our website address on top of the video of me yammering away.

It took me longer than I expected to figure out how to do this. Here's what I did:

  1. Went to Tools » Titles and Credits...
  2. Clicked on Title on the selected clip
  3. Entered my web address
  4. Clicked on Change the title animation
  5. Selected Subtitle
  6. Clicked Add Title

This added a clip to the Title Overlay section of the timeline, which I could then drag around.

While, for the most part, I'm enjoying MS Vista, I have to say the Help functionality leaves a bit to be desired. In MS Movie Maker, I clicked on Help and then searched for title overlay. Here's what I got:

I got such gems as Working with windows, Using your keyboard and Rename a network connection. Not exactly what I had in mind when I was looking for help on making a movie.

Video Tip: Try Posting On Vimeo

My first video experience reminded me just how poorly YouTube videos can look. What seemed fine on my desktop was turned into a poor sounding, blocky mess.

A while back, Shaun, from UpstateInteractive.com gave me some great advice - for posting videos on the web, check out vimeo.com. He claimed they post in higher quality.

Today, I gave it a try, and sure enough, the video quality is much improved. From Window Movie Maker, I said to Publish the movie for playing on my computer, which produced a 45 meg file. Vimeo was happy to upload a file of that size. I'd share the video with y'all, but it hasn't been approved by the editorial team (translation: Shira won't let me till she blesses it). When it's available, you know it will be online.

Vimeo is also an excellent example of a site that is incredibly polished. Uploading and processing video, in Net terms, is extremely slow. They made the process as smooth as possible by:

  • Starting the upload as soon as I filled in the file input box
  • The upload progress meter gave me constant feedback
  • While the file was uploading, I was encouraged to fill out details about my video, including changing pages
  • When the video was uploaded (all 45 meg worth), they told me how long it was going to take to process it
  • Whenever I viewed the video page, I'd get an update saying how long I had to wait before the video was processed
  • Finally, when the video was there, the page refreshed to showed it to me

If you're doing any sort of web app that needs to do time consuming operations, check these guys out.

Thanks for the tip Shaun!

Monday, July 21, 2008

Ray is out, Ben is in - More Lawn Care Adventures

It pains me to write this, but I have to - it's official, Ray, my lawn guy has been fired. Well, he actually fired himself. He was doing fantastic, and then just disappeared. I e-mailed, called and left voice mail, and yet, I've heard nothing back from him.

I don't actually know what happened - so it's quite possible that he has a good excuse for dropping off the face of planet. Personally, if he could give me a reasonable explanation as to why he vanished, I'd do business with him in the future.

OK, so Ray is gone - but today, I found his replacement, Ben (e-mail: handyben@yahoo.com, phone: 202-413-9292). While, I don't know anything about how well he cuts lawns, I am impressed with a few things he's done well so far. Including:

  • A highly geographically centric craiglist ad. I called him because he mentioned Arlington in the title (which was: $20.00 Lawn Care most yards in Arlington). By narrowing his focus, he caught my eye as being unique and standing out in the crowd.
  • When I called him, he was cheerful and upbeat and made it clear he was glad to have my business. There was just something nice about talking to someone who was genuinely glad you were calling them.
  • He promised he would be over in a few hours to give me an estimate, and most importantly, he was. This is key - before I had a chance to find someone else, or have second thoughts, he was over here following up and giving me more attention.
  • He was personable and made it clear that he could do more handy man services than just mowing the grass if I was interested (he could smell the I'm a programmer, I don't do hardware on me, no doubt). This came across less as an upsell, and more as a hey, I really hope to earn your business type of statement.

So, while I'm disappointed that Ray went away, and I sincerely hope that he's OK - I'm glad to have met Ben. As I told him today, my business has more in common with the work he does than most other businesses. So, I'm always on the lookout to learn from others.

Stay tuned for an update as to whether or not he can actually cut the grass...

Video Review: The Flip Video Ultra Series

What a shame it would be to write up a review of a video camera using old fashion text. So here it is, a video review of my latest gadget - the Ultra Series Flip Video Camera.

Thanks to my Mother-in-Law for buying me this camera, and giving me a handy tool, which provides me with new and exciting ways to embarrass myself in front of perfect strangers!

Sunday, July 20, 2008

Go Away Day: Gettysburg

Today, Shira, Dave and I ignored all the responsible things we were supposed to do around the house (weeding, mowing, etc.) and had a Go Away Day. We jumped into the car and headed to Gettysburg for the day.

Dave and I both have fun memories of visiting Gettysburg as Boy Scouts. But that was years ago. Those fond memories, plus driving by Gettysburg on our way to Rochester and always saying we are going to stop, were enough of a reason to put it on our list of places to visit. So, today we just did it. It was a relatively short hour and a half trip from D.C., so it's really not even that far.

The Gettysburg park is big, and you've got a variety of options for seeing it. We ended up purchasing a $20 CD audio car tour, and following along with it. I was especially happy with this solution, as it allowed us to stop half way through without feeling as though we lost out. We'll simply go back next time we have friends or family in town (or are in need of another go away day), and finish it up.

As for the Gettysburg Battlefield park itself - it's just outstanding. A must see. Every American has a responsibility to see this reminder that not that along ago, this country nearly split in half. You think we've got issues now, they pale in comparison to us slaughtering each other.

The park is really a history buff's paradise. Not only does it contain plenty of monuments, it also contains plaques and rangers who want to give you the details of the battle. The sequence of events is remarkable - there are occasions where a few minutes one way or another, and we would need a passport to make it back to Virginia today.

After visiting our country's most bloody battlefield, what is one to do? Visit the outlets near by, of course. Duh. It's the American way.

What a fun day, and a wonderful site.

On Being Disabled

Today, at shul, we had a visitor praying with us who was blind. She was making use of a remarkable mechanical device that appeared to be generated one line of braille for her to read at a time.

As she zipped along, I just had to think: here's a woman who can read using just her finger tips - now, which of us exactly is the less able one here?

Friday, July 18, 2008

Making Firefox A Little Bit Like IE

Sure, we love to complain about Internet Explorer. However, one feature that it offers that I like is that you can have tabs open up beside the current tab you're viewing. This way, tabs of the same topic tend to cluster together. Not to mention, you don't have open up a new tab, and then hit Control-Tab half a dozen times to view it (for the record: at this moment I have 16 tabs open).

If you can't beat 'em, join 'em. That's what I did when I installed the Tabs Open Relative add-on. Now Firefox opens up tabs just the way I've grown to like.

Hosting A Micro Baby Shower

Today, at lunch, we hosted a micro baby shower for Erin and Ryan. It was basically a yummy lunch, and a chance for us to give them some additional essentials they'll need for the baby. Like a nice copy of Good Night Moon, and Butt Paste.*

Erin's big pregnancy adventure is just about 1 month from ending. And then the real fun begins! We're so excited for you guys.

I'm a guy, so I'm not supposed to do things like baby showers - but I have to say, this one was a lot of fun.

*I have been waiting my entire blogging career to mention Butt Paste on my blog, and I finally did it!

Thursday, July 17, 2008

Even More Fun In The Sun

It's that time of year again - Shira's yearly company picnic. Kosher hots, volleyball, tossing the football around, hanging out with great folks and of course, avoiding a regular day of work - what could be more fun?

Here are a few snapshots from the occasion...

Here's me, trying to setup the old volleyball net. It required a specific clincher knot - but I made do with the clove hitch of my Boy Scout days

I played on a team of mostly significant others of Shira's co-workers (we were collectively known as "the husbands") and believe it or not, we came in first place in the volleyball tournament. Tons of fun, and better than being in the dunk tank!

Shira, surrounded by picnic food. Classic, right?

Forget facials and cucumber slices on the eyes - from now on, it's the ball treatment. Just imagine how relaxed you'll be covered head to toe in colorful plastic balls? Coming soon to an Elizabeth Arden Spa near you.

I know, not our usual pose, but still, kinda cute. This snapshot is impressive when you consider it was taken by a 3 1/2 year old!

Wednesday, July 16, 2008

Review: Making Comics

I borrowed Scott Mccloud's Making Comics for a variety of reasons: a stellar review on CoolTools, my general interest in drawing, my hopes that lessons learned from it could be applicable to programming, and Just Because. I was handsomely rewarded for taking this chance - the book was fantastic, and absolute gem.

The book gave me an incredible appreciate for comics themselves. I hadn't really ever thought about it - but it's absolutely remarkable that comics even work. In a movie, you've got thousands of frames of pictures, so telling a story seems quite possible. In a book, you've got thousands of words, so again, it's no surprise that you can tell a story there either. Now consider a comic - it has just a handful of frames, and a handful of words. Yet, it works. Not only that, but it can work exceedingly well.

Consider that just using a $2.00 black pen and a sheet of paper, it's possible to not only tell a story - but to get people to hear sounds, smell odors, and feel motion. McCloud couldn't have sold me on the story telling capability of comics any more if he had tried.

He actually got me thinking - if the beauty and power of comics can be expressed so clearly (in comics, no less!), then where's the equivalent text on poetry, opera and other forms of story telling? Think how remarkable it would be if you had a book on poetry, written in poetic form, that could spread this same message? Perhaps a book on programming written as a program? Hmmm, that seems to be going a bit too far. But still, something to consider.

As for lessons I'll take away from this besides the obvious ones - I think I'll be on the lookout for how some of these techniques can be applied to user interfaces. Perhaps mixing text and graphics can be a clearer way to get an interface across than one or the other. And his parting set of rules are definitely words every programming should live by:

  1. Learn from everyone
  2. Follow no one
  3. Watch for patterns
  4. Work like hell

I give this book a 10/10. It's a quick, informative read. If you do comics, you'll want to learn everything this book has to teach you. If you're like me, and don't do comics, then you'll get a rare glimpse into an impressive art.

Gotcha Of The Day - Setting The HTML Name Attribute Dynamically

I've now been bitten by this one twice: First, I created an iframe dynamically (by using JavaScript and the DOM) and for some reason, it wasn't submitting to the right target. And then last night, a set of radio buttons I created using the JavaScript DOM didn't work in IE. They rendered, but when you clicked on them, nothing happened.

I was doing something like:

  var r = document.createElement("input");
  r.setAttribute("name", "RadioButtonGroupName");
  r.setAttribute("type", "radio");
  r.setAttribute("value", "Whoo!");
  ...

It turns out, for IE, setting the name attribute dynamically isn't possible. At least not through obvious means. Instead, you have to do:

  var r = null;
  try {
     // For IE
     r = document.createElement("<input name='" + name + "'>");
  } catch(ex) {
     // For browsers that work
     r = document.createElement("input");
     r.setAttribute("name", name);
  }
  r.setAttribute("type", "radio");
  r.setAttribute("value", "Whoo!");

I know, how ugly is that? But, at least there's a work around that lets you stay in the world of DOM without hard coding things too badly.

More Online Whiteboard Tools

Here are some more whiteboard resources to go with the list I started earlier:

Did I miss any?

Update: Added in dabbleboard.com to the list of known services.

Monday, July 14, 2008

A Hydrox Moment

Thanks to Jerrie, for bringing this important story to my attention:

Remember Hydrox? AKA "kosher Oreos?" Well, after a long hiatus, these chocolate sandwich cookies are back for a limited time in honor of their 100th anniversary. The Kellogg Company, which produces Hydrox, have launched an "America's biggest Hydrox fans" essay contest, with a grand prize of a trip to New York and a six-month supply of cookies. The contest ends July 14; see Hydroxcookies.com for details.

Ahhh, Hydrox. I definitely remember them for being a substitute for, at the time, lard containing Oreos. I can even remember Rabbi Rose, announcing from the Bimah during a sermon that we should all take note -- Oreo had gone Kosher!

I get a bit verklempt just thinking about it.

Thanks for the news Jerrie!

That 70's Photo

This photo was included in a memorial slide show from this last weekend. I knew, the minute I saw it, it was a must-post-instant-classic.

From left to right: My grandpa, Me, Cousin Rachel, My Aunt, Cousin Lizzy, David, Josh, Mom and Dad.

If I had to describe myself in that photo, I'd say I was all teeth and socks. Austin Powers has nothing on me. Damn, I looked good.

Special thanks to Ralph for compiling the slideshow - it was beautifully done.

Sunday, July 13, 2008

The safety pin saves the day

People ask me why there's a safety pin in my wallet? For just these sorts of "emergencies." In this case, my sleep mask broke as we were preparing to take off. I didn't have any duct tape around to fix the problem, but I had my trusty safety pin.

While no life was at stake, the ability to get as good sleep as possible on the flight was pretty key - especially considering we left for the airport at 3:45am.

With my sleep mask repaired, a recording of about an hour of Groove Salad and my noise canceling headphones , I did well. I was asleep before the safety briefing and woke up when the plane landed.

--Ben

USAirways - is this efficiency I see?

All I have to do to sign up for the Dividend Airlines Club is send my name, e-mail and zip to an SMS number.

Is this actually efficiency? How cool. And how impressive.

Now, how come they can't make the rest of flying efficient?

SMS - fast, universal and technology my mom can master. It's a winner. I'll definitely be keeping an eye out for creative ways to use it.

--Ben

A Fitting Gift, Just For Me

Front of box: To Ben Simon, From CVS

Back of box: Special Delivery... A Fitting Gift, Just For You

Inside: Kotex Security Tampons, Kotex Ultra Thin Pad With Wings and Kotext Lightdays Individually Wrapped Liner.

Now, I know what your thinking - CVS messed up and sent a guy feminine hygiene products.

You couldn't be more wrong.

CVS sent a husband a FREE Get-out-of-going-to-the-store-to-buy-feminine-hygiene-products kit.

Thanks CVS, you're a life saver!

--Ben

Meet Jersey, The Wonder Dog

This weekend we had Jersey, my cousin Barbara's dog, keep us company. Jersey, I have to admit - and I don't this often, if ever, with dogs - she is both cute, and fun to have around. If I ever have a dog, and I won't, it's this sort of pooch I'd have.

The most entertaining part, though, was when we took a dip in the pool. My mom was doing laps, and Jersey was convinced that she was in trouble. To save the day, Jersey would chase along the side of the pool as she swam, and then leap in with all the zeal of a Baywatch Lifeguard, in to save her. She then doggy paddled around, and eventually made it to the steps. She would let herself out of the pool, and then repeat whole process with as much urgency as the time before.

I was in the water, and had a hard time keeping up with her.

She was a welcome distraction to a difficult weekend.

(Photo by Brother David)

--Ben

Friday, July 11, 2008

Laid To Rest

Here's a snapshot of the beautiful memorial park we laid my aunt to rest at.

She will be sorely missed by myself and countless others. The lessons of love, and devotion to family she taught us through her life are ones that I will carry with me for a lifetime.

May her memory always be a blessing.

--Ben

Coming Soon? Eventually? To a book store near you

If you're ever in a book store, and see a book of poetry by an Arlington
taxi driver named Tim, I believe we met him this morning. On our 8
minute drive to the airport, he asked us if we wanted to hear some
poetry. Natch, we said yes. He then asked us for a topic. I mentioned
travel. He then rattled off a poem that consisted of 26 words, from
"Airport" to "Zeinith," and hitting every letter inbetween, in order.

I have to say, I was impressed. I only got slightly nervous as he
pulled out his bound book of poetry to show us his work, while he was
driving.

I almost wished we had a longer ride to learn more about this guy. And
more importantly, for me to explain that using Blogger he could be a
published author *today*, with an audiance of millions. Heck, he could
even publish the poetry over SMS - though I'd hoped he wouldn't do it
while driving.


--Ben

David's Travel Mojo Strikes Again

We get to the airport at like 4:45am, and I'm like "Dave, we are doing
so well - look, our plane is here, waiting for us."

And Dave says - "well, once my flight was delayed because the plane was
here, but a member of the crew was didn't show."

And what happened this morning? Exactly this.

A flight attendent on our original flight, and our fallback flight were
both 30+ minutes late.

The in-person customer service has been good. The phone customer service
was abysmal. The phone rep, who I called to reschedule while in line,
tried to explain to me that he couldn't switch my airline because the
flight was *delayed* not canceled. Even though from my perspective a
delay or a cancel was going to hose my travel schedule the same way.

The good news out of all this is that we got a direct flight to Chicago
instead of one with a stop over. And we still got an exit row. So, at
the end of the day, all appears to be OK.

That's my travel mojo mixing with David's.

--Ben

Heading To Chicago

Dave and I are off for a quick trip to Chicago. Unfortunately, it's not for the best of reasons - we are heading there to bury our Aunt. She just passed away after a long fight with cancer.

My Aunt was so warm, and so loving. From long ago recollections of trips to California, to recent talks we had on the phone. She always made it clear how important family was, and how much she loved and supported us. And she was a fighter. She kept her spirits up through an impossible roller coaster of diagnoses. She set an example that I hope to learn and emulate.

And then there are my cousins - who have now lost both their mom and dad. There are simply no words, no logic, nothing I can think of to make this even slightly right. I'll be there to give them my love, support and a big old hug. But even that seems like nothing, given their grief.

I'm traveling with David, which has thrown off my usual travel mojo. The good news is that I got the closest gate in the airport, instead of the farthest like usual. That's apparently Dave's thing. But, he also explained to me he's always late, and we are now all but insured to miss our 30 minute layover in Philly. Oh good.

As long as we get there, that's all that matters, I suppose.

--Ben

Thursday, July 10, 2008

Snippit Of The Day: MySQL SELECT INTO OUTFILE ...

Here's a handy code snippit from the MySQL manual. Use it to convert an arbitrary SELECT statement into a .csv file:

SELECT * INTO OUTFILE 'c:/temp/dump.csv'
  FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"'
  LINES TERMINATED BY '\n'
  FROM <some-table>
  WHERE <some-where-clause>

I always forget how easy MySQL and PostgreSQL make it to get CSV data from a SELECT statement.

PHP: Dealing With Premature Session Endage

I deployed a new app to a production server, and all was working great. Except, I noticed that after about 2 minutes of inactive, I'd be logged off. I've run into this before - PHP sessions ending prematurely, and it's always a pain to debug. Mostly, because it shouldn't be a pain to debug (there's really only one setting, and it should just work, right? Here's how I debugged the issue last night:

  • Put a page in place with a call to <?php phpinfo(); ?> in it. This was useful to confirm that session.gc_maxlifetime wasn't set to an absurdly small value.
  • Put the following test page in place:
    <?php
    session_start();
    
    echo "<pre>";
    echo "Session Save Path: " . session_save_path() . "\n\n";
    
    if(!g($_SESSION, 'x')) {
      echo "'x' not set....\n\n";
      $_SESSION['x'] = 'Hello World';
    } else {
      echo "'x' was found\n\n";
    }
    var_dump($_REQUEST);
    echo "</pre>";
    
    phpinfo();
    ?>
    I could <?php
    session_start();
    
    echo "<pre>";
    echo "Session Save Path: " . session_save_path() . "\n\n";
    
    if(!g($_SESSION, 'x')) {
      echo "'x' not set....\n\n";
      $_SESSION['x'] = 'Hello World';
    } else {
      echo "'x' was found\n\n";
    }
    var_dump($_REQUEST);
    echo "</pre>";
    
    phpinfo();
    ?>
    
    The first time you visit the page you'll be greeted with 'x' is not set. Hit reload again and it will say 'x' was found. I could then wait a few minutes and hit reload again - if it said 'x' is not set I know my session expired. This allowed me to test my environment without any of the complexity of the application getting in the way.
  • Put a large value for session.gc_maxlifetime in the .htaccess file:
    # Set how long sessions should stay valid: 1hr = 60sec * 60min = 3600sec
    php_value session.gc_maxlifetime 3600
    
    I visited my phpinfo() page to confirm that the setting took.

At this point, I was really scratching my head -- the sessions were set to expire in an hour, yet there were gone after two minutes. And while there are plenty of config values for sessions, none seemed to make the difference between sessions living and dying in that short a time.

Then I found this article which not only suggested setting session.max_gclifetime but also session.save_path. So, my debugging continued:

  • Connected to my server's cpanel, and using the file manager, created /home/<my-home-dir>/php_sessions/
  • Updated my .htaccess file to read:
    # Set how long sessions should stay valid: 1hr = 60sec * 60min = 3600sec
    php_value session.gc_maxlifetime 3600
    # Where to stash session data
    php_value session.save_path "/home/<my-username>/php_sessions"
    
  • Visited the phpinfo(); file page and confirmed that my setting took. I also visited my session test page and confirmed that a file was created in php_sessions.
  • Sure enough, after 15 minutes, the file was there and my session was still valid.

Problem solved - whoo!

If I had to guess what was going on, I'd suggest that on this shared server, someone or something was was deleting files out of the shared session folder on a very regular basis. Creating my own session.save_path bought me two key benefits: (1) those files didn't get deleted and (2) I could now closely inspect the creation and deletion of sessions, even downloading the session files and inspecting them manually.

Usually, php sessions Just Work - but it's nice to know that when things don't, there's a reasonably easy way to debug what's going on.

Ira Glass On Mastering Your Craft

Here's a wonderful clip I found on crooksandliars.com (it's not political, at all), where Ira Glass of This American Life talks about mastering the art of story telling.

It's sort of a Pep Talk + Discussion Of The Dip, and I have to say, it makes a heck of a lot of sense. His theory on one's ability, versus one's taste, rings true just as much for programmers as it does for others in the creative world.

Give it a watch:

Wednesday, July 09, 2008

Instant Online Collaboration - Skrbl

Tonight, I wanted to explain a design concept - but wasn't quite able to do it over the phone. A quick Google search, and I found skrbl.com. It's an online whiteboard that you can use without even registering. Just click here:

skrbl now

Sharing the whiteboard with someone else is as easy as IM'ing/E-mailing them the URL of your diagram. For example, consider this example, which you're encouraged to play with.

I have this sensation that Skrbl is a well known app, and I've just been out of the loop. But I have to say, this could be exactly what I'm looking for when it comes to running phone meetings. It's faster and more convenient that sharing my desktop, but still let's me get visual with folks on the phone.

Update: GE's white boarding app is also very slick. It's cleaner than skrbl and seems just as powerful. It's just lacking one thing - the ability to collaborate on a drawing in real time. Oh well. That feature's just too cool.

Life's Big Decisions

Mmmm....so much beer, so little time.

--Ben

Tuesday, July 08, 2008

Talkinator - Lightweight, Multi Site, Chat

Here's interesting concept from the folks who bring us Mailinator. While Mailinator provides you with a lightweight, disposable e-mail address, Talkinator gives you a lightweight, disposable, online chat session.

For example, if you type into the box below, you'll effectively be communicating with everyone else reading this same page. Go ahead and give it a try.

Even more fun is that you can drop the code for this chat box onto other pages, and by using the same chatroom name, they are automatically linked up. Go ahead and try it, the name of the box below is: chatsy. Grab the code here.

How is this a useful tool? I have no idea. But, it does seem like it could be handy.

If you're on the lookout for chat tools, you might also want to check out ChatInterpreter.com. It's a lightweight, translating (as in you type English, and French shows up on the other side), chat tool I built for an i2x customer.

10 Steps To Succeeding In Business

Here's a nice and concise guide to succeeding in business.

Ignore the fact that it relates to lemonade stands - that's a minor technicality.

Consider this excerpt that explains how subsidies work:

Sometimes somebody else nearby will be able to sell the same quality lemonade at a lower price than you can, even if you try to cut the cost of supplies. This may be because their parents are paying for everything and don’t care whether the stand actually makes enough money to pay for the supplies. In the business world, this is called a "subsidy," and if your parents don’t also "subsidize" you, you can’t compete. It’s not fair to you, but if you can’t match the price and you can’t find another good reason for customers to buy from you, you may not be able to stay in business. However, you can try to sell different products such as other drinks and food, as stated in one of the steps.

I'm so going to use this as an outline during my next business/product analysis meeting.

Monday, July 07, 2008

Map Survey: Where Did You See The July 4th 2008 Fireworks?

I'm a little late with this post - but still, I'm curious if folks wouldn't mind sharing where they saw this last 4th of July's fireworks and how they were?

Click here to get started. When the map comes up, click Edit. Fiddle with it.

Don't forget to include a few comments about the view of the fireworks from that spot.

Yes, everyone on the planet can edit this map - but c'mon, we're all adults here. I trust you won't mess it for others.

Let me know if you have any questions via the comments of this post.

Garmin Geko Tips

I've really been enjoying my Garmin Geko. It's lightweight, reliable and sips battery juice. Here are a few tips that I've found helpful while using it these last few weeks. Some of these aren't so much Geko tips as they are GPS tips in general.

  • Get the first satellite lock of the day -- My biggest concern with the Garmin Geko was how quickly it would get a satellite lock and how reliably it would hold on to it. I learned from our last trip that if you give the device plenty of clear sky, and plenty of time, to get a lock first thing during the day, you'll be fine the rest of the day. Even in the narrow alleyways of Barcelona or Rome, the satellite lock held just fine. But it definitely needed a clear view to get that initial lock.
  • Don't forget about the measure distance feature -- The Geko is pretty much the same software as the eTrex with one handy difference. The Geko, from the map screen, allows you to measure distances between waypoints or your current location and waypoints. It'll even predict when you'll arrive at a waypoint. This was really handy to make sure we could make it back to the boat on time.
  • Gather latitude and longitude points directly from maps.google.com -- This a great hack from the folks at LifeHacker. What you do is setup right mouse click on any area of the Google Map and select Center map here. Then enter the following into the address bar:
    javascript:void(prompt('',gApplication.getMap().getCenter()));
    
    You can manually enter these coordinates in your Garmin, or as you see below, push them over in bulk. While not the fastest way to get waypoint data, it is nice to know that any Internet Cafe can provide you with waypoint data.
  • Use GPS Babel to quickly push waypoints to your Geko -- You can use GPSBabel to easily download waypoints from the Geko. It turns out, you can also use it the other way, to upload waypoints. Start off by filling out a CSV file like so:
    39.15201891687152,-76.72353610396385,Panera
    
    Put as many waypoints as you want in the .csv file. Then plug in the device and run the commmand:
    gpsbabel.exe -i csv -f upload.csv -o garmin -F COM1
    
    If you want to get fancy you can use the unicsv format which allows you to specify more data, such as the icon to use on the map.
  • TODO: Figure out a use for the streaming GPS Data the Geko can produce -- If you set the interface mode to text out and connect it up to your laptop, you can get a stream of live GPS Data: In this case I used ZOC v5 to connect to the device at 4800 baud and N81. I felt like I was 12 years old again, dialing up to a BBS...ahhh...but I digress. I'm not sure what to do with this live stream of data, but it's got to be used for something. It's just way too hackable to ignore.

Have any other tips I should add to the list?

Sunday, July 06, 2008

An Amazing Lunch

How did we go from us all playing together, to our kids playing together?

It was really fun getting the Amazing Media folks back together. True, we didn't have any design arguments, or plan our next product launch - but we did eat good pizza. And having the wives around was a nice touch.

A special congrats to Tonya, for completing nursing school. After dealing with whining computer programmers, and fussy web applications, she'll no doubt find sick people a nice change of pace.