Saturday, March 15, 2008

Landed - The Singapore Adventure Begins

Just landed about an hour ago. My flights over here were, for all intents and purposes, were great. All the flights were on time, the meals totally edible (except for one questionable mid morning snack) and my seat mates were really nice. The woman next to me on the 15 1/2 hour trek studies moss for a living and she clued me in to just how cool moss is (surprise). Mom, Dad, thanks again for the sound canceling headphones - man, they are most awesome.

Perhaps most impressively, my new Dell laptop lasted about 6 hours before it finally gave out. That meant 6 hours of work time and I managed to get about 6 hours of sorta-sleep. Like I said, about as good as could be.

I got to the Airport, and as a first task, attempted to take money out of the ATM. That didn't work, which did get me a bit nervous (in strange country, have no money, gulp) - but I found an American Express money exchange place that allowed me to get money out of my account (in theory, for no additional fees). So the first disaster has been averted.

The folks here, at least in the airport, are remarkably nice. The woman apologized sincerely that the ATM wasn't working for me. Could you imagine the woman at the info booth in O'Hare apologizing for pretty much anything?

Photos to come starting tomorrow...

Friday, March 14, 2008

In-Flight Internet Radio Hack

Just finished the short DC to Chicago leg of my adventure. On the plane, I wanted to do a bit of programming. As I started to unpack my computer I realized how disappointed I was that I didn't have some music to go along with my hacking session. I've gotten so used to Pandora, and Internet radio stations that I don't have a collection of music on my laptop that works offline.

But then I remembered a feature I had noticed with the latest version of the free Real Player. Right next to the Play button is a record button. One day I happened to hit it, and it did just what it claimed - it recorded the music stream and saved it my library. Now I have no idea what format it's in or if I could post it on my blog for ya'll to hear - but I figured, that had to be a useful feature. And then promptly forgot about it.

That is, until I was on the flight today, and remembered that test stream I head created. I gave it a listen, and it worked flawelessly.

So here's what I should have done last night, or the nights before - before going to bed, hit the record button on the Real Player and stop it in the morning. After a couple days, I'd have plenty of music that I could then replay, and of course, skip the commercials on.

As soon as I landed in Chicago and got WiFi access I started recording a station, so I'll at least get a few hours of content that I can listen to on the plane. Here's the player in action:

The record feature in Real Player really changed my opinion of their software - it went from another media player that's constantly trying to cram offers, extras and junk in front of me, to a program that was way more useful than I could have imagined.

What do you know, actually useful features are more preferred by users than loud messages? Who knew?

This Trip Is Getting Real

That's the view to my right from my first flight of the day. We're
boarding now, and in a few minutes, we'll be underway.

This trip just became real.

--Ben

The Journey Begins

It's 5:50am and I'm officially on my to Singapore. Of course, my 22
hour journey begins with a 35 minute cab ride, which isn't exactly
exciting. But if I have problems with 35 minutes sitting in a cab, I
don't want to think about 19 hours on a plane.

I double checked, before I got in the cab, I have: passport, wallet,
cell phone, charger, laptop, AC adapater and a handful of mini-sized
candy bars. I figure with those essentials, I'm totally good for any
emergency. Anything else I forgot, I can buy or live without.

I also brought along a Singapore guidebook, so I can plan my trip during
the flight over.

I'll see ya'll on the other side of the globe.

[It should be noted that since I've gotten in the cab, and written this,
in the last 9 minutes, I've realized I left at least 3 items at home
that I neither wish to buy nor live without. Oh well, must soldier on!
And make a better packing list next time, too]

--Ben

Storytelling At Its Best

