Damon Cortesi's blog

Musings of an entrepreneur.

Real-time Traffic

| Comments

I was about to head to bed tonight when I looked out the window and saw 90/94 Westbound jammed. Jammed so bad that people were exiting off the entrance ramp…which made for a fun time when they turned the wrong way onto a one-way street. But I digress.

So I hopped online to see if I could figure out what was going on. And checked a few traffic sites: CBS Chicago Traffic, Yahoo! Traffic, GCM Travel (an old favorite of mine), and finally, Traffic.com

Guess who had the most up-to-date and accurate report? That’s right, Traffic.com. Out of all the ones I looked at, actually, Traffic.com was the only one that even displayed some sort of delay! Not only that, but it gave very good detail too:

past Ohio St (#50b) - water main break blocking 3 lanes - 3-4 feet of water in roadway, 6 cars, 2 tractor trailors stuck.

Not bad - anytime I travel in the future, I’ll definitely be hitting up Traffic.com. Now back to watching people go the wrong way on the one-way. :)

And check it, they’ve even got a Chicago Traffic RSS Feed! Bet that makes Scoble happy… ;)

United - We Fly the Feudal Skies

| Comments

I’ve had the unfortunate need to fly on United quite a bit in the past few months. And it seems with every flight I take, my hatred of that airline grows. There are several reasons that I harbor this hate toward that particular airline. Allow me to expand.

  1. Economy Plus - This is quite the amazing scam. When checking in, United gives you the option to upgrade to Economy Plus (some 5 inches of additional legroom) for a given fee. Now should you choose to accept that, you will be guaranteed a nice roomy seat as requested. However, should you choose to bypass the offer there is another means of obtaining an upgrade to economy plus…simply by asking the gate staff! Now that doesn’t necessarily guarantee you’ll be able to do that, but it’s still frustrating that they’re trying to scam the money out of you up front, when a polite inquiry can get you the same. Which leads directly into my next point,
  2. Customer Service - I can count on one hand the number of times I’ve been greeted with a smile at the gate, or even acknowledged at all when walking up to the counter at the gate. Wait, let me rephrase that. When I haven’t had the fortune to be a first-class customer, United’s customer service is abhorrent. I understand treating first class customers a little bit better, but this is beyond that. Those in coach are simply treated as stains on the bottom of the plane that they would rather be rid of that get a blanket for. Perhaps it’s just my personal experience, but I’d like to think that I’m a fairly nice and engaging guy and do my best to be polite and friendly to the flight attendants. If only they would give me the same in return. However, the level of disparity between the customer service in first and coach is sickening.
  3. Everything is based on miles - When you have enough miles to reach a certain “status”, they treat you like gold. Until then, well…they treat you like another lump but it’s certainly not gold. This was made even more apparent to me last week as I was going stand-by for a flight that, oddly enough, was supposed to leave later than my original one (more on that later). As people’s names were getting called from the standby list, one poor passenger complained that several people ahead of him had already been called. What was the explanation? Because they had more miles. There is no first come, first serve on United…it’s $$ paid, best served. No wonder Southwest has been making such a bundle.

Now, as I mentioned I had a slight delay (2.5 hours) last week on United due to “Aircraft Availability”…whatever that means. Unfortunately, I had a delay of similar length today when traveling on Southwest Airlines. For some reason, I didn’t feel nearly as slighted as I did when traveling with United.

Perhaps it was the fact that there was no United representative at the gate to assist with the delayed flight. Perhaps it was the fact that a flight originally scheduled to leave later…left earlier. Perhaps it’s the fact that when I’m traveling on United, I am jammed into a smaller seat simply for wanting to save a buck. (I’m a small guy…it takes a lot for me to be jammed, and compared to Southwest…I was jammed.) Perhaps it’s the fact that Southwest, I’m rewarded with a standard size seat simply for wanting to save a buck. Perhaps it was the never-ending smiles and humor of the Southwest crew that kept my spirits up. Perhaps it was logical fashion in which Southwest had us transfer planes that was not engineered to screw half of us over. perhaps it was the illogical fashion that United uses to order standby passengers that grates on us “common-folk’s” nerves. Perhaps it was the fact that United never apologized for the phantom aircraft. Perhaps it was the constant, emphatic, and heartfelt apologies of the Southwest crew. Perhaps it was the customer service…

Whatever it was, it was interesting to be able to compare the two airlines in similar lights in such a short amount of time. And I really have to commend Southwest. As one of the few, if not the only airline to continue to post profits since 9/11, Southwest must be doing something right. And as in so many other industries, customer service is playing a big role. Allow me to quote Southwest’s Customer Service Commitment:

