Monday, June 30, 2008

Final Approach

We've just been given the word to pack up our electronics and start preparing for a landing. This vacation appears to really be coming to an end.

Any minute now I'm going to get scolded in German for not having packed up. We don't want that!

See ya'll on the ground soon.

--Ben

Day 10: Wandering Munich

The final day of our trip included a short stop over in a Munich. We wandered around, and of course, found our way into a beer garden. It's such a shame that we only had a few hours to look around - the city is quite gorgeous, and seems really accessible. It's also way more open and spread out than the Italian cities we've been visiting - which was a nice change of pace.

Looks like we're going to have to add Munich to our list of cities to come back and visit.

Special thanks to our friend Vivien - who was our seat mate on the flight to Barcelona that started this trip. She gave us all sorts of useful info about Munich that turned out to be invaluable.

OK, it's time to catch our train back to the airport, and then back to reality.

Wow, this trip went fast. But what an awesome trip it was!

Sunday, June 29, 2008

Day 9: Nice, Monaco and Monte Carlo

Yesterday we really lived it up and went on a tour offered by the ship of Nice, Monaco and Monte Carlo. It was nice being chauffeured around instead of having to figure out train and bus schedules. The day was short (had to be back on the boat by 2:30pm), so we only got a taste of each place.

Nice was nice. We were there as the market opened, so we got to nosh on raspberries, olives and a fresh croissant (an eclectic variety, but all quite good).

Then it was off to the tiny country of Monaco. Apparently all of Monaco fits into half of Central Park in NYC. The old city of Monaco was nice. We didn't have time to go into the Aquarium or Palace, which are both quite highly ranked sites. We did wander around, take in the spectacular views, and pay half a Euro each to use the toilets.

Then it was off to the main event - Monte Carlo. This was going to be the highlight of the cruise for Shira. Sure, Michelangelo's David was classic and Pompeii was impressive, but the Grand Casino in Monte Carlo - that is a sight.

But, alas, it was a let down. The casino looks nice from the outside, but the tables did not open until later in the afternoon, so Shira couldn't even play. The fun part was the people and the car watching.

Then, it was back to the boat. At Villefranche, we couldn't actually pull up to the dock, we had to drop anchor, so they used the lifeboats to tender us back and forth. Good to know the lifeboats actually work.

We relaxed for the rest of the day. Hung out by the pool, took in one last comedy show, enjoyed our last sunset on the boat, gambled Shira's last dollar and had a fabulous anniversary. It was a nice last day of the cruise.

A snapshot of Monaco:

The slowest turn in Formula 1 (approx 30 Mph):

Ben totally wiped from the day:

Friday, June 27, 2008

Day 8: A Glimpse Of Florence

Florence was our opportunity to leap forward a couple hundred years in history, from the Romans to the Renaissance. We went from traipsing around ruins to ogling great art.

We started the day in classic Florence fashion - standing in line, waiting to get into a museum. We waited a good 30 minutes before we could get into the Accademia to see David. Ahh, glorious, powerful, stark naked, David. It was pretty amazing, getting to see one of the world's most renowned pieces of sculpture. The details of David are exquisite, and I loved the worried look on his face - makes me wonder what's on his mind.

The Accademia also had a room full of plaster models, some of which were turned into stone, others of which had not. Personally, I found them just as impressive as the finished works of art. I also loved the idea making the plaster model before, literally carving the final product in stone. There's a software development metaphor in there, I bet.

