Hi! Thanks for visiting my blog. If you've received any value from my content would you mind supporting my new startup by downloading our browser add-on? It's called PriceBlink and makes online shopping a breeze. You can watch it in action here and download it for Chrome, Firefox, IE, or Safari by going to PriceBlink.com. Thank you and I hope you enjoy!

Motorola i730 Locked Down

Mar 22

I wanted to express my frustration with Motorola and how they’ve locked down some of their devices.  We purchased the Motorola i730 a couple of years ago for a GPS project.  The phone reports its location to a backend server and is presented to the end user on a Google map.  Today I stumbled across some old code that I wanted to get running on the i730 again.  I forgot about all the hurdles I had to overcome the last time I wanted to load software onto the phone.

The i730 comes completely locked down and a program called WebJal is necssary to load Java apps, ringtones, and even wallpapers onto the device.  Since I don’t have the patience to “get approved” to load software on a phone we paid $300 for, I decided to look for a patch.  I consider this synonymous with buying a new PC and then having to get authorized from the manufacturer to install software on it.  Pretty absurd.  At any rate, I’m not endorsing patching or hacking software, but I found this link useful in getting WebJal to run without registration.  Thanks to the author for taking the time to write this patch.

Read More

Dear Sonesta Hotel – Was it Really Worth my $60?

Mar 21

Jamie and I recently returned from a wedding in Miami. We had an incredible time seeing friends and catching up with everyone. We stayed at the Sonesta Hotel in Coconut Grove, which had great amenities and a decent view of the bay. That’s about the only positive thing I will say about the entire experience because I was so extremely dissatisfied with their customer service when checkout time came around.

We gave Sonesta our credit card assuming we’d be locked in at a rate of $260/night. While this isn’t cheap we didn’t mind splurging a bit for a Miami getaway. To make a long story short we were pretty upset (borderline pissed) to see a charge of $320 for the second night (Saturday). The lady at the front desk informed us that our rates were “variable” and they change based on occupancy. I’m assuming higher occupancy means higher rates. She also went on to tell us that we were notified of the rate change. I’m not sure who was notified of the rate change, but it definitely wasn’t Jamie or me. Nobody within the Sonesta organization took the time to notify us of the $60 price increase.

The lady at the front desk fought us to the end about their “variable” rate structure and even contacted the reservation desk. The reservation desk basically stuck with the same premiss and wouldn’t back down to the simple fact that WE WERE NEVER NOTIFIED BY SONESTA HOTELS OF THE $60 RATE CHANGE.

You may be wondering by now what point I’m trying to make. The first thing I have to say is what happened to the “customer is always right”? We all know in some circumstances this is a ridiculous statement, but in this situation it’s not. Let me explain why. The next time we visit Miami, and stay in the Coconut Grove area, we’ll nix the Sonesta Hotel idea and hang out at either the Doubletree or Ritz-Carlton. This experience has cost Sonesta Hotel our business, which means they’re losing several hundred dollars to their competition. Was it really worth my $60?

Now the problem could get worse for Sonesta. Let me run a not so far-fetched hypothetical situation. Let’s say 100 people read this post and 25% remember my bad experience at Sonesta and actually consider residing elsewhere. On an average stay of 2 nights @ $300/night this could potentially cost the organization $600*25 = $15,000. These are my forecasted “I’m going to cost Sonesta a lot of money” numbers. Dear Sonesta Hotels, if you think you can get away with taking $60 from me, then I can cost you A WHOLE LOT MORE.

My disclaimer is that I’m not a bad guy and I don’t condone blatant-business-bashing for no apparent reason. But I am a consumer and this is how I feel empowered to make a difference. Have you ever stood behind the counter or sat on the phone and felt completely hopeless? That’s how I felt standing behind the counter at the Sonesta Hotel in Coconut Grove. Maybe most people would back down (which I did) and do nothing about it (which I didn’t do). This is my response to the Sonesta organization that will get indexed by search engines and hopefully referenced for other price-aware consumers. Leveraging the latest web tools, consumers can stand up to mammoth organizations and fight back by voicing their opinions for the world to hear.

Dear Sonesta, was it really worth my $60?

Read More

Using Multiline Comments With Ruby on Rails

Mar 21

I recently posted that I was unsuccessful with multiline comments in Ruby on Rails.  It turns out that my usage was a little off and thanks to Golly for pointing this out.  I read previously about using =begin and =end to start and end multiline comments.  This didn’t work until I tried using these at the start of the line (as Golly suggested).  So your comment would end up looking like:

=begin
My crazy code begins here
and continues here
and ends here
=end

If you make sure that there’s no whitespace before the comment directives you should be good to go.  I’m relieved to know it’s possible.

Read More

Ether – Earn Money Selling What You Say

Mar 20

I’m blatantly stealing Ether’s tagline for this post, but it’s so good that I had to do it. If you haven’t heard of Ether they’re providing a service that allows you to setup a phone number where people can call you for advice. The advice can be anything from technology, legal, business, etc. It’s an extremely interesting and creative concept and I believe there’s a market for it. Think of all the blogs where authors give reviews, recommendations, and random thoughts about everything from Apple computers to Zimbra’s hosted solution.