As I prepare for a 22 hour (not exaggerating, that's what my itinerary says) flight coming up in a few hours, I thought I would grab the latest free podcast from This American Life.

If you've never heard TAL - you're really missing out. It's absolutely fantastic story telling - it really shows how powerful radio can be.

Tonight I was delighted to find their Best Of page, which lists their most popular shows. It's got show descriptions like:

Somewhere in the Arabian Sea. Arguably the funniest hour ever produced about the War on Terror. This show's about life onboard an aircraft carrier fighting the U.S. war in Afghanistan. One woman is risking her life, living in a war zone, to stock vending machines with candy for twelve hours a day.

There's a convenient play button next to each of the descriptions, which provides instant playback of the show - so definitely give it a try.

Unfortunately, I don't have a way to grab them for long journey tomorrow - but still, I'm glad I found them.

I'm a big fan of This American Life, as I find it to be among the best story telling in any medium available. I was delighted to find:

Thursday, March 13, 2008

Ben's Quick Guide To International Plug Adapter Thingies

In almost a matter of hours, I'll be heading to Singapore for a mini vacation adventure. And, whenever I travel internationally, I'm also stuck with the same question - what shape are the outlet receptacles in this foreign landing I'm heading to? After all, I need to plug in my phone, laptop and camera to name just a few items.

With Google at my fingertips you'd think this would be a trivial question to answer. It never is. I can never find quite the right terms to to search for (are these adapters? plugs? converters? Who the heck knows), and I inevitably find a page that looks far from trustworthy.

On our most recent trip to Target I picked up yet another collection of these plug-adapter-converter dealies and noticed that they stated right on them which country they belong to. I figured I should note this information down before I either lose it, or manage to have the labels come off.

So here it is, my guide to international plugs:

  • Big Chunky Tongs, Kid Sized Adapter - Great Brittian, Ireland, Africa, Hong Kong, Singapore
  • Tongs At An Angle - Australia, New Zealand, Fiji, China
  • Round, Tube Shaped Tongs - Europe, Middle East, Africa, Asia, Caribbean
  • Correct, Flat, Straight Tongs - Northern & Central America, Japan, Taiwan, Parts of Caribbean and South America

Don't ask me what to take if you are visiting a country not on the above list. Maybe you should take this as a hint and change your travel plans.

Wednesday, March 12, 2008

Word Of The Day and Advice For Working With Print Designers

Today's word of the day is: Horsey. I was working with some print design folks today, and the word kept coming up. Horsey is used as an adjective to describe a font or another element which is too large or clunky for the page.

Here's a sample usage:

If I am designing a layout to a book or magazine I would use 8 pt if editors/clients would let me. Leaving more room for photos, captions, to breath. I’ve recently been forced to use 12 point type and it looks so horsey to me.

Two other tips for working with print designers:

  1. Depth is what we in the web world refer to as height. So an image that has the depth of 320px has a height of 320px.
  2. A PMS color isn't one that's irritable, it's one that's specified in the Panitone Matching System. Do your best to not giggle when they mention a PMS color, take it from me, it doesn't look all that professional.

Tuesday, March 11, 2008

Review: XS Energy Drink, Electric Lemon Blast

During the tail end of my run tonight, I jogged (at this point it may have been more liked hobbling) by two guys in suits. As I passed, one of them started to chat to me about running.

As I continued to mosy along, he explained he was a distributor of XS Energy drink and they were out drumming up business. He explained that the drinks are of course great for you, have few calories, and no sugar.

After his little pitch, he explained that they were out selling samples for $2.00/each, but because I was out jogging he'd let me try one for free.

Always the trusting type, ready to take candy from strangers, I accepted.

At the end of my run, I checked the bottle and it looked like sane stuff. It was even marked Kosher, so I took that as my sign, and drank up.

The lemon flavor kind of tasted like a sort of unusual ginger ale. It was different tasking, and I have to say, pretty tasty. Though that may have been the endorphins talking.

Seriously, the drink tasted good, and if your into these things, you should give them a try.

The guy gave me his card, so if you want info contact Jamie at optimalchoice@ltdkate.com. Just tell him the runner he was kind enough to offer a free sample to, sent you.

--Ben

A Skype Believer

OK, it's official - I'm a Skype believer. If you offer phone service, you should be terrified of this technology. And by terrified, I mean extremely motivated to do something about it, and not ignore it.

Shira's in a far away land as I type this and I just got done talking with her. Not instant messaging, but actually talking. In the past, I would have busted out the AT&T dialing card, dialed 45 digits, talked to an operator, and if I was lucky, actually get connected to her.

Instead, this time I started up Skype, "dialed her," she answered, and we started talking. As a bonus, we even got to see each other because of the video capability Skype offers.

The service is totally free, and the only equipment it took was a pair of $30 webcams.

I'm not ready to ditch my home service for Skype, but I have to say, for unusual circumstances like this, it can't be beat.

If you're making international calls, trust me, you need to give this a shot.

A Little Light Reading

I've got a big international trip coming up, where I'll be traveling for something like 24 hours straight (lots more to come on this, I'm sure). So, I figured it would be a great time to catch up on a little geek Research And Development reading. I browsed through Lambda-the-Ultimate looking for papers that seemed both interesting and pertinent. Here's what I'm bringing along:

Did I miss any must-read papers?

Embedding an .mp3 file - A Quick Approach

The other day I needed to embed an .flv file on a web page, and luckily stumbled across some easy instructions for doing so. Tonight I had to do the same thing with a .mp3 file.

Unfortunately, my luck didn't hold out. I had to dig around for quite some time before I found a passable solution. What I eventually realized I wanted was a Flash mp3 player, instead of trying to leverage native browser plugins (even though I found this promising article.).

The solution I settled on is outlined in this tutorial. The good news is that it uses the same approach as the .flv player, and just uses a different URL parameter (soundFile).

You can grab the original package here, and while it's a WordPress plugin, all you really need is player.swf from the zip file.

Anyone have any better player suggestions?

Monday, March 10, 2008

Deep Thought Of The Day

From a sign in TR park: "Rocks turn to soil very slowly."

Not some rocks - all rocks.

A friendly reminder that change is non-negotiable.

--Ben

Designing With Theo

I had some application design to do today, and while I don't have access to a room filled with furry orange furniture, or floor to ceiling whiteboards, or even foosball - I do have access to the outdoors. So I took the show on the road.

I went for a jog/talk-through-my-design session on Theodore Roosevelt island. It's only about 1.3 miles around the perimeter, so I did a couple iterations. (Pun intended)

I happen to love TR island, as a DC site. On one hand, it's fairly nature like - with a marsh, and root filled trails. On the other hand, you can always see the city peeking through the vegetation.

You'll be happy to know that the design session was a success and I now have a solid plan what I'm going implement when I get back home. Course, I may need to find a new location to do more design work tomorrow. I know, my job is a tough one.

--Ben

Sunday, March 09, 2008

Putting My Bachelorhood To Use

A couple of hours ago, I dropped Shira off at the airport for a week long business trip. In a very small (thankfully) sense, I'm a bachelor - free!

So, what do in times like these? Fairly frequently, I cook.

I'm not a big fan of cooking, and I'm certainly not good at it. But, there are simply foods Shira won't be talked into cooking/eating with me, and with her on a plane - she's not here to stop me. So, while she is in town I keep an eye out for stuff she finds nothing special, and when she leaves, I leap at the chance to produce it.

Plus, I figure the more times I practice cooking, the better I get. In say another 20 or 30 years, at this rate, I'll be a pro.

I also like making something fair substancial when she goes so I have leftovers to munch on for days.

Tonights creation had all the ideal traits of a "Shira's out of town meal," including: requires lots of chedder cheese, can substitute Morning Star Farms fake meat, involves the oven and the stove , and makes use of a pie plate.

The dish caught my eye when we were making pancakes a while back - it's Superbly Easy Cheeseburger Pie - and was handily printed on the back of the Bisquick box.

The actual cooking experience was non-eventful. More often than not, the house fills with smoke and I'm forced to open every door and window in the house. But tonight, it was almost too easy.

As for how Cheeseburger Pie tastes? Great of course. Add enough cheese to anything, mix in Bisquick, and it's going to taste good. Better yet, you can make it tell me what you think - the recipe is here.

But now I have to figure out what to make next. Any suggestions? Remember, heavy on the cheese...

--Ben

The Trip We Won't Take

I last night I talked to a friend about a trip he just finished - and chances are, it's one we won't ever take. For $389 he bought a USA Rail Pass ticket which gave him unlimited train access across the country for 15 days.

The result? He's made it from NY to LA, stopping in New Orleans and making his way through Texas, all for the price of that single train ticket.

He's seen way more of this country than I have. The trip hasn't been flawless - our train system sucks in a variety of ways. The biggest complaints: the trains run late and infrequently. You'd think there'd be half a dozen trains a day from DC to Charlotte, NC - there's one. Miss it, and your stuck for a day.

But still, he said he got to meet people with incredible stories and got to see landscape he would never had imagined.

The entrepreneur in me even thinks you could make a little business out of selling trips built around this ticket. Imagine developing custom itineraries, where the entire transportation cost is around $400. If you knew the right places to stop, and had the timing right so that you didn't miss trains, it could be a really affordable way to see the country. Hmmm, wonder if bummingaroundamerica.com is free? It would be a sort of micro-travel agency.

Oh, and the reason we won't take this trip is that this specially priced ticket is only available to Non-US residents. D'oh.

At least I got to live vicariously through someone who did get to enjoy this adventure.

--Ben

Chutzpah Of The Day Award

And the winner is: The University Of Pennsylvania.

Not only do they have the chutzpah to charge $30,000/year (that was almost 10 years ago, who knows what it is now) in tuition, but they also ask you for more money as an alumni. Fair enough, I suppose.

But then to send out a "Draft" version of the donation list - with the message "don't see your name on your list, among all your classmates? It's not too late to give!" - well, that's real chutzpah. It's almost bordering on extortion.

Don't get me wrong, I think it's effective. It just takes guts to ask someone for more money when they haven't even finished paying off their school loans.

--Ben (who went to a state school, and is apparently a bit bitter)

Thursday, March 06, 2008

Beta Preview - Interactive Speedtraps and Red Light Camera Database

One of my clients has his site ready to be shared with Family and Friends to get feedback. The way I figure it, if you're reading this blog, you're a friend - so if you're interested you can take a peek.

The site is an interactive Red Light and Speedtrap database. It's set up so that you can not only browse a Google Map to see cameras and traps in your area, but so that you can also contribute. For now, you can even download the database for free and load it onto your GPS.

The philosophy is simple - if we all contribute a few of our most recognized waypoints, we'll build up an especially useful database. It's the Give a few, get thousands approach.

I for one was glad to contribute the intersection at the end of our street as a common speedtrap. It's a genuinely dangerous traffic pattern in the morning, and if more drivers knew about it, it would be a Good Thing.

So go ahead and kick the tires on the site. Please, drop me a line at bugs@ideas2executables.com if you notice anything about the site that doesn't quite work for you.

Thanks!

Embedding an .flv file - A Quick Approach

I needed to embed a .flv file on a site and wasn't quite sure the most straightforward way to do it. Luckily, I found this thread:

I know this has been here for a while but if you are still interested I did this.

At http://www.arronsfootball.co.uk I play flv files using a free flvplayer I found somewhere online, you can get it off me at
http://www.arronsfootball.co.uk/flvplayer.swf,

simply put the following html in your page changing the size and replacing **videlocation** with the location of your flv file.

And sure enough, it was that easy. I grabbed the flvplayer.swf, passed a URL parameter file=...path-to-flv... and autoStart=false and I was done.

Remind me again how we would function without Google?

Google Maps - Getting content to overlay the map

Update: I think there's a better way to do this. See this blog entry.

I wanted to add a "Loading..." message to a Google map app I was working (and will hopefully get to share with you soon). But I found that my attempts to get content to appear over the map didn't work. Assume for a second I had like:

 <script type='text/javascript'>
   function displayMessage(m) {
     // use Prototype style access
     $('message').innerHTML = 'Loading...';
     $('message').style.display = 'block';
   }
   function hideMessage(m) {
     $('message').style.display = 'none'; 
   }
   // JavaScript to setup events so that dislayMessage(...) is called when
   // we are loading
 </script>

When I tried to put the element message over the map, it didn't quite work. I tried:

  • Putting content in the message element as a child of the main map tag. That is:
      <div id='map'>
       <div id='message'></div>
      </div>
    
  • Using the method getContainer on a Google Map object to get a hold of the div tag:
  •   map.getContainer().appendChild(
          ...code to build up message dynamically...);
    
    

What finally did work was nice and simple - absolute positioning of an element, and setting its z-index. So I did:

  <!-- on the page -->
  <div id='map-container'>
   <div id='message'></div>
   <div id='map'></div>
  </div>

  /* in CSS */
  #map-container { position: relative; }
  #map { width: 300px; height: 300px; }
  #message {
    position: absolute;
    top: 0px; left: 0px;
    width: 300px; height: 300px;
    display: none; /* start off hidden */
    z-index: 10; /* make sure message is on top of the map */ 
  }

My First "Real" Executable

A First

Yesterday I sent a customer of mine the very first Windows executable I've produced. I mean honest to goodness .exe - it wasn't a web app, script or Java App. It's what Shira likes to call real software.

I was really impressed how easily PLT Scheme made it to build a completely stand alone executable. I whipped up a quick Makefile with these rules:

MZC = "c:/Program Files/PLT/mzc.exe"
DESKTOP = ~/dt

foo.exe : ui.ss
 $(MZC) --gui-exe foo ui.ss

dist : foo.exe
 $(MZC)  --exe-dir app foo.exe
 rm -f app.zip
 zip -r app.zip app
 rm -rf app deploy
 cp app.zip $(DESKTOP)
 mkdir deploy
 cp app.zip deploy
 rm app.zip

This script not only builds the .exe but packages it up in a zip file so I can send it off easily. I told my client to unzip the file and run the .exe - it worked painlessly.

In the past I've built stand alone Java apps and it was always a pain - for starters, you need to make sure the user has the JVM on their machine. And then you have to deal with the fact that Swing used to be (maybe still is?) soooo slow. And don't even get me started on packing up all the right Jar files and dependencies. (Certainly over the years things have gotten much better, right?)

All I know is that I didn't have to worry about dependencies, and the entire zip file with run time environment was about 4meg.

The Catch

One gotcha that bit me, was that my first attempt to build an application succeeded, but when I ran the app, nothing would happen. Turns out, when you say:

 $(MZC) --gui-exe foo ui.ss

your asking to build foo.exe that will invoke the module in ui.ss. I was thinking Java/C and was expecting to call the foo function on the ui module. But that's not what it does (as clearly stated in the docs) -- it simply runs the module. So instead of:

 (module foo mzscheme
   ...code...
   (define (foo)
     ...code to execute...
    )
  )

I needed to have:

 (module foo mzscheme
   ...code...
   (define (foo)
     ...code to execute...
    )
    ;; Make sure to call our initial function at run time.
    (foo)
  )

I guess now I really can comfortably call myself Ideas2Executables. Whew, that was a close one.

Clinton's Laws Of Politics - Hope vs. Fear

This is just too perfect not to share. Check out this 26 second video - it's Bill Clinton talking about "1 of his laws of politics." Mainly:

If one candidate is trying to scare you, and the other is trying to get you to think; if one candidate is appealing to your fears and the other one is appealing to your hopes - you better vote for the person who wants you to think and hope.

Now watch Hillary's 3am ad:

I think Bill's message makes it pretty clear what you should think of these sort of ads. Talk about Chutzpah on the part of his wife.

Wednesday, March 05, 2008

Advice To Barack

Dear Mr. Barack

Earlier today I read this CNN article, check out this snippet:

"He has to go on the offense," Gergen said. "He's foresworn going after her with negative ads, but he can't be hit around the head and shoulders and not fight back."

Here's my two cents on the matter: don't do it, don't give up fighting the clean, positive fight that you've been fighting (or at least you've been giving me the impression that you're fighting). Starting to hurl muck would just prove that your one of them - you know, a typical Washington politician.

Whatever benefit you gain by sinking to her level won't be worth it. I think the country is paying attention, and at the end of the day, won't be fooled by scummy ads.

Your friend,

Ben

Tuesday, March 04, 2008

Bad News: Global Warming, Good News: You can do something about it

My friend Christian has just relaunched TipBin - it now has green focus. Instead of tips about everything, the tips are focused on things you can do to help the environment.

It's informative stuff, something that couldn't be more important in our day and age. And if you think climate change isn't a problem, Christian also has a blog for you to read. It's not the most uplifting stuff - but then again, it's not mean to be. It's meant to make you appreciate just how serious this issue is.

I also have to chime in here about what Christian has managed to do - in just a few days, he's taken existing tools and re-purposed them to help run his own little environmental movement. Back in the day this would have taken big time and money. One point we should all take away is - the technology is there for us to get our message out (whatever it is), we just need to do it.

Also on the Green front, I've been meaning to mention this article by Teresa. In it, she talks about Thinking Green while cleaning.

Monday, March 03, 2008

More Gimp Goodness

I had some more CSS/HTML layout work to do the other day, which gave me the perfect excuse to write a couple more Gimp / Script-Fu scripts. These are all about being useful for me for specific tasks, rather than being general purpose scripts. Still, if you find them useful (probably more so as examples), by all means, use the code. Here's what I did:

  • utils.scm -Not actually a module, but a bunch of reusable functions I wish I had. For example, (selection-width img) returns back the width of the current selection. The trickiest one I created was (color->string c) which converts the color to an CSS/HTML style hex color. I love that I'm able to write these reusable functions, drop the file in my Gimp scripts, and bam, I have a reusable library.
  • css-info.scm - Creates a CSS Info plug-in. When invoked, it pops up a dialog box with the current selection and color choice in various CSS clauses (such as: background-color: #xxxxxx). I found this useful while working on a layout that called for absolute positioning. I would use the mouse to make a selection, hit a keystroke, and up would pop a dialog box with the info I needed to copy and paste into my CSS file.
  • export-selection.scm - Creates an Export Selection plug-in. You make a selection, invoke this filter, and it will create a new image, that's cropped, flattened and ready to save. This was useful for cutting out chunks of an image for layout purposes.

In general, I'll be publishing my Gimp scripts here.

The Secret To Selling On The Radio

Over the last week, I've heard these same commercials on this radio station, and I'm starting to see a trend. Here's each target market:

  • Acne Medication - they only want sceptics
  • Selling Real Estate Foreclosures - they only want to reach people who's last name start with A through N. They should call today, everyone else should call tomorrow.
  • Selling Involvement In An Internet Business - they want people who have done one thing that's holding them back from being a millionare, decide they really want it
  • Weight Loss - they want people who have failed a diet because, and I'm not making this up, they were hungry. (I shoudl pass on this useful tidbit: it's nearly impossible to diet if your hungry, so it's not your fault that you didn't stick to the diet.)

All of these ads follow the same strategy: they take the entire population of the world (or, a very large part of it), and name it in such a way that its members feel as though they are part of a highly selective group.

I have to wonder, does this really work? Are people that easily fooled -- hmmm, they only want sceptics...wait a second, I'm a sceptic! They're talking to me!? My guess is, it probably does.

Well, at least I've cracked the code and could always fall back on being in radio marketing if this programming thing doesn't work out.

Tool Of The Day: Fiddler

Today I started an i2x project that required me to do a bit of web scraping. I had to make my way through an SSL login and then navigate through a few pages worth, picking up cookies and stuff along the way. I knew this was going to be tricky to script as it wasn't quite obvious what needed to passed around where.

To put it mildly, boy am I lucky I found Fiddler. Fiddler is debugging proxy that sits between your browser and the web and records all the traffic that passes through it. It then allows you to review it and see every last bit of information that's exchanged, so scripting the interaction becomes easier. Or in my case, possible.

While I've used debugging proxies before, Fiddler is by the far the easiest to install, use and seems quite stable. Amazingly, it appears to be a Microsoft product. This has to be among the most useful tools Microsoft has put out since, well, since forever.

Here's how tricky it is to use: download it. Kick off IE. Kick off Fiddler (under your All Programs, among other places). Poof, your done. Your traffic will start getting tracked. You can hit F-12 in Fiddler to toggle whether or not it should pick up traffic.

And Fiddler does more than just allow you track traffic - you can set debug break points, mangle requests/responses and do a whole bunch of other tricks.

How I went this long without having Fiddler in my toolkit is beyond me. It's good stuff.

I should also mention, I'm doing the web scraping in Scheme and found: this article, this recipe and this package all handy in getting me started.

Sunday, March 02, 2008

Gearing Up For The Newest Team Member

Today I attended my first baby shower (well, perhaps my second if my Mom had a shower for me) for one of Shira's cousins. It was the perfect chance to check in and see how the parents-to-be are doing, and get all geared up for the baby.

Mom and Dad To Be seem totally calm, cool and collected. Very impressive. They took the flurry of advice from the parents who were present in good stride. You just know they are going to make great parents.

What can I say, lots of good food, lots of cute stuff, and we can't wait to meet the baby. Also, I just have to ask, why don't adults get wear fleece pajamas with feet? They looks so dang comfy.

Just 10 more weeks, hang in there Julia!

Vista + PHP + MySQL + Apache - Getting All To Play Nice

I had pretty good luck getting Windows Vista more or less setup as a dev server. But I ran into the system crashing when I attempted to use MySQL. This meant that while my dev environment was close to setup, it was still pretty useless.

Tonight I finally got the system tamed. Here's what I had to do:

  • Install just the right versions of PHP and MySQL. I found this bug report immensely helpful. The winning combination turned out to be: PHP = 5.2.4, MySQL = 5.0.45, libmysql.dll = 5.0.45.
  • I had to explicitly grant permission for Everyone on my system to have full access to my PHP ext directory and the libmysql.dll file that I had installed in C:\Windows\System32. This is almost certainly a bad thing. However, just giving everyone on the system Read permissions didn't do the trick - I was still getting the message:
    PHP Warning:  PHP Startup: Unable to load dynamic library
     'c:/tools/php-5.2.5-Win32/ext\\php_mysqli.dll' - Access is denied.\r\n
      in Unknown on line 0
    

With this two items out of the way, life is good again.

Friday, February 29, 2008

Homelife Security - Handy Advisory System

Men - take a few minutes and review this system. This handy, color coded system, could help save your life, or the life of a loved one.

Click here to see it.

I wonder where I can get one those handy color coded charts for my friend's kitchen, personally, I'd never need one.

Grandpa Shocks and Amazes

Yesterday, I got a scary text message from my brother - grandpa has chest pain, heading to hospital. Within an hour, my otherwise (relatively speaking, for an 88 year old) healthy grandpa was in ICU, sedated and on a ventilator. What happened, nobody quite knew.

Well, the good news is, he's back! Today, he's off the vent (or as my E.R. doc brother wants us to call it, the "blower"), talking and in good spirits. In theory, tomorrow or the next day, he'll go home from the hospital.

I can only hope that I inherited just a little bit of his incredible set of genes.

Still, the Dr.'s aren't quite sure what's next or what caused the incident in the first place - but I can tell you one thing, we're all feeling might lucky and amazed that we got him back.

Life, ladies and gentlemen, is fragile - cherish every single moment of it.

For those interested in saying a misheberach over him, his hebrew name is Yitzchak ben Rachel.

Adding Sound To A Web App

I was working on an app yesterday that called, I belived, for a few sound effects, to give it that polished feel. There were two challanges to solve, and here's how I solved them:

  1. How to play a sound based on a JavaScript event. I found the SoundManager did just what I wanted. I was able to hook up button presses and even AJAX events to specific sounds. SoundManager leverages flash, but you don't actually need to own or use the Flash authoring environment. As packages go, it's hard to beat.
  2. What sound to play. I'm not exactly sure who the istockphoto of sounds are, so I resorted to Googling around. I found sites here, here and utlimately here that had sounds I could easily download and appeared to have reasonable licenses.

The biggest lesson out of the whole experience though, was just how valuable adding the sounds to the app was. It was the equivalent of adding drop shadows and rounding the corners of the design - it doesn't make it look a little better, it makes it look much better. It's those little tweaks that add polish to an application and make it more pleasing to use.

Try adding a few subtle sounds to your next web app, I think you'll be impressed with the outcome.

Thursday, February 28, 2008

Earning My (Script-Fu) Blackbelt

I've been really impressed with The Gimp 2.4. It's been a really solid performer and with the short-cut keyz situation worked out, a breeze to use.

Today I had to scale about 20 images down to a height of 240px. I also wanted to experiment with different values of the JPEG quality setting. My first thought was to use ImageMagick, but the super handy convert script doesn't easily allow you scale to a specific height (you need to provide both height and width, or just width).

Then it hit me, why don't I whip up a quick Script-Fu plugin to do what I wanted? That script, combined with adding a short-cut key to it, turned out to be an ideal solution. It wasn't quite as automated as a shell script, but allowed me to visually inspect my changes as I went.

And best of all, It Taught Me To Fish, so now I'm more comfortable with scripting the Gimp.

Here's the script I came up with. Notice, it's not parameterized with respect to how the image is scaled or the JPEG quality. I did that on purpose because I didn't want to bother with prompting while using it.


(define (bs-script-fu-scale-and-save img drawable)
  (let* ((orig-width (car (gimp-image-width img)))
         (orig-height (car (gimp-image-height img)))
         (dest-height 240)
         (dest-width (/ (* dest-height orig-width) orig-height)))
    (gimp-drawable-transform-scale-default drawable 0 0 
                                           dest-width dest-height
                                           TRUE TRANSFORM-RESIZE-CROP)
    (gimp-image-resize-to-layers img)
    (file-jpeg-save 1 img drawable 
                    (car (gimp-image-get-filename img))
                    (car (gimp-image-get-filename img))
                    1 0 0 0
                    "Saved by Ben's scale-and-save filter"
                    0 1 0 1)
    (gimp-image-clean-all img)))
                    
                    


(script-fu-register
 "bs-script-fu-scale-and-save"
 "Scale and Save"
 "Scale an image down and then save it as a reduced jpg"
 "Ben Simon"
 "copyright 2008, Ideas2Executables"
 "Feburary 28, 2008"
 "RGB"
 SF-IMAGE      "Image to Scale" 0
 SF-DRAWABLE   "Drawable to Scale" 0
 )
(script-fu-menu-register "bs-script-fu-scale-and-save" "/Filters/Util")

I'm quite impressed with The Gimp's scripting capabilities. Yeah, it's Scheme, which is fun. But it's also highly dynamic, easy to find and read about existing functions, and provides an interactive console where you can try out expressions.

I found these docs here, here, here and here to be helpful in getting comfortable with Script-Fu.

To me, The Gimp wins big points for being so easily scriptable from a developer's perspective. Not so much for fancy effects, but because it allows me to apply my inner programmer to image problems easily.

Wednesday, February 27, 2008

Putting my wallet on a diet

OK, I've tried to be rational about this. I've gone through and cleaned out my wallet multiple times. I've taken out the membership card to the video store we never go to, Shira's old college ID, countless bits of paper, my dental card and whatever else I thought I could live without. My wallet was still bulging. It's gotten to the point where I find myself taking it out of my pocket when I sit in the car - that's not good.

So, I'm putting my wallet on a starvation diet. All it has in it right now are:

  • A personal and business credit card
  • ATM card
  • Driver's License
  • Some cash (remember I'm married, so we're not talking much here)
  • A safety pin and a paper clip (which will both one day earn their own blog post, not doubt)

That's it. Finally, I can sit down again.

My plan is to add things back in as I find that I need them. Also, I'm thinking that I don't always need to carry around my medical card, I'll just bring it with me next time I go to the doctor. Same goes with my metro fare card - I'll just grab it the once every 3 months I actually use it.

I'm going to try my little experiment. If it goes well, I may try to pick up a money clip or smaller wallet to really complete the package.

So, tell me, how can this plan of mine backfire in the biggest possible way?

Update: So, Shira read about my plan. She doesn't approve. Specifically, she said that I should always have my medical card on me. Without it, the ambulance leaves you at the curb and the hospital won't let you in. I laid out my argument as to why this was most likely not true. I think it was a solid argument.

The medical card is now back in my wallet.

Back at the Orthodontist

So I find myself at the orthodontist this morning. It's not for me, and it's not for braces - whatever, forget why I'm here. I just am.

And I have to say, I'm not all that pleased about it. This is bringing back memories of going to the orthodontist as a kid, and they are, needless to say, not great memories.

Right now, the office here is quiet, but I overheard the receptionist say that they expect 50 checkups this afternoon. We better not be here for that rush. I'm getting sweaty palms thinking about it.

I have two strong memories from my braces days. First, was the hurry up and wait. Invevitably, we'd arrive to my appointment late. Then we'd wait in the waiting room, then I'd wait in a dental chair, and then someone would finally check me out. The check took about 45 seconds. That's it. Why they couldn't check me in the waiting room, or if we had them, via a web cam. Why? What a waste.

My second memory was of the toothbrushes. Looking back, this made a lot of sense - you're dealing with 11 year old kids after school, they probably have a good two meals stuck in their braces. So, what do you do? You have them brush their teeth before the appointment. Sounds sane. How it was executed, I have to think looking back, wasn't.

At the beginning of the year, you were given a toothbrush, a plastic tube, and a number, say 397. At the start of your appointment, you'd grab your toothbrush from a gigantic rack (well, when you're 11, it looks gigantic) and brush. This means pulling #397's tube, taking out a toothbrush that had been sitting in an airtight tube for weeks, if not months, brushing, and sealing back up again.