The mission of Southwest Airlines is dedication to the highest quality of Customer Service delivered with a sense of warmth, friendliness, individual pride, and Company Spirit.

Their president, Colleen Barrett even mentioned in this month’s spirit magazine that maintaining their culture has been difficult, but they have implemented numerous culture programs to maintain the quality of their customer service, and it shows.

I thank you, Southwest, for realizing that a smile still counts in this day and age. United - While I’m sure those that have no problem dropping $1,000+ on a ticket love your attention, those are only 24 seats out of a much larger plane.

With United, I can count on one hand the number of times I’ve been greeted with a smile at the gate, or even acknowledged at all when walking up to the counter at the gate. With Southwest, I can count on one hand the number of times they failed to make me smile…and I barely get past my thumb.

Extracting Unique Values in a For-each With XSL

| Comments

XML can be a wonderful thing, and XSL (eXtensible Stylesheet Language) can be even more wonderful in formatting XML output to do darn near anything you want it to.

Basic usage of XSL isn’t too difficult to get a grasp on, but the more advanced features such as keys, generate-id, preceding-sibling and others are not as easy to understand as I’ve found the available documentation and samples lacking.

My problem, specifically, was dealing with duplicate id’s within for-each loops, for example:

1
2
3
4
5
6
7
8
9
<?xml version="1.0" ?>
<store id=2>
  <donuts type=glazed>
  <donuts type=jelly-filled>
  <donuts type=jelly-filled>
</store>
<store id=10>
  <donuts type=glazed>
</store>

So what I wanted to happen was display one glazed and jelly-filled for store 2 and one glazed for store 10. However, what was happening was all or nothing - it would display all the donuts if I did not filtering, or just one glazed overall if I tried to use preceding. Then I came across preceding-sibling, which seemed to be what I wanted…but just wasn’t working, and I was getting very frustrated. I spent quite a bit of time trying to figure out how to extract this information, but came across no help until tonight when I stumbled upon this thread about preceding-sibling.

Apparently, XPath expressions normally return node-sets. Second, node-sets are processed in document order. So your select expression is returning the first member of the set “preceding-sibling::attribute/@name”, which is always the first in document order.

sigh

So what this means is that even though I was using preceding-sibling, I wasn’t using it correctly. It returns a set and it’s always ordered in the same way, which expains some of the results I received during testing…I just didn’t realize that’s what it was doing. Apparently the solution is as simple as using a “positional predicate”. So instead of “attribute/@name”, you would do “attribute[1]/@name” which would, in reality, reference the preceding-sibling as desired. An item on immediacy of preceding-siblings was also quite useful. Maybe the documentation needs to be better because other people have obviously had this problem as well!

Perhaps if Nessus didn’t spit out duplicate findings, this wouldn’t have been such a problem, but alas…it does.

Must Be the Italian in Me

| Comments

…but I am such a sucker for Mexican food! ;)

As you may know, I’m in the Santa Monica area this week for work. My co-worker has a friend here and he suggested a place for dinner tonight called La Cabana - they even have an official website.

This place was amazing. It was such authentic Mexican that it had me answering the waiter in Spanish. And the waiter wasted no time. He’d come over, ask if you were ready or if you wanted a minute. If you didn’t answer right away…he’d pause long enough to tap his pencil on his notepad twice and then say “ok, another minute” in a thick Mexican accent and then move on. It wasn’t offensive, though…he was just being efficient.

For dinner, I ordered the Camarones Eduardo - shrimp prepared in a spicy chipotle sauce with refried beans, melted cheese, rice and authentic corn tortillas. I swear I thought I was in either heaven or Mexico, I couldn’t tell which. It was simply amazing…so amazingly tasty. I would come back to town solely to have that one dish again.

…I’m still drooling over it and I have no doubt I’m going to dream about that dish later tonight. Oh man, that was good!

Google Local for Mobile

| Comments

Well Google has done it again…

I got a text message from Google this evening (which somewhat surprised me, but I guess I’m not surprised they’re keeping tabs on who’s been texting GOOGL) pointing me to their new Google Local for mobile site. Basically…Google maps for your phone. And let me tell you, it rocks… I really could have used it a couple days ago when all I had was the non-descript Hertz map. It’s fast…it’s accurate…and it’s my phone’s new best friend.

But how did they know my phone would support it? How did they detect the exact model of my phone when I visited the website? …nevermind that last question, I just checked my web server logs and perhaps it’s the big “AUDIOVOX-SMT5600/Mozilla/4.0” that shows up… hehe. In any case…I’m kind of impressed, but kind of scared.

Oh well…it will definitely come in super useful. Now if they could just triangulate my position and track me…which reminds me, may I should shut the application down. ;)