When you sign up you’re given an Ether extension that forwards to any phone number you like. This can also be added to your website or blog that allows people to click “call now” to dial you up. I believe there’s a simple registration involved if you’re seeking advice. At any rate, I just recently got approved for the beta and am looking forward to learning more about the service.

Every now and then technology comes along that truly changes the way things are done. I think about all the countless hours of free tech help I’ve provided friends and family (and will continue to do so), but it’s cool to think about potentially providing a service to those I don’t know. I think most people tend to be timid when technologies like this become available, but haven’t we already learned that the web changes everything? I encourage you to jump aboard and get ready for the ride.

Read More

D-Link Wireless on Linux

Mar 17

I’ve spent many hour trying to get different wireless cards up and running on Linux. I’m no Linux guru, but can hackaway with the best of them to get something to work. I’m posting this for my friend Matt who is working to get his wireless card up and running. In a previous post we worked on getting the MADWIFI drivers installed to work with an Atheros chipset. Since we were unsuccessful with getting this running on his laptop (an old Dell Insipiron 4000) I decided to get my old D-Link DWL-650 Rev. P configured. Below outlines the steps I had to take to get the D-Link running on Fedora Core 4. This howto assumes the kernel source and gcc compiler are installed.

1. The first thing I had to do was download the linux-wlan drivers, which can be found here. I grabbed the latest version (0.2.3) and saved it to my home directory.

2. I then unzipped the file using tar -xf linux-wlan-ng-0.2.3.tar.gz

3. I then changed to root su - and entered the password. There are some modules that need root access to be installed.

4. Next I changed into the linux-wlan directory cd linux-wlan-ng-0.2.3 and configured the driver ./Configure

5. I was then prompted with a whole bunch of yes/no questions and pretty much accepted all the defaults. Since this is a PCMCIA card the first question asked if I’d like to build the PCMCIA driver. I accepted the default, which was yes.

6. As the configure scripts says….”type make and pray”

7. After successful compilation I typed make install

The drivers were successfully compiled and installed so it was time to configure the card to work with my router. In this example I’m going to assume a router name of “linksys” with WEP enabled.

8. Next I edited /etc/modprobe.conf, which loads wireless the driver on boot. I added the line alias wlan0 prism2_cs to the bottom of the file.

9. I know the steps are dragging out, but hang in there because it’s worth it! I then had to modify the wireless configuration file found at /etc/wlan/wlan.conf. I changed the SSID_wlan0=”" to SSID_wlan0=”linksys”. This means we need to create a configuration file named wlancfg-linksys.

10. Since there’s a wlancfg-DEFAULT file in current directory I did cp wlancfg-DEFAULT wlancfg-linksys. If you’re not using encryption you should be done with this step. Since I was using encryption I made the following modifications to the wlancfg-linksys file (modifications in bold):

#=======WEP===========================================
# [Dis/En]able WEP. Settings only matter if PrivacyInvoked is true
lnxreq_hostWEPEncrypt=false # true|false
lnxreq_hostWEPDecrypt=false # true|false
dot11PrivacyInvoked=true # true|false
dot11WEPDefaultKeyID=0 # 0|1|2|3
dot11ExcludeUnencrypted=true # true|false, in AP this means WEP is required.
# If PRIV_GENSTR is not empty, use PRIV_GENTSTR to generate
# keys (just a convenience)
# add-ons/ in the tarball contains other key generators.
PRIV_GENERATOR=/sbin/nwepgen # nwepgen, Neesus compatible
PRIV_KEY128=false # keylength to generate
PRIV_GENSTR=”"# or set them explicitly. Set genstr or keys, not both.
dot11WEPDefaultKey0=12:34:56:78:90 # format: xx:xx:xx:xx:xx or
dot11WEPDefaultKey1= # xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx
dot11WEPDefaultKey2= # e.g. 01:20:03:40:05 or
dot11WEPDefaultKey3= # 01:02:03:04:05:06:07:08:09:0a:0b:0c:0d
#=======SELECT STATION MODE===================
IS_ADHOC=n # y|n, y – adhoc, n – infrastructure
#======= INFRASTRUCTURE STATION ===================
# What kind of authentication?
AuthType=”sharedkey” # opensystem | sharedkey (requires WEP)

11. I then added an interface config file in /etc/sysconfig/network-scripts called ifcfg-wlan0, which contained the following:

DEVICE=wlan0
USERCTL=yes
ONBOOT=yes
BOOTPROTO=dhcp
12. And last but not least. I had to disabled selinux to get this to work. This was done by editing /etc/selinux/config and changing the line that says SELINUX=enforcing to SELINUX=permissive.
If I remember correctly that was everything I did to configure my D-Link DWL-650 card. When the moment of truth comes I highly recommend rebooting your machine. You could restart network and pcmcia services, but there’s always something magical that happens when you do a full reboot.I just wanted to give a special thanks to Ken Kowalski for his help with the selinux trick as well as showing me that iwconfig does not work with the linux-wlan drivers. No that’s not really Ken’s photo and I can’t believe there’s actually another Ken Kowalski, but he should get a kick out of this if he reads it.One last note once your wireless is up and running. You can scan for wireless networks with the following command iwlist wlan0 scan. If you find this post at all helpful then show some love and by the Linux Cookbook:

Read More