Yuck.

Now imagine you're a dyslexic 11 year old? I must have brushed my teeth with 397's, 937's, 793's brush. I can't imagine I used my own toothbrush every time. Sorry my fellow ortho patients.

Like I said, not the funnest of memories.

--Ben

Tuesday, February 26, 2008

OO: Public, private and pubment?!

I was studying up on the MzScheme OO library (for some potential MrEd development) and came across the pubment method decleration. I know all about public, private and protected - but pubment?

It's a pretty slick concept, check it out:

The stack% class declares its print-name method using pubment, which means that the method is public, but it can only be augmented in subclasses, and not overridden. The implementation of print-name uses inner to execute a subclass-supplied augmenting method. If no such augmenting method is available, the (void) expression is evaluated, instead. The fancy-stack% classes uses augment to declare an augmentation of print-name, and also uses inner to allow further augmenting in later subclasses.

pubment appears to allow you to write a method, and yet give your subclass a way to intervene, in a controlled way, during the method execution. The result is that your subclass can provide functionality without it having to re-implement or delegate to, an entire method.

Interesting.

I find this fascinating, and useful, not because it's Scheme and Just Better, but because it reminds me that there's more to OO than what Java or C++ decides is OO. It's also a powerful reminder of what happens when your OO framework is a user-level add-on, and not a core part of the language. Programmers will not only come up with novel OO conventions, but will also be able to implement them fairly easily.