AFP Over SSH

| Comments

aka…when things just work.

For whatever reason, I set up AFP (Apple File Protocol) on my Linux box at home just to play with it and how it interacted with my mactop. Well, I’m on the road this week and brought my Powerbook with me. Wondering if AFP would be any more flexible than other networking filesystems, I googled around for AFP over SSH solutions. Before looking at the results, I tried tunneling TCP port 548, but received an error about not being able to access localhost. Eventually I came across this Mac OS X Security guide. Right on page 29, it mentions you can easily tunnel AFP over SSH on any arbitrary port!

ssh <username@afp-server> -L 10548:127.0.0.1:548

And then simply Connect to a Server and use: afp://localhost:10548

Awesome! I had to change it a little bit as my public SSH server and AFP server are on different hosts, but it worked like a charm!

Security software, however, does not always work the first time around. But tonight I was playing around with whax in preparation for some wifi testing. Slid in the CD, rebooted, and it was up and running shortly. Wireless card detected, Kismet worked fine after configuration, USB drive worked great, and the KDE gui is reaaaal pretty. Wine is even installed for a few of the win32 binaries. And I was happy to see that Absinthe also ran without a problem. Slick!

Finally - My Living Room!

| Comments

Well I was browsing for furniture the other day, as I frequently do, and finally found a media stand and bookcases that looked good and were cheap enough for me to get for my living room. This has been a work in progress for about the past 6 months. I have been a regular “browser” at Ikea, Cost Plus World Market, Crate & Barrel, and any other furniture store I could find, but could never settle on or find the right piece.

I took my lunch hour Friday to go pick up the new stuff after I took a quick look and determined it would be a good fit. Then I spent most of Saturday and Sunday moving things around and “assembling” the new furniture. My knees are sore from kneeling on the floor, I snagged one of my thumbnails pretty good on a cardboard box, and my body is just generally sore from lugging around the 3 heavy boxes it all came in, but man does my place look good now! I’m so excited to be finally rid of the moving boxes full of books that were still sitting in the corner of my living room and having my TV sit on a coffee table.

Here’s a before and after pic of the new room for your enjoyment, and there are a couple more pics here: Before wl-moving/Living_Room

After wl-living/IMGP2116

Who’s finally having a housewarming soon…

Update

Things I still need to buy: Picture Frames Coasters New Rug Plants - Big and Small Bedroom Clothes Hamper Tie Rack

…I still have a little ways to go, but I’m getting closer!

Bluetooth - Increasingly Useful

| Comments

My new favorite application…Salling Clicker.

Salling Clicker is our award-winning software utility that turns a mobile phone or PDA into an advanced wireless two-way remote control for your computer.

This thing is amazing! I set it up with my cell phone (Audiovox SMT5600) and have it configured to automatically pause iTunes when I receive or make a call. This feature alone is immensely useful now that I work from home. I usually have my Powerbook on my kitchen table while I’m in my office working, which is the perfect distance to give me some good background music to code or work too. But it wasn’t very efficient when somebody would call and I’d have to dash out to the kitchen to turn off my tunes. Now however, when somebody calls my cellphone, it just automatically pauses…and then resumes when I hang up! Color me impressed. And if somebody calls on my office phone, I can use my cell phone to pause iTunes, as well as an infinite number of other functions.

The only problem that I had during setup was that even though my device was listed as supporting phone events on the Salling website…the application was reporting that my phone wasn’t supported. It turns out that in the “Device Setup Assistant”, I needed to click the “Refresh List” button as the installer I downloaded doesn’t have the latest list of supported devices. This wasn’t very intuitive, nor do I recall any notification about needing to do this…so I fumbled around with the application for about a half-hour until I got frustrated and just started clicking buttons. It’s working great now, though, and definitely seems like it will be worth the $24.

Wicked

| Comments

We got all dolled up and went to see Wicked last night. We went to Ballo for dinner first, which is a great place to relax and enjoy some good Italian food while watching old 70’s movies. Wicked was great - the music was pretty good and the effects were very impressive, particularly at the end of the first act…it gave me chills it was so effective.

On a side note, Happy Birthday to one cool dude - sorry I couldn’t make it last night.

wicked/IMG_1998

PayPal Traffic Redirection

| Comments

Wow, this is pretty nasty. There is a new phishing/trojan email that modifies your dns server so all subsequent queries for PayPal go too a fake website. The trojan probably isn’t detectable by today’s anti-virus settings and the fake paypal website looks very well done and it’s particularly bad because it will look like you’re actually going to www.paypal.com.

This is pretty scary. Be careful out there and be wary of emails that are asking for your personal information or ask you to run an executable. No company in their right mind should be asking for that information via email.