We then hit a variety of other 3 star churches and such. I was quite impressed with the painted ceiling of Il Duomo. The audio guide explained how the scene was meant to be interpreted (it's a glimpse of the end of the world). From father time dying, to death losing his ability, and my favorite, the little angel ready to drive a nail into Earth to stop it's rotation - the whole story is told right there. It's not just gorgeous, but a fun story telling vehicle.

We finished up the day with a trip to the science museum (Instituo e Museo di Storia della Scienza). While not rated 3 stars, it had a nice collection of original instruments used by Galileo and others to run their experiments. One apptertus was used to study motion. The explanation mentioned Galileo used it to test out various materials, masses and other variables. Like most basic scientific research, it was tedious and on it's own not very exciting. But when put into the larger context one realizes that this was the birth of science. In many ways, we're still practicing this same tradition today.

The description of how Galileo used his telescope and observations of Venus' different visible phases (I think it was Venus, any way) to prove that the Earth rotates around the Sun was absolute genius. The tools may have been crude, but the thinking was not.

Finally, we made our way back to the train station and are now on the train back to Livorno - the city where our boat is docked.

Personally, I found Florence to be an easier city to take in than Rome. The place seemed to have a slower, more relaxed pace to it. Though, this may just be me having less heat exhaustion.

Next time I come back to Florence, I very much hope there is a next time, I'm bringing a detailed guide to the works of art here, and insuring lots of time to examine them.

A few photos before we put up the full set:

Us in front of Il Duomo:

Us at the top of the bell tower at Il Duomo:

Us with David in the background:

Thursday, June 26, 2008

Mastering An Italian Essential

So Shira and I made some important steps today in cracking the Italian culture. We've pretty much (though I hate to get cocky) figured out how to cross the street. This turns out to be a much more significant issue than you'd think it would be.

We first noticed in Naples that traffic at busy intersections wouldn't have any sort of stop light. There would be a crosswalk, but that's about it. It was a mystery to us when it was our turn to walk, and the traffic's turn to stop.

We got by in Naples using a trick that I frequently use when I visit countries that drive on the left side of the road - cross the street on the heels of a local. Sounds crazy, but it works really well, especially when you are jet lagged and trying to make your way in England or Australia and can't quite predict where the next car is going to appear from.

In Naples, one local heard us kvetching about a particular intersection and turned to us and in an Italian accent remarked: "Is Normal." And ventured into the intersection without a care in the world - assuming perhaps that he'd do more harm to the Vespas and Smart Cars than they would do to him.

Rome is in much the state Naples is in, if not worse. So, while exploring there today, we pretty much had to master the art of getting across there street. Here's what you do, in case you're ever in Italy.

  1. Don't wait for a break in traffic. There won't be one. You'll just be standing there all day.
  2. Look for a slight pause in traffic, and then make your move - just step out in the stream of traffic.
  3. Say a small prayer, hoping that the Taxi you just stepped in front of will slow down / stop.
  4. He won't show any sign of slowing down till he's right on top of you - so there's no use in actually trying to judge his response.
  5. If that went well, make your way further into the intersection.
  6. If you want, you can put your hand up like you are going to magically stop the cars. This will make you feel better, and will give them a target to shoot for.
  7. Repeat the above steps till you're across the intersection.

See, that's not so complicated? You just need to exercise blind faith that random strangers will stop for you.

Or cross with a local. Even then good luck.

Day 7: Rome In A Day

See Rome in a day? Not possible. But, we were able to at least get an overview. We docked at Civitavecchia and at the crack of down (OK, 7am) took a train into Rome to tackle a quick site seeing adventure.

We had planned to hit the Colosseum, The Roman Forum, various piazzas and a handful of fountains and finally the Spanish steps. We actually did it all. Though we were so exhausted at the end of the trip, we didn't even get a snapshot of us in front of the Spanish steps (OK, they're steps, they look great...let's move on...).

My favorite site was The Forum. It's a sort of graveyard/who's-who of ancient ruins. Temples, arches, columns, Vestigial Virgins - they got it all. They recommend spending the day there, and I can see why. With a guide or a good guidebook, I think you could totally bring 2000 years of history back to life.

If you're a history buff, or want to become one, this is the city and country you must visit. It's just so mind bending to walk through structures that were clearly in use 2000 years ago.

We did all our exploring today outdoors, so we were totally wiped (not to mentioned sunburned) by the end of the day. We did so much outdoor stuff that Shira actually remarked: "I thought I'd never say this, but I wish we were at an art museum." Tomorrow we'll be in Florence, and if all goes well, she'll get her wish.

9 years ago Shira was in Rome, and she's said since that he food there is among the best in the world. Lunch today helped prove her case - I finally got to try authentic Italian pasta, and it was superb. And the Gelato (ice cream) on every corner doesn't hurt either. Rome definitely gets two thumbs up in the food department.

We're now back on board, and ship is pulling away from port. We are in for an evening of gambling and improv comedy. Well, Ben's in for the comedy - we'll see about how Shira's doing.

Next Up: Florence!

Finally, managed to upload a few photos. Here's us at the Colosseum and us at The Pantheon:

Wednesday, June 25, 2008

Day 6: Visiting Pompeii

Shira and I saw Pompeii a bit differently. Where I saw magnificent 2000 year old ruins in amazing condition, she saw rocks. I saw a once in a lifetime opportunity to see one of the most remarkable archaeological finds of our time, and she saw an opportunity for blisters, heat stroke and sun burn.

I suppose we were both right.

What amazed me most was the shear size of Pompeii. It isn't a section of the town, or a few ruins - it is the whole dang town. From the rich folk's villa's to the no name studio apartments, from the theater to the laundry.

We opted to walk the site without a guide, which at first left me with lots of unanswered questions. Shira quick solved this for me by making up answers. Were they accurate? No, but they were entertaining. I did flag down a guide to explain the marble structures with circular holes in them (Shira explains: toilets, obviously - with side by side holes for his and her bathrooms). He explained simply, "Snack Bar" - of course, it was a buffet at the opening of the store. Made perfect sense. Though I liked Shira's answer better.

Bottom line: Pompeii is an absolute must see. Though bring plenty of water and some snacks, because the options once inside are few and far between. And it's hot.

We're currently on our way back to Naples (I'm typing this on my Sidekick) and hope to find authentic pizza on our return [Note: we did!]. Then it's back to the ship for a 6:30pm departure, and prep time for our next adventure. Rome!