A poweful lesson, if you ask me.

I wonder how pubment compares to Aspect Oriented Programming. Guess I could try that in MzScheme too.

Retro Gadget Watch: NEC MobilePro 700

I stumbled on this discussion of what cheap laptop you might want to pick up for blogging purposes:

I tried a number of things (Tandy Model 100, HP Jornada, Palmpilot w/thumboard, alphasmart laptop, etc), but found my favorite to be the NEC Moblilepro 7xx series. I have an ancient 750, but I find it perfect for writing txt files to a Compact Flash card, which I then unplug and transfer to my desktop in seconds. I've been using it for years now, and can't imagine anything better.

Now, this is not a palm-sized machine. It's a tiny tiny laptop, just bigger than a VHS cassette. However, it's the smallest instant-on machine with a nearly-full-size, very usable keyboard you'll find.
The later models, 770/780/790 are readily available on ebay from $60 to $150.

And sure enough, the NEC MobilePro 700 does appear to have an impressive set of features, including a touch screen, a full touch-typeable keyboard, and even voice input. With a CF card slot, it should be possible to cajole the files onto a USB thumb drive somehow.

And they really do go for under $100 on eBay.

I was thinking this might be an ideal machine to pickup for traveling when I didn't want to travel with a real laptop. I could blog on the device and then upload the content when I was near an Internet cafe or at the hotel. Or, I could always make use of the blazing fast 33.6 modem to upload content.

