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!

My Cingular 8125

Feb 20

I’ve added a Windows Mobile category to the blog because I have a feeling that I’ll be posting much more about it in the future. I’m retiring the P900 for now as I’ve picked up the new Cingular 8125.

Let me first say a couple of things before I talk about the new device. I am a HUGE Symbian fan which is the OS that runs on the P900 and many other great smartphone devices. You can see some pretty cool ones here. I used to do a good amount of Symbian programming and was truly amazed with the amount of functionality given to developers writing software for the platform. If you’re not aware, Symbian is a conglomerate headed up by Nokia with involvement from many other large phone manufacturers. The main problem I’ve had with Symbian devices is that they’re hard to get here in the states. You can generally find Series 60 devices on Cingular, but for high-end devices such as the P900, which runs UIQ, you’ll find those in the UK. While Symbian has majority market share throughout the word, their uptake here in the states doesn’t seem to be that great. I speak from the fact that most users that have downloaded my BlueGPS application live outside of the US. This makes it tough for software developers here in the states to focus on Symbian programming.

While I’ll continue to play with Symbian programming I will definitely be hanging out in the Microsoft camp. My first introduction to the Pocket PC OS was with the old Compaq iPaq 3600 series devices. I wasn’t impressed with the OS as much as I was the hardware. Times have changed and with the 8125 I’m not only impressed with the hardware, but the software does some truly incredible things. Plus there are some very cool UI concepts that I’ll post about in the future. Whether or not you like Microsoft you have to admit they do some truly innovative stuff. Not quite as much as Apple, but I’ve been waiting for an Apple phone for over a year now. There’s the possibility that when it does come I’ll drop my 8125, but it will need to ship with wifi, bluetooth, camera, mp3 support, qwerty keyboard and that’ll be a good start.

It’s difficult to find another device that does everything the 8125 does for the same price. I’m pretty sure the Treo 700W doesn’t support wifi internally and you need to purchase a wifi SD card to get it. The 8125′s built in wifi is absolutely amazing. I ended up purchasing the 5MB data plan for starters since I’ll be doing most of my internet browing over wifi. Cingular’s current 5MB plan runs $19.99/month which is nothing short of outrageous. I’ll be sure to hop onto a hotspot whenever I get a chance to prevent having to upgrade my data plan.

While I don’t have time to mention all of the cool bells and whistles the 8125 has, I’ll take a minute to mention a couple. Remember a lot of this is implemented at the software layer which is exciting to see. Microsoft’s mobile OS has come a LONG ways and I’m sad to say that Symbian has a lot of work to do to gain developer acceptance here in the states. One of the first things I experimented with was the QWERTY keyboard….absolutely fabulous. My productivity rate just skyrocketed ten-fold.

Of course any next generation needs to have a digital camera. The 8125 only has a 1.3 megapixel camera which is far below where I’d like it to be. I hate to already start talking about my next device, but I hoping not to settle for anything less than 3MP. Anyway, I was extremely impressed with how simple it was to snap a photo and email it off. The camera quality isn’t great, but you can see the full-size image below. Be sure to click on it to see the full dimensions (1280×1024).

I haven’t tried to tweak any of the camera settings so I’m sure there are ways to improve the quality.

Another cool feature is the way the OS handles switching between portrait and landscape mode. Whenever the keyboard is extended the screen is rotated 90 degress to provide a landscape view. I’m looking forward to watching some wide format videos on the device.

The last thing I’d like to mention is something that I found extremely ingenious from a design standpoint. If you look at this picture you’ll notice 3 circles on the back of the device. The one on the left is the flash, the one on the right is the lens, and the one on the bottom is the self-portrait mirror. That totally blew my mind. When I flipped it over I saw my reflection in the mirror and then immediately saw its usefulness. You might be thinking it’s such a small mirror, but I can tell you it does a great job of displaying what you’d actually see if you were looking at the front of the device. Who comes up with this stuff?!?

The only negative thing I can say about the device is battery life, but I was expecting to charge this device every night. With all the technology packed into this device I’m sure it was insanely difficult to optimize the amount of power consumption. If you’ve considered purchasing the 8125 don’t think any longer….just get out there and do it!

Read More

PolkaDachs Featured in Park Cities Paper

Feb 19

Jamie’s PolkaDachs site was featured in the Park Cities Paper recently. I just wanted to post this to mention how proud I am of her. I don’t normally endorse shamless plugging, but if you’re looking for a unique gift with a touch of personalization then check it out!

Read More

Sending Email Attachments with Linux

Feb 18

In the past I’ve always wondered how to send email attachments from the command line on Linux. I used to be able to email text based files using the mail command:

mail user@domain.com < yourfile.txt

This is useful but actually embeds the text into the body of the email. I recently learned how to send this text as an attachment using the mutt command. The syntax looks like:

mutt -a yourfile.txt user@domain.com < /dev/null

The body text can be imported from an external file and in this case I’m telling it not to send any body text using /dev/null.

This might not be the only way to send attachments from the command line so if you know of any other approaches then please feel free to post them!

Read More

Flash with Ruby on Rails

Feb 17

No I’m not talking Macromedia Flash which most people who know me would assume. I’m talking about the Ruby on Rails flash object. The flash object is a mechanism to pass information between different actions.

In my olden days of ColdFusion development we would pass information between requests using URL and hidden form variables. It became difficult to track these variables and added extra complexity with maintaining them. The best example I can give is passing an error message between page requests. Maybe you’ve dealt with the situation of having a login form post to a page to process the login. If the login was unsuccessful the application would redirect to the login page and display an error message. This was generally passed through the URL or hidden form fields.

RoR provides the flash object which is basically a temporary session object that lets you write and read data from it. It lives through a second request, just so you can read the data from it, and then the data is purged. This is perfect for maintaining error messages and simple status information. The question I’d like to ask is why didn’t I ever think of this when using CF?!?

Read More

Suppressing Whitespace with Ruby on Rails

Feb 15

Whitespace is a pet peeve of mine. It doesn’t cause much harm although it can make debugging code a bit difficult. Plus it can add to overall size bloat of your webpage. Back in the ColdFusion days I used to use techniques such as cfsetting and cfprocessingdirective to remove whitespace.

I was excited to see that the Ruby on Rails team took this into consideration and made it simple to suppress whitespace in certain circumstances. Take the following code for example:

<% 5.times do %>
Your IP Address is: <%= @request.remote_ip %>
<% end %>

When this template is rendered in the browser and the source is viewed you’ll see:

our IP Address is: 127.0.0.1<br />

Your IP Address is: 127.0.0.1<br />

Your IP Address is: 127.0.0.1<br />

Your IP Address is: 127.0.0.1<br />

Your IP Address is: 127.0.0.1<br />

Now let’s use a nifty RoR trick to remove the whitespace:

<% 10.times do -%>
Your IP Address is: <%= @request.remote_ip %>
<% end -%>

Notice the minus sign at the end of the first and last line which yields the following output:

Your IP Address is: 127.0.0.1<br />
Your IP Address is: 127.0.0.1<br />
Your IP Address is: 127.0.0.1<br />
Your IP Address is: 127.0.0.1<br />
Your IP Address is: 127.0.0.1<br />

Notice the clean output. While it seems trivial it keeps guys like me happy.

Read More