Tuesday, June 24, 2008

Day 3: A Day In Malta

For the record, I'm tapping this message out at (36.16146,14.78795) - which is about 25 miles off the coast of Malta. The sun is shining, the sea is a perfect blue, with the sunshine glinting off of it. The sky is cloudless from where I'm sitting.

When we woke up this morning, we had a surprising site - our porthole, which all yesterday was filled with endless blue, was now filled with the skyline of a clearly Mediterranean country. We were officially in Malta.

We had a quick breakfast, and fled the boat. Rather than using one of the cruise offered trips, we decided we'd wing it. There's only one small detail - we had no idea what to see in Malta. So, last Saturday night, while in Barcelona, we used the free WiFi to do our research. Along the way, we recorded various waypoints to use for reference.

Our plan was to first find the main bus station, and then find the Ghar Dalam cave. After that, we'd head back to the port city of Valletta, do some shopping, and leisurely get back on the boat.

Things went mostly to plan. Finding the main bus station was easy because we had both signs, as well as the latitude and longitude plugged into my Geko GPS. We even knew to ignore the taxi drivers who offered to take us to the main city center for a mere 10 Euro charge. Within 15 minutes, we were there, and aboard our bus. Oh, and bus fair was 0.47 Euro / each. What a deal.

Finding the cave turned out to be a bit trickier. We had only a vague idea where it was and the bus driver was of limited help. Finally, we figured out we were in the right town, and got off the bus. After asking around, we did indeed find our way to the cave - we had missed the stop on the bus, and earned ourselves a 15 minute walk to site. The sun was out, the streets of Malta beautiful, and the harbor gorgeous - so we hardly suffered.

The cave of Ghar Dalam was interesting as expected. They hard part of the cave closed off, but you still got a feel for what they found there. The museum that accompanies the site was almost as interesting as the cave itself. Somewhere I read that the museum is laid out in a classic Victorian style - much more interested in impressing you with the shear size of the collection, rather than, say, educating you. It's amazing how many hippo teeth they found - I was surely impressed.

After Ghar Dalam, we made our way to Tarxien Temples. Tarxien is a series of ancient temples that date around 3200BC. They are in remarkable shape, considering.

Finally, we made our way back to Valletta, and got in a bit of walking around in the central city area. Turns out, there's tons to see there too. After a bit of shopping, it was back to the boat - and with a whole 20 minutes to spare!

My overall impression with Malta is a positive one. One surprising aspect was that the ancient ruins aren't off in some distant country side, but located right in town. I asked the guide at the Ghar Dalam cave about two structures in the back of the museum and he explained that one was a WW II pillbox and the other a watch tower from the middle ages. Or at least that's what he thought. Could you imaging having a structure from hundreds of years ago, far older than the US, and not knowing any details about it? Yet, for the Maltese, buildings from the middle ages apparently aren't that exotic.

I could definitely see going back to Malta and taking in more of the country.

OK, I think I'm going to try to post this entry using the ship's WiFi. As I mentioned in my last post, photos are too taxing for the slow connection, so you'll have to make do with plain text for now. There are plenty of photos on the way. Today, Shira took charge of the camera and she gets all the credit for any photos you like of the Malta side of things.

Time to go find something to eat...it's been like an hour since my last meal...

Monday, June 23, 2008

Day 1: On The Boat

[D'oh - this connection is both slow and pricey - $0.75/min - so there aren't going to be any photos with this post either. Oh well, coming soon.]

Here are some photos from our first day on the boat. I've got to say, we're both quite impressed with this whole cruising experience. The boat is brand spank'n new, and everything is quite shiny. We're able to find areas of the ship that are in party mode (like at the pool, as I write this) and we're able to find more secluded areas, as well.

Shira feared the worst for our cabin, and it turned out to be quiet nice. Yes, it's tiny, but adequate and not nearly as claustrophobic as we imagined. We were expecting two single beds, which is what we arrived to find - but they were pushed together to form a nice place to sleep. After sleeping on the hardest mattress of our lives a few nights ago in Barcelona (it may have been plywood, I wouldn't have argued with that assessment), this is heavenly.

Shira has yet to show any signs of being sea sick. Though, she tends to not look out the window or off side of the boat in general, and has found the swooshing of the water flying by to be an all around negative thing. Personally, I find it mesmerizing beautiful.

The shots below include: a view out our port hole, Shira holding up the latest in rescue fashion, during our mandatory drill, a shot of the general mayhem at the pool, and finally lots of photos of us being us.

We have all day at sea today, and then tomorrow we start touring. Which should be a whole adventure in and of itself.

Last Day In Barcelona