Did I mention it runs Linux?

It's no OLPC, but it does look like it would be a fun device to kick around.

Monday, February 25, 2008

First Sighting and Tagline Of The Day

<Gulp>. Passover must be coming. You saw it here first.

And Rogaine wins the Tagline Of The Day contest with the pithy, yet perfect: "Use it or lose it."

--Ben

Update: My Mother-In-Law passed on another candidate for Tagline Of The Day. It's from Terrapin Grille located at Niagara Falls. Their tagline? The only thing we overlook is the falls. Nice.

Sunday, February 24, 2008

Video To Mix

One day, when I have a bit of free time, I'm so going to mix this video with some images I have lying around.

Unfortunately, the person who uploaded the video won't let me embed it - but trust me, it's worth a look.

Any suggestions for what imagery I should mix with this audio?

GUI Scheme Programming Tip: Drag and Drop Capability

Here's a tip - if you're looking to develop a desktop GUI application in Scheme and you need to have drag 'n drop capability, you should be looking into the pasteboard object in PLT's MrEd library.

This took me a while to find, as I made too very poor asumptions:

  1. An Editor widgetw would be useful just for text editing
  2. A pasteboard had something to do with Cut-And-Paste

Both of these assumptions were wrong, and if I had read through the manual a bit further I would have found the following:

Programs that need a canvas with dragable objects -- The drawing toolbox provides a generic drawing surface for plotting lines and boxes, but many applications need an interactive canvas, where the user can drag and resize individual objects.

Which is just what I wanted.

Luckily, the kind folks on PLT mailing list striaghtened me out in a hurry.

Friday, February 22, 2008

Travel Tip: Plugging In On The Plane

Last time I was on a plane, I noticed what appeared to be a power plug next to the seat, but didn't fit any adapters I had seen before. I finally got around looking this up for my next trip and learned:

American Airlines has retrofitted their airplanes for more leg room in coach, which makes it far easier to extend your laptop screen. And if you're on American, look for a "lightning bolt" symbol on the overhead bin row — these are the ones with power port-equipped seats. Most airline laptop outlets require an EmPower plug, which is not the same as a car lighter plug.; when buying an adapter, check if it has a convertible plug that works with both airline and car chargers

Sure enough, for $10.00 I can convert my car adapter into one that's Airplane friendly.

What you say, you don't have a car adapter to power your laptop? How on Earth do you program for hours while your wife drives? Don't tell me you actually talk to her on 5+ hour trips? You can pickup an adapter for around $30 that should do the trick for both the car and plane. Your wife (or husband) may not thank me for this.

There's also an interesting warning from the above article:

Some airline passengers have found that they can plug a laptop computer AC adapter into 110V/400Hz airframe sockets, usually located under covers near the floor next to an exit door. Don't do this. Aside from the issue of running your adapter on 400Hz, these outlets are intended for medical devices during flight. If there's something wrong with your adapter and it trips the circuit breaker, someone could literally die before the problem is corrected — the breaker is difficult to access because it's located below the main passenger deck. If you see someone using any outlets on a plane other than the approved laptop charging outlets, alert a flight attendant.

Good to know.

New Shades and a Warning

Us in our new shades:

I know, I know - I might think I look pretty cool. But never forget, coolness has its limits (thanks John for the reminder!):

Wednesday, February 20, 2008

Tip: Ask if the camera is on first, not last

Here's a novel suggestion: ask if the camera is on before yous start harassing kids, not at the end.

One a more serious note - this video does raise an interesting question. What would I do If I were the head of PR at the Baltimore, PD, and saw this video? I'd start video taping all officer encounters with suspects and post them on YouTube. I'd flood the site with video. Just hire some high school intern to edit and post the video.

I'd make it perfectly clear what this was - one cop, having a bad day (or maybe one cop who shouldn't be a cop). As a bonus, people would see that 99% of the time, the officers on the force are doing great work under the most difficult of situations.

Someone at the Baltimore Police Department needs to pick up a copy of Meatball Sundae and study it. They need to realize that they are a business, and how they do business (such as leveraging YouTube) should be changing, just like every other organization needs to learn this lesson.

Thanks to Gavin Purcell for the find.

Review: Meatball Sundae

Meatball Sundae, by Seth Godin, is an important book for anyone in business to read. Its goal is to catch you up on the latest trends that are revolutionizing how people do business (and it's not limited to .com's either). Luckily, along with being important to read, it's fun to read.

It's a typical Seth Godin book, in that it's concise, easy to read, full of fun stories and has a can do subtext to it.

I know that Shira's glad I'm done with the book, as every few pages I'd holler out to her - hey honey, listen to this one.... She's essentially read the book, without ever having to pick it up.

I'm giving the book a 8/10 - not because it's not perfect, but because Seth has set the bar so very high. So, this book is good, but not quite as eye-opening and life changing, as say, The Dip. But still, it's good and meets its primary goal: educate the non-web savvy among us.

Tuesday, February 19, 2008

A Vista Friendly Local Mail Server Solution

A while back I found Free STMP, an easy to use SMTP server for Windows XP. This seemed like an ideal solution for PHP and Java development. But, I think I've found one that's even better, and it's Vista compatiable too:SMTP Server Emulator.

You download, install it and it runs as service. The app does what it promises - to the PHP and Java, it looks like a SMTP server, but mail is never actually sent anywhere. It just gets stored locally and is easily viewable in Notepad.

This approach to mail handling has some major advantages:

  • You don't need to worry about spam traps and delays when sending yourself e-mail. Trying to convince your gmail account that it should accept mail from some random laptop running a basic SMTP sever can be a real pain.
  • No mail is ever sent - so you can't accidentally mail folks when testing the application
  • Every mail message sent by the application can be audited, even those that don't have the developer in the To: field.
  • The totally local setup allows you to do development that involves e-mail even when not connected to the Internet. Like, say, when you're programming in the car (while your spouse is driving).
  • You can instantly inspect e-mails that were sent rather than waiting for them to arrive in your inbox.

Proof Of A Business Expense

Think the IRS would prefer the diagram I scribbled on our takeout
container over a mere reciept as proof that tonight was a work related
dinner?