[Drat! The ship's WiFi won't let me upload any photos. Oh well, they'll appear as soon as we have a better connection.]

First, it's worth noting where I'm writing this post from. I'm lounging with Shira on Deck 12 of the Norwegian Cruise Ship, The Gem. We're in the middle of the Mediterranean Sea, surrounded by nothing but blue water, blue sky, a few wispy clouds and some small whitecap waves.

To my left is the Ship's pool, with hundreds of fellow cruisers sunning, swimming and generally getting sun damage. It's like out of a cruise commercial.

If you think this would be a good time, you'd be 100% right. Man, this is the way to go.

Anyway, here are some photos from our last day in Barcelona. We managed to visit the Cathedral, as well as take in the Maritime Museum. I should probably write more about what we saw and my impressions of the city. But who can think about blogging when the sun is shining like this, and there is food to be tracked down and consumed?

Needless to say, we had a great time in Barcelona, and would come back in a minute.

Here's our location on a Google Map that I wrote this blog post:


View Larger Map

Friday, June 20, 2008

10 Year Wedding Anniversary Adventure - Day 1

Here are some snapshots from our first day in Barcelona. The weather was perfect, and we managed to find great things to do. We are practically zombies at this point, but enjoying every bit of it.

One story that doesn't need a photo. I wanted to pick up some grape juice and bread for saying Kiddush tonight. However, try as we might, I couldn't find grape juice. I could get kiwi, guava and lots of other exotic flavors - but not grapes. So we decided to pick up a bottle of wine. We ended up walking out of the store with a boxed white wine - it cost all of 0.55 Euro - That's about 85 cents for wine. Now that's a deal! I'm a bit concerned to see what it tastes like -but it should do the trick.

Here's a smattering of photos - more to come later:

Us having just landed in Barcelona:

Us on some fancy looking steps in Barcelona:

The beach. Did I mention the weather was perfect?

The very cool Museu D'Historia De La Ciutat. The museum's basement consists of a series of paths that take you through the remains of Roman era Barcelona. You're actually walking on top of the ruins. Quite impressive.

Classic Us:

Park De La Ciutadella. Did I mention the weather was perfect? OK, I'll shush about that fact.

Thursday, June 19, 2008

The Vacation Really Begins

Made it to the airport, through security and to the gate. Even got a
frozen yogurt. The plane is on time - this vacation is a go.

We're headed off to our first ever cruise - and yes, we're totally
psyched. Shira just pulled out our cruise docs, which includes a handy
welcome pamphlet. The pamphlet has topics like "What Should I Pack?"
Guess it's a little late now. Either got it, or we don't.

--Ben

On Vacation

We may not have left the country, or even made it to the airport yet -
but I'm so on vacation.

I went for a run this morning, and just finished a breakfast of steak
and eggs (plus chicken wings!). Man, this is living.

Thanks to my Mom who not only provided the steak, but the instructions
on how to prepare it so it would be outstanding. Thanks Mom!


--Ben

Wednesday, June 18, 2008

Another View Of The Airforce Memorial

Yet another view of the Airforce Memorial:

Shot with my Sidekick and "enhanced" (if you can call it that) with The Gimp.

Review: Garmin Geko 201

I'm a huge fan of my Garmin eTrex GPS. It's one those rare pieces of hardware which is simple, reliable and does what it claims to do very well. But like most technology, after 2 years, it was time for an upgrade.

After healthy amount of research I settled on purchasing another Garmin GPS - this time, a Geko 201. The Geko promised to be an improved version of the eTrex - the same basic functionality, but in a smaller form factor. (That's a 3 1/2 x 5" notepad above, for size comparsion.)

Having played with it for a few days now, I can say, I'm happy I made the upgrade. Some reasons why include:

  • The Geko really does have a nice and small form factor. It's more cell phone sized, and seems like I'll have fewer excuses not to bring it along.
  • The buttons are much more comfortable to use. I found the placement and stiffness of the eTrex buttons to be surprisingly annoying. Paging through the different options could be a thumb-numbing experience. The Geko buttons are much softer to the touch.
  • Battery life promises to be long, and the fact that the device is powered by two easy to find AAA batteries is a plus.
  • The Geko 201 uses the same physical connectivity as the eTrex, and is compatiable with Microsoft Windows Vista.
  • There appear to be some firmware enhancements to the Geko, such as viewing not just all waypoints but those nearby to you.
  • Pretty much all the advantages of the eTrex are available on the Geko.

My chief complaint about the eTrex was that occasionally it would take an excessive amount of time to establish a satellite link. Perhaps it's been luck, or or maybe it's psychological, but the Geko does appear to be linking up pretty dang fast. I've done side-by-side comparisons with both the eTrex and Shira's Nuvi, and so far, the Geko keeps up with them both. It even connected faster than the Nuvi because it didn't have to load up the initial set of maps.

I'll be keeping a close eye on how well the Geko performs when it comes to establishing a satellite lock. It would be this metric, more than any other, that would cause me to re-consider the Geko. But for now, it's holding its own.

This definitely isn't a GPS for everyone. I certainly wouldn't venture on a road trip without Shira's Nuvi. But for travel, hiking, and as a general purpose tool, I think the Geko is an outstanding device.

Tuesday, June 17, 2008

Extracting Waypoints From A Garmin eTrex GPS On Vista

I wanted to transfer some waypoints from my Garmin eTrex to my Vista laptop. Luckily, my Dell has a built in serial port, so physically connecting the devices was easy.

Here's the recipe I followed - the end goal is to use GPSBabel. Here we go...

Install The Software:

  • Install Cygwin, including development tools like GCC and such
  • Grab the latest version of the GPSBabel source code
  • Config it. Build it. Install it.

Run The Software

  • Plug the GPS into your laptop via the Serial cable, and turn the GPS on
  • Run one of the following commands to grab data:
    # Grab all the waypoints from the system
    gpsbabel.exe -i garmin -f COM1 -o gpx -F waypoints.out
    
    # Grab all the tracks from the device
    gpsbabel.exe -t -r -i garmin -f COM1 -o gpx -F waypoints.out
    
    Notice the user of the magic filename COM1 - it's a DOS thing, if I recall. On linux, you'd do something like read from the file /dev/ttyS0
  • Visit a site like GPSVisualizer.com to easily plot your data.

Why did I use GPSBabel? It's what I know, it's scriptable, it provides easy access to converting between dozens of file formats and it's and all around simple program.

Oh, and all of these instructions also apply to the Geko 201 and 301 devices.

Review: Who Wrote The Bible

Richard Friedman's Who Wrote The Bible is an absolutely fascinating read. Richard gives the laymen a view into the word of textual analysis that's been done against the Torah (Old Testament), and essentially outlines the 5 individuals who he believes wrote it. He even goes so far as to name the people when possible.

The whole notion that 5 people put the Torah together, is viewed by some, as being completely heretical. However, the evidence that he provides is both strong, and quite sensible. For example, he suggests that stories like Noah's Ark are actually the combination of two author's stories. He's able to separate the two on the page (rendering one in regular font, the other in italic) - and the fact is, the two stories read quite sensibly.

If you're at all familiar with the bible, I think you'll really enjoy reading this book. Sure, it may challenge some of your beliefs, but no more than say taking a Biology course has to challenge your belief that G-d created you. Friedman is aware that what he's discussing will come across as potentially diminishing to Jews, Christians and Muslims, but I think he does a great job of showing respect here.

Ignorance isn't the answer - just like Jews don't need to fear scientists, they certainly don't need to fear linguists. If anything, your appreciation for the Bible will probably increase when you consider the remarkable way Friedman suggests it was constructed.

Amazon Listmania For Story Telling

Browsing around on Amazon, it occurred to me that their Listmania might be a clever way to tell a story.

So, here's my first attempt - it was of course inspired by my 10th Wedding Anniversary coming up later this month:

Tools To Make It To 10 Years Of Marriage

What items did I miss? Amazon makes it really easy to create these kinds of lists, so you should give it a try and share the URL of your results in the comments.

Monday, June 16, 2008

Launch: ListingClips.com and My Voice Over Career

I'm excited to report that i2x just helped launch a new service: listingclips.com. ListingClips allows you to annotate a traditional web listing (like a Real Estate or eBay listing) with your own audio. sales pitch description.

But rather than me use this traditional, text oriented medium, you can actually hear the website in action:

Click To Listen

So there you have it, the launch of both a cool new website, and my voice over career.

I think the ListingClip service will succeed nicely. I think my voice over career is all but over. Oh well, it was fun while it lasted.

Check out ListingClips.com and as always, feel free to contact me with any issues or questions you may have.

Sunday, June 15, 2008

Google Maps - A Better Way To Get Content To Overlay The Map

A while back, I posted a solution to the question: How do I get content on top of a Google Map? In the last few days, I've found there to be a more Google Like, and perhaps more Kosher, approach.

To get stuff on top of a map, you should use either a Custom Control or a Custom Overlay. Use a control if you want your content to be on top of all the Google map elements (like icons and the info box), and use an overlay if you want your content to intermix with the map elements. Overlays are also nice because they are easily associated with a latitude and longitude, and will do The Right Thing when you drag the map around (mainly, move with the map). Controls are don't move around when you drag the map.

It turns out, creating a custom overlay and control isn't particularly hard - they both reduce to creating your content dynamically as an HTML node, and then adding it into the map's DOM. Sounds tricky, even looks kinda tricky, until you see an example.

As an example, here's an HtmlControl I whipped up that takes in an arbitrary HTML node and turns it into a map control:


function makeHtmlControl(content) {
    function HtmlControl(content) {
        this.content = content;
    }
    
    HtmlControl.prototype = new GControl();
    
    HtmlControl.prototype.initialize = function(map) {
        map.getContainer().appendChild(this.content);
        return this.content;
    }
    
    HtmlControl.prototype.getDefaultPosition = function() {
        return new GControlPosition(G_ANCHOR_TOP_LEFT, new GSize(7, 7));
    }
    
    HtmlControl.prototype.printable = function() { return false; }
    
    HtmlControl.prototype.selectable = function() { return false; }

    return new HtmlControl(content);
}

It's used like so:

  var someButton= new makeHtmlControl($E('a',
                        {href: '#', 
                         onclick: function() {...}}, 
                        "Click Me!"));
  map.addControl(someButton,
                 new GControlPosition(G_ANCHOR_TOP_RIGHT, 
                                      new GSize(10, 10));

In the above case, $E(...) references a library I use to create DOM nodes in a compact fashion. In this case, it's just making an a tag.

It's definitely worth getting to know how to use both custom overlays and controls. I think they are one of the keys to making your maps have innovative and imaginative behavior.

Friday, June 13, 2008

Building A Mobile Website In A Hurry - Swiftmob.com

While walking through the neighborhood yesterday, we came across a house for sale with a tag under the for sale sign. It read something to the effect of:

To learn more about this house, text: kw45 to 881-50

I couldn't resist doing so, and in a few moments got back a message that said:

3128 S. 12th St. Arlington, VA - 3/4BD, 1BA, $2,050. Realtor: Bryan Taylor (703-216-2489) Additional Details and Photos: http://kw45.swiftmob.com

First, I was immediately impressed with the service - simple and effective. When I visited the website in my sidekick, I was indeed greeted with more information in a totally readable format.

When I got home, I looked up swiftmob.com. I got some good news, and some bad news. The bad news is, they don't seem to offer this text a keyword to a number service to the general public. Apparently, the Bryan above has a special deal with them as a tech partner. But, the good news is that they do offer creation and hosting a mobile site for free.

So, I gave it a try. And in a few minutes, I had: http://i2x.swiftmob.com. That's right, Ideas2Executables now has a mobile friendly presence.

The service is really quite basic, but I think effective. The sites that get built are very beginner-level-1994. But, on a cell phone, it looks pretty decent.

A search for siwftmob.com sites turns up some clever uses, such as: Election news and WeMedia Conference. The conference idea is a good one, as folks are no doubt wondering around your conference with a cell phone, and now they can easily check the schedule and such.

I think this is a fun and useful find. It's definitely worth taking a few minutes and getting your mobile version setup. I'm thinking it could even be a way for someone who really knows absolutely nothing about the web, to make a website. It's that basic.

Check out the i2x version on your cell phone by filling out the following form:

Thursday, June 12, 2008

Bad Programming Style Of The Day: Really Poor Use Of Error Supression

Attempted to run a customer's existing PHP application today, and when I visited the index.php, was greeted with a blank, white screen. I added in print statements, and turned on logging - and still, just a blank screen.

After much poking around, I finally narrowed down the cause of the broken app, as well as the silence to:

  return @pg_pconnect("host=".$this->hostname.$port." ...);

Ahhh, the @ operator. Perhaps useful in some contexts, can be an absolute pain in others (dare, I say most). This operator suppresses errors from the function it prefixes. This is useful if you want deal with an error another way, than simply blurting out a message.

But what idiot puts the error suppression operator in front of the DB connection call, perhaps the most likely to fail call in the system, and the one you'd want to debug the fastest? I'm telling you, what was this programmer thinking?

(Whew, I feel better)

Back when I used to do code reviews, there were few things as egregious as swallowing exceptions. I had a whole 30 minute speech prepared for the programmer who made that slip-up. And once you got that speech, you wanted to do anything to avoid sitting through it again...

Exciting Times at PLT Scheme - PLT Scheme 4.0

While I've been developing apps in PLT Scheme lately I haven't really been following the 4.0 effort. Though, today I read their Coming Soon Announcement. I have to say, I'm impressed.

4.0 appears to be a bit risky in the way they chose to tackle implementing Scheme. As explained in the post, the previous versions of PLT Scheme worked as follows:

PLT Scheme was originally conceived as R5RS Scheme with some extensions to make it practical, and with useful tools (notably an IDE) and libraries (notably a GUI library) built on that core.

This is the classic approach to Scheme - nail the core, then add on to it. But 4.0 is a different:

Version 4.0 is a fresh start in the way that we present PLT Scheme. It’s a new language. PLT Scheme is a dialect of Scheme, certainly, but it’s not merely a superset of R5RS, R6RS, or other standards, and those standards are not really the best place to start understanding PLT Scheme. At the same time, the unique extensibility features of the PLT Scheme language and tools allow them to support other languages easily, including R5RS (though a new plt-r5rs executable), R6RS, and more.

So, PLT Scheme is their own flavor of Scheme - with the ability to be morphed into one of the standards. Very interesting, and I think gutsy. By programming in PLT Scheme, I'm drifting farther and farther away from the other Schemes out there. Of course, by using PLT Scheme I'm also using a language which is more production ready / feature rich than just the core Scheme.

As for what's new in 4.0 besides the development philosophy, we have:

Improvements to the PLT Scheme language include better syntax for modules, better support for optional and keyword function arguments, more expressive syntax for structure types, streamlined hash-table operations, new syntax for list comprehensions and iterations, a more complete and consistent set of list and string operations, and reduced dependence on mutable pairs. To current users of PLT Scheme, these changes will seem like the big ones behind version 4.0, but they’re small compared to the overall re-organization and the accompanying documentation effort.

Oooh, that all sounds like good stuff. Time to head over to the 4.0 docs area for some light reading.

They've also provided a nice, graphics based, tutorial which is a good read for anyone who's still not quite on board with this Scheme stuff, or if you're like me and want to see some 4.0 PLT Scheme in action.

Congrats to the PLT team, seems like their hard work is really paying off!

Wednesday, June 11, 2008

Gotcha of The Day - Chipmunk / Double Speed mp3 Files In Flash

Apparently, on some versions of flash, an improperly encoded mp3 file is played at double speed and sounds like the chipmunks. I haven't heard the problem, but one of my clients ran into it.

The solution appears to be:

The Macromedia Flash player has a problem playing files that are encoded at a rate that is not a multiple of 11.025 kHz. This effect is sometimes called the "chipmunk" effect: the file is played at double speed. To avoid this, encode MP3's at 11.025 kHz 22.050 kHz or 44.100 kHz.

So there you have it - when you encode an mp3 file to play in a flash movie, make sure it's at one of the above rates.

The best news is that you can even fix the issue with lame:

To force Lame.exe to resample your input file at 44.1 kHz, add the following command line switch:

--resample 44.1

Update: You can process a whole directory of corrections by doing:

 mkdir 8khz
 mv *.mp3 8khz
 for f in 8khz/*.mp3; do echo $f;  lame --resample 11.025 $f  `basename $f`  ; done
 mv 8khz ~/trash

Signs Of Life

It's a meager start, but I do believe those are green strawberries! We planted some strawberry plants assuming they would just die, and what do you know? There's hope!

See, half assed gardening doesn't always fail.

For The Record: A Home Improvement Business Idea

OK, as long as I'm thinking about getting ideas into the permanent record, here's one I had a few days ago while on a run. It may be cruddy, but it's been knocking around in my head long enough - time to get it on paper.

So, I'm running along and notice a whole bunch of houses for sale. This, plus a bit of oxygen deprivation, triggers a thought that a co-worker Mike R. had mentioned to me years ago: don't wait to fix all the annoying things about your house until you move out. Fix them now, so you can enjoy the benefits of having done so. (That's not a direct quote, but it's close enough).

Which triggered this idea - what if you had a small business that specialized in real estate staging come in and stage your house. That is, prep it be sold - fix all the glaring issues, perhaps re-layout the furniture, put stuff in storage, etc. Now, you take this ideally staged house - and - just live in it. Don't sell it. Just enjoy.

Something like: stageitbutkeepit.com. The person doing the staging would know all the contractors and folks to call to get all your woes fixed in a hurry. And after an intensive cleanup session, the house would be like a new home.

Of course, parts of this idea don't work - part of staging is removing your presence so that someone else can move in. But still, I'm sure (and this is me guessing) part of it is doing things like fixing that leaky faucet, and getting the yard landscaped (or at least weeded).

So there it is, the idea. Hmmm, maybe I just described the job of a good cleaning service? No, I think it's more than that...

Another Reason To Blog - Getting It On The Record

Check out this CNN Article, it's about harvesting solar power from space. A quick summary:

Yet Mehta has another solution for India's chronic electricity shortage, one that does not involve power plants on the ground but instead massive sun-gathering satellites in geosynchronous orbits 22,000 miles in the sky.

An interesting tech piece, sure, but what really caught my attention was that this was an idea I had when I was like 12 years old. If I had blogged about it then, I'd be considered a visionary today (OK, that's a stretch). Instead, I'm just some guy who says he had thought about the idea.

Which brings me to today's reason to blog: getting your ideas down in the permanent record, which is the internet. How cool is that you can record some trend or idea, and a few years later have it come true. And you've got the evidence to show that you were thinking about years ahead of time. Think of the bragging rights?

Hey, it worked great for Leonardo da Vinci. His notebooks demonstrated concepts helicopter and tank. Perhaps he was the original blogger?

The only drawback, of course, is all your crappy ideas are in the record too. Oh well, no system is perfect.

Sunday, June 08, 2008

A Happy Birthday and MySpace Lessons

Happy Birthday to Brady - holy cow, he's 9! How did this happen?

Besides a good time hanging with The Boys, eating cupcakes and tossing
the football around, I got MySpace profile hacking lessons from the
master - Caleb.

Caleb used coolchaser.com to customize my MySpace profile. He explained
to me the right term to describe a cool page - it's "intense" (vs hip,
rad, cool, phat, etc.). It's not easy keeping up with the kids today.

We gave Brady a kid's digital camera - it'll go great with his blogger
account that I plan to get him for his 10th birthday ;-). Perhaps not.

--Ben

Getting Joomla sh404SEF To Work On Microsoft IIS

I was working with a 1.0 version of Joomla and wanted to get the sh404SEF module to work with IIS. It wasn't easy, but in the end, I got it all working as though it were running under Linux Apache.

Here's a few things I did to make this happen:

  • Made sure the global config option in Joomla for Search Engine Friendly URLs was turned on.
  • Installed the Ionic's Isapi Rewrite Filter for IIS. This filter gives IIS rewrite capabilities that basically match that of mod_rewrite. Install instructions can be found here.
  • Installed the rewrite rules mentioned here in IsapiRewrite4.ini.
  • Added these additional rules to IsapiRewrite4.ini:
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteCond %{HTTP_URL} ^(/component/option,com) [OR]
    RewriteCond %{HTTP_URL}      ^.*[.]html.*$
    RewriteRule ^(.*) /index.php [QSA,L,U]
    
  • In the sh404SEF configuration, advanced section, I chose:
      Rewrite mode:  with .htaccess (mod_rewrite)
    
  • Now here was the really tricky part. In apache, if you rewrite a URI from:
      /Learn-About-My-App
    
    to:
      /doc?title=Learn-About-My-app
    
    the environment variable REQUEST_URI stays /Learn-About-My-App. In IIS, REQUEST_URI is updated to /doc?.... The result? sh404SEF won't work with IIS. To fix this, I made the following the very first line of code in components/com_sef/sef.php:
      $_SERVER['REQUEST_URI'] = isset($_SERVER['HTTP_X_REWRITE_URL']) ? 
         $_SERVER['HTTP_X_REWRITE_URL'] : $_SERVER['REQUEST_URI'] ;
    

Good luck getting IIS to play nice with Joomla - I've learned first hand, you're going to need it.

Friday, June 06, 2008

Made it!

Whew, they held the plane. Got lucky.

--Ben

In Limbo

Check out the monitor in the photo? Guess which flight we are on? The
red, delayed one, of course.

We did make it out of Bozeman, and now have to attempt to make our DC
flight. At this point, it's going to take sprinting and luck to make
this happen - as our flight technically left 6 minutes ago.

While waiting to land, we had to circle for about 20 minutes. As Shira
rightly brought up - oy, think of the gas they are wasting! That's got
to be painfiul for the Northwest - knowing they've got planes just
burning dollars in the sky.

The door just opened...starting sprint in 3..2...1..go!

--Ben

Yellowstone In A Day

As expected, Yellowstone was phenomenal - a must see. We got really lucky with the weather, as it was supposed to be raining today. It started to rain a bit, so we put our rain gear on, at which point it cleared up. Classic.

We did a 5 mile hike (Beaver Pond Loop) as well as a driving tour to catch the main sites of the park. Our driving tour included Old Faithful, a variety of other geysers and hot springs, and various water falls. Not to mention breathtaking scenery. We even found the park's petrified tree.

As for wildlife - we saw bison, elk and deer. Nothing too exotic, but nothing that attempted to eat us, either. Little known fact: a bison can weigh up to 2000lbs, and run 30Mph - that's 10x faster than a typical person. Translation: don't mess with a bison.

I took hundreds of pictures, and hopefully, will post a fairly complete album on Picasa. For now, here's a small sampling from the day. It's worth noting, the shot of Shira with the geyser going off in the back ground is, in fact, Old Faithful.

What a day! Can't wait to get back and visit again.

Thursday, June 05, 2008

Yellowstone Arrival

We made it to Yellowstone - whooo!

More pics to come at the end of the day...

--Ben

Wednesday, June 04, 2008

Blogworthy Office Items

We stopped by a friend's office before we headed out to dinner tonight, and I was entertained by all the goodies he had there. Here are just a few items that I felt were blogworthy. There were actually more, but I think it's considered rude to hold up dinner just so you can play with the stuff you find in someone's office. At least that's what they tell me.

Dr. R. - isn't he cute? Every office should have a mascot. Especially one that lies around all day and pretty much does nothing.

An OLPC - I finally got to touch one. I was totally impressed by the hardware - it was way more solid than the toy like feel I expected. I was totally disappointed by the software. Within a few minutes of playing I had totally swamped the processor and the machine was running at a crawl. I think there's huge potential in the device, but in terms of sitting down and just playing with it, it needs help.

Now here's a device your office needs, but probably doesn't have. A Networked Shredder. Finally, you can print directly to the shredder, without the hassle of first getting your paper from the printer.

I'm feeling that my Ideas2Executables office space is definitely inferior after being here!