I could just imagine sending my accoutant a stack of napkins, take out
containers and other temporary whiteboards at the end of the year. He'd
love me.

--Ben

Episode 1: Grandpa on How It Is

Here's Episode 1 of Grandpa on How It Is. This is the director's cut version - unedited and totally uncensored. My brother David gets credit for the shooting the video.

My Grandpa is one of the best storytellers I know, and like all good storytellers, never let's the truth get in the way of a good story.

Hopefully, this will be the first of many episodes to come.

Monday, February 18, 2008

Our Collaborative Art Project

Here's the result of an art collaboration between myself and the brilliant 3 year old artist who I had the pleasure of working with (and she's good with technology too, note the cell phone).

The contents of the picture include: the sun, moon, stars, 2 kissing elephants, and a magnifying glass. She chose the contents, and I'm sad to say, I did the drawing.

Kids have the most wonderful imaginations...

Update: I used The GIMP for this picture, though I should really have used Tux Paint. Tux Paint is a free drawing program for 3 - 12 year olds that runs on Mac, Windows and Linux.

Sunday, February 17, 2008

Kids are nice...

But putting them to bed and pigging out on ice cream and home made
brownies isn't so bad either.


--Ben

Keeping up with kids

You'd think we could easily keep up with a three year old and an 8 month old... but it's not as easy as it sounds!! Thanks so much to our NY friends for hosting us and for letting us play aunt and uncle for the day.

How cute cell phone technology is when it comes in pink princess!

Check out Shira having a heart to heart over the Jared jewelry box regarding the importance of jewelry. Men, this gets ingrained at a young age.

Hats off to Crayola for their Color Wonder technology, where the color only shows up "where it's supposed to." This supposedly means that your walls and furniture are safe. Fascinating. Just fascinating.

Whatever you do, don't ask me to choose who's cuter.

They Do This To Mess With Me

Changed the wipers blades on the cars today - and of course, had extra parts. They do this on purpose, just to mess with me. [1]

AutoZone was kind enough to print a handy receipt for Shira that told her exactly which size blades she needed for each of our cars. I'll mention them here to record them for next time, when such critical info may not be so accessible:

Acura TL: Driver side: 26", passenger side: 19"

Acura TSX: Driver side: 26", passenger side: 16"

Don't tell Shira changing the blades was trivial, I'd like her to think I did some serious car hacking this morning.

[1] - Yes, of course the part is useful - but go with me on this for a sec.

--Ben

Snail Mail Meets Blogging

The Find

Tonight, I had a half baked idea for doing a podcast and was curious how I could get the audio converted to text. I found enablr.com, which will do the transcription for me at $1/min. I was also surprised and impressed at anther service they off - blog distribution by snail mail:

You've got something to say, but not everyone reads the Web! Get your blog printed and mailed as a digest to family members, clients and prospects

Apparently, for $2.00/post, you can signup with the stenographr service, and they will happily mail your blog post to a recipient via the USPS. Fascinating.

I haven't checked it out thoroughly yet, perhaps it's a left over April Fool's day joke I've stumbled on. But I happen to like it. Don't think I'll use it, but I'm still impressed.

My Big Idea

This all brought back an idea I've had for quite some time but have never implemented. It's called, Blogging By Postcard. Here's how it would work: You're an avid blogger going on vacation. But you're going off to some remote location where internet access isn't really feasible. Or, more likely, your spouse will kill you if you trapse half way around the world and spend your time writing blog posts. What to do? You use the cutting edge blogbypostcard.com (or maybe? postcardrblogr.com). All you need to take along with you on your trip is a index card with the postal address of blogbypostcard.com. As you go through your vacation, you jot down notes on the postcards and, you guessed it, mail them to blogbypostcard.com.

As the folks at blogbypostcard.com get your notes, they post them on your blog for you - both putting up the image of the postcard (both sides!) and the text.

Sure, it might not be the most practical way to communicate with the folks back home, but 'cmon - how much fun would it be? And a few years from now, I'm sure those postcards would be precious memories.

I'm tempted to start the service and offer it for free. But of course, who would post my postcards when I was on vacation?

Seriously, one day I'm going to execute that idea...

Dev Tool Of The Night: Stand Alone IE 6

Why on Earth would someone get excited about an ancient, non-compliant browser, which has caused untold pain in the development and design world? Because,try as I might, IE 6 isn't going away anytime soon. This leaves one with a dilema - which version of IE should you have installed on your box? Or do you need two boxes? Or some fancy-shmancy virtual server setup?

Now for the exciting part -- thanks to this how to, you don't actually need to choose. Turns out, it's easy - just download IE 6, stand alone version and run it. There's no install process, just unzip and go.

This was a huge help tonight in diagnosing an odd IE 6 bug and should come in handy in many a dev session to come.

Friday, February 15, 2008

Crowned

So, they just put my crown in and now I'm waiting for the cement to
set.

It's times like these that I think about the deeper questions in
life....like my lord, how much saliva can one man produce! I'm a drool
factory!

Another few minutes, and this should be my last blog post about dental
work for say 6-8 months.

Happy flossing y'all!

--Ben

How to: Giving design direction for a new website

When you work with a designer to create a new website, inevitably, among the first questions he or she will ask you is What sites do you like?. Seems like an innocuous question, right? After all, you surf web like everyone else, how hard can be it be to pick a few of the sites you come across as ones that you like.

If you're like me, it's really hard. When I actually think about sites that I visit on a daily basis, none of them seem like much use for design inspiration - weather.com, Google and CNN just don't provide much in the way of design help for a new corporate web site or product.

So, here's what I've learned to do:

  1. Open up a blank e-mail message, ready to be sent to the designer
  2. Open up a new web browser and point it to www.css-galleries.com. If that web site isn't up, then head over to Google and search for CSS galleries and pick another site.
  3. Now, click on the first thumbnail shown in the gallery. This will take you to the website so you can get a closer look. Copy the URL into the mail message you've started. Go ahead and note in the e-mail what you like or don't like about the site. If you're completely non-phased by the site, simply note that it didn't do anything for you. Some ways you might want look at the site include:
    • Colors - Love a particular shade of blue? Is it too dark?
    • Use of images - Are images used in a way that you like? Could they be bigger? Smaller?
    • Textures / patterns - Do you notice any textures or patterns you like? Find annoying?
    • Theme - Is the site too retro? Too corporatey? Do you love the down home look?
    • Layout - do you like how information is organized? Is it a mess?
    • First impressions - is there just something about the site you like? Hate?
    Negative comments are just as useful as positive ones, so regardless of what catches your eye, note it.
  4. Repeat. Hit the back button in your browser to go back to CSS Galleries and choose another thumbnail. When you've done the first page, click on the "Next page" link in the upper right hand corner. There's currently 365 pages on the site, so there are plenty of pages to look through.
  5. When you've noticed that your comments are starting to get repetitious, then it may be time to stop. Are you seeing a trend in the positive comments? Great - then you probably know what colors, layouts, etc. you like.
  6. Look over the sites that worked for you - which of them really capture that elusive I like this quality? You'll want to shoot for around 5 of these sites. Put them at the top of the e-mail, along with what you like about each of them. You'll want to summarize what you like in 2 - 4 sentences. Finally, leave the complete list of your positive and negative comments in the e-mail, though put it at the bottom of the message. Put a short introductory sentence before those comments that reads something like "Below is a list of websites I checked out, my comments might be useful in giving you a better idea of what I like and don't like in a design."
  7. Send the e-mail to your designer
  8. Be prepared for followup questions and explinations

Be warned - this process does take some time. But it's time well spent. Good luck on the new site!

Thursday, February 14, 2008

Psst. Wanna buy a watch?

No seriously, want to buy a watch? i2x built the Watch Report Marketplace for Watch Report, the premiere watch review and news site. The Marketplace officially launched today and is now open for business. Christian, the man behind Watch Report, describes the Marketplace as follows:

The new Watch Report Marketplace is the easiest and most powerful way to buy and sell watches online.

I've asked Christian if the marketplace was for mere mortals like myself who don't own a Rolex or Omega, and he assures me it is (of course, it's also for watch aficionados). If you've got an old watch lying around, why not make a few dollars off it? Or, better yet, why not pick up a fancy new watch for your significant other - they're sure to love it.

If you have questions or comments about the site, drop Christian a line. If you find a bug, let me know and I'll fix it in a hurry! (What, ideas2executables has bugs in their software?! There's a first time for everything, I suppose).

Wednesday, February 13, 2008

Photoshop'acizing My Gimp

I've been playing with The Gimp, 2.4 on my new laptop and I'm quite impressed. Usually, I'd insist that the company I was working for pay the $1,000 or so for the latest version of Photoshop - but now that I am the company, I decided I should take a closer look The Gimp. For serious image editing, Photoshop is still the way to go, but I'm curious how far The Gimp gets me.

The basic feel of the Gimp 2.4 is solid, and it had no problems opening up client's PSDs. However, I noticed that I was tripping over myself while using it. This was because I kept using Photoshop key combinations, which of course, don't do what you expect. Check out this typical sequence:

  1. OK, I've got a selection I'd like to clear, so I'll hit Control+D
  2. D'oh - what happened?! Where's my image
  3. Wait a second, that's right, Control+D in Gimp duplicates an image. I'm looking at the duplicate.
  4. I'll just close this image and get back to work by hitting Control+W
  5. Argh, now it wants to interrogate me about whether or not I want save the image. Of course I don't want to save the duplicate, I didn't want it in the first place!
  6. Ahh, now I'm back to my original image. Now, how do I clear a selection?
  7. ...Find the Selection menu, then find the None option - Oh yeah, it's Control+Shift+A
  8. ...7 minutes later, repeat...

I'd hit Control+D a few times and I'd be ready to chuck out The Gimp altogether.

Of course, you can easily redefine the keys - and that's what I did today. There's actually some great resources on the web for making The Gimp Photoshop friendly, though they appear to only work in older 2.2 version. Setting your preferred key combinations is as easy as going to File >> Keyboard Shortcuts and following the instructions. It took about 20 seconds to fix this major annoyance.

If you want a Gimp 2.4 version of a keyboard file with some Photoshop friendly additions, you're welcome to grab mine here. If you have any suggestions for key bindings to add, let me know.

The other feature that through me off, until I remembered how it works, was the Floating Selection. Turns out, this is quite handy - and probably something I'd miss if (when?) I switch back to using Photoshop.

Besides, if I use The Gimp, I'll get to hack it in Scheme. How cool is that?

Tuesday, February 12, 2008

Casting My Vote

There, it's done - I voted.

Now I can continue to kvetch about our government...

--Ben

Another Reason To Vote For Barack

Here's another reason to vote for Barack: in Arlington, VA, he appears to be the only one talking. In the last few weeks, we've heard 3+ radio commercials, gotten 3 phone calls and had 2 people stop by our house and leave flyers -- all for Barack's campaign. We've heard exactly 1 Clinton radio commercial and absolutely nothing from McCain and Huckabee.

I mean, we aren't on any Republican mailing lists, but still, I'd expect to at least hear a commercial or two for the them.

Is Clinton pulling a Giuliani, and ignoring Northern VA? I don't get it.

What's supposed to happen is that Hillary is supposed to run these terrific ads that get me scurrying off to YouTube to search for her. But instead, I just hear Barack. I can't imagine how anyone undecided in this area would go for Hillary. But, maybe she'll surprise me.

Review: The Great Debaters

Last night, Shira and I caught The Great Debaters, a movie about a 1935 black debate team from Texas, that makes history by debating various white universities. While the movie wasn't perfect - it was predictable, the trailer gave a way a bit too much, and at times the pace didn't seem quite right - it was actually very good. It got across an important message: if you were black in 1935, you were fundamentally not safe in your own country. It was scary stuff, and the movie brought that home well.

The movie was produced by Oprah, and directed by Denzel Washington, so you can imagine it's going to be an uplifting and strictly PMA film. And it did that well too.

Put this on your list of movies to see (perhaps rent?) and make sure your kids see it too. It's too important a story to pass up.

Update: Two things. First, Shira thinks I'm being a bit too harsh on the movie. She thinks it was a really good movie and my implying that you should see it more out of educational value than entertainment value was off base. She's probably right.

And here's a thought. The teacher and sage in the movie is Melvin B. Tolson. Tolson is not only a teacher and inspiration to children, but also an activist, and according to his Wikipedia page, a writer and politician. But most surprisingly to me, his primary job description is that of poet. I don't know about you, but when I think of poets, I don't think of activists, or politicians, or inspiring kids. I think of a solitary craftsman creating hard to follow writing, which I won't get. So if this film did nothing else but to get me thinking of poets, and poetry in a different light, it was worth it.

Monday, February 11, 2008

Barack Obama - I'm Still Impressed

I've been a fan of Barack for some time now, and with the Virginia primary coming up, I figured I better make sure he's still the one that's earned my vote.

While my mind isn't fully made up yet - he's still impressing me. Check out these YouTube videos that I found while researching yesterday. I'm impressed not only by his oratory skills, but also by the specifics he's willing to go on record with. So often politicians can expertly answer a question without saying anything at all.

Claims like having full health care coverage for all Americans in 4 years are tough to make, and then deny. Or how about the video where he's telling a bunch of folks in Detroit that he's going to be especially tough on them when it comes to energy policy, and that their lobbyists have worked hard to avoid change. Those seem like gutsy statements to make.

Check them out and tell me what I'm missing. Better yet, share some links to some Clinton, McCain and Huckabee vidoes I should be watching too.

Barack on Isreal

Short and to the point - Barack, how do you feel about Isreal?

Barack on Iran

More on Isreal, Iran and the Middle East.

Barack on Oil

Here's Barack breaking the bad news to the Detroit Economics club - you guys are going to have to change, and you're to blame for part of this mess.

Barack On The War

Barack let's us know how he really feels about the war. Again, I think he's being quite blunt in an environment that is strictly on the record.

Barack Convincing Virginia To Vote For Him

This is a fairly lengthy speech Barack gave recently to bolster support in Virginia. Again, I find him going into specifics here that sound good to me - universal health care within 4 years, I'd like to that. He's either brilliant, or crazy.