Archive for the ‘Uncategorized’ Category

Does anybody still print?

Sunday, June 20th, 2010

It has occurred to me recently that I really don’t print that much anymore. I mean almost never.  I don’t print documents to read.  I rarely print envelopes to mail.  Heck, I rarely snail mail anything.  I don’t print checks unless I have to.  I hate checks!  I don’t print spreadsheets.  I don’t print out manuals.  The most frequent thing I printed until recently, were PDF files from ChinesePod.com for learning Chinese.  Printing them out served two purposes : 1) to read the lesson material and vocabulary and 2) to have something to write on with my Chinese tutor.  However, now with my iPad, I don’t even need to do that.  I can easily read the PDF file on the iPad and bring a single sheet of paper for my Chinese tutor to write on.

Thinking about work at Sliced Simple, we were able to avoid buying a printer and scanner for almost two whole months at the beginning of the company in the fall of 2009.  However, during the incorporation process we were invariably told by our lawyers that we had to print out and sign things to follow the most conservative and best practices for a new company.  So we bought a multifunction printer / scanner and a single ream of paper.  It is now summer of 2010 and we are still on the same ream of paper.  Without much effort, we have avoided doing a lot of printing.  For run of the mill contracts like NDAs and consulting agreements, we just use DocuSign, a very simple electronic signature service that is more than good enough for everyday contracts.

I have to be a bit weird though.  As I mentioned, I recently got an iPad and now really have very little use for printing.  But, when I read the reviews of the iPad, I seem to constantly come across some reviewer pointing out how there is no native printing capability.  People write into Walt Mossberg’s column just to ask about printing.  I really don’t get it.  Why would you buy an iPad and then want to print from it?  You can read Word files and PDF files right on the iPad and if someone else needs a copy, e-mail it to them!  I think if you look at the iPad and the first thing you say is “Now how do I print from this thing”, you probably should not be buying an iPad.

So I want to know, do you still print?  What do you print?  Why do you print?  Do you think you will ever stop printing?

Donating my birthday : DonorsChoose.org

Monday, May 10th, 2010

I decided to do the whole donate your birthday thing with DonorsChoose.org. So pick a project and fund it!

RoR : Much faster way to get url for Paperclip attachment

Thursday, March 25th, 2010

Background

PaperClip is a useful file attachment library for ActiveRecord that allows you to attach files (in our case photos) to an ActiveRecord object.  It abstracts a way a good deal of complexity and tedious code and is particularly great for uploading files to Amazon S3.

Problem

Like many Ruby on Rails apps, we have a method for searching this particular set of ActiveRecords and returning a set of results that include URLs for the attached photos. As part of constructing the result set we were calling the url method on the photo attachment. For some reason, calling this url method about three times per record was taking forever (like say upwards of 20 ms per record). Returning just 25 records or so was really introducing a lot of delay.

Solution

In our case, the urls for the photos don’t change after they are set and can be easily computed in constant time. So to really speed things up, we stopped using the url method on the PaperClip attachment and simply built the url string manually. As you can imagine the speed up has been awesome as the time to produce these new URL strings is almost nothing.  On the above mentioned search, we shaved off about half a second in the controller, which makes the search feel more “instant”.

Up and running on linode

Sunday, February 28th, 2010

I decided to move my sites and blog to linode. I wanted more flexibility than a standard web host would provide.

In case you have to move a WordPress blog, here is roughly what I did:

  1. Created a backup of old installation on old webhost (this directory had index.php and the wordpress subdirectory)
  2. In wordpress/wp-config.php you can find your database information (see DB_NAME, DB_USER, DB_PASSWORD, etc.)
  3. Make a backup of your wordpress database as a .sql or .dmp file (basically a text file with all the SQL to re-create your wordpress tables
  4. On the new server, create the database, user, password, etc. that is specified in the wp-config.php file.
  5. On the new server, if necessary, update wp-config.php/DB_HOST to point to your new db server (could just be localhost)
  6. On the new server, expand the backup into a directory you have picked out to hold your new blog
  7. On the new server, update your web server settings to point to this new directory for your blog

That should be about it. I definitely recommend googling how to do this as my information may have limited use depending on the complexity of your setup.

FMCaltrain for Palm webOS

Sunday, January 24th, 2010

I put out an app for the Palm webOS called FMCaltrain. If you live in the Bay Area and take Caltrain from time to time, this should help you out. FMCaltrain is available in the Palm App Catalog. Check out the YouTube video below.

Too many accounts

Thursday, September 3rd, 2009

For U.S. taxpayers, there are just too many darn confusing accounts with a mountain of rules. Having to have a checking, savings, IRA, 401K, 529, and an HSA is wasteful. We have all of these different types of accounts because our income tax rates are too high and the deductions and credits are too many. In my ideal world, the average person would only “need” two accounts : spending and savings. Since we don’t live in my ideal world and we do have a high income tax and many different deductions and credits to allow the government to engineer society, then can we at least cut it down to three accounts : spending, savings, and society. The “society” account would contain all of your retirement money, health care money, education money, and whatever else the government has decided is of benefit to “society”. Contributions to the account could be tax deductible, the earnings could grow tax free, and withdrawals could be limited to the above mentioned government approved expenditures. Wouldn’t that be easier?

What is pro-competitive behavior?

Monday, August 3rd, 2009

The recent brouhaha concerning Apple, AT&T, and Google Voice has led to many cries that Apple / AT&T is engaging in anti-competitive behavior. That begs the question, what is pro-competitive behavior? What would that look like and would it make any sense for a company to be “pro-competitive”?

For background on this most recent case, read the Wall Street Journal article concerning the FCC inquiry into Apple’s iPhone app approval process with respect to Google Voice.

It would seem that these cries of “anti-competitive” behavior center around the notion that AT&T wants to be the exclusive provider of voice service on the iPhones that they have subsidized to the tune of several hundred dollars per unit. And shockingly, they don’t want to put software on these subsidized iPhones that allows people to reduce the amount of revenue they give to AT&T every month.

I suppose, these critics want Apple to approve Google Voice for use on the AT&T subsidized iPhone. From their point of view, that would be “pro-competitive” behavior. Does that really make any sense for AT&T? How is that going to help them make back all the money they gave to the customer when they purchased an iPhone? How is that going to help them pay down all the large fixed investments in voice infrastructure they made in the past? Is it really in their best interest, at least in the short term, not to exercise their influence with Apple to keep Google Voice off the iPhone?

In the long run, AT&T will have to find new ways to get customers to pay for using their network, but in the short term it makes very rational sense for them to squeeze as much revenue as possible out of these subsidized iPhones. So called pro-competitive behavior on AT&T’s part would just lead to it losing money on a large number of iPhone accounts.

Palm Pre Enhancement : Handle vCard / add contacts from an e-mail

Wednesday, July 1st, 2009

I may be an old dinosaur, but it would be nice to be able to handle a vCard attachment to an e-mail. Specifically, I’d like to be able to download it and then add it to my Contacts on the Pre. Below is the sort of e-mail I am talking about.

Palm Pre - Received a vCard in e-mail

Currently, though when you download the vCard attachment, you can’t open it because no suitable application is found.

Palm Pre - No app to handle vCard

If vCards are really out and no one uses them anymore, I’d like an alternative to add/update contacts from an e-mail message.

Palm Pre Enhancement : Meeting update e-mails

Wednesday, July 1st, 2009

To further enhance the Pre’s integration with Microsoft Exchange, I suggest they add meeting update e-mails. Here is how this feature should work on the Pre:

  1. User opens a meeting with 2 or more participants on their Pre.
    Palm Pre - A meeting with 2 participantsPalm Pre - View Participants
  2. User changes the time of the meeting
    Palm Pre - Change meeting time
  3. User back gestures because they are done with the changes
  4. User is prompted to send out an update e-mail to meeting participants
  5. Pre sends out (or has the Exchange server send out) a meeting update with the new time.

This would be very similar to how the meeting invite / update feature works in Outlook today.

Five things mobile developers should not assume

Saturday, June 20th, 2009

Below are five quick things you should not assume as a mobile developer.

  • Don’t assume you have network connectivity – What would happen if I launched your app and the device was not connected to the network? Will you show the user a white screen? black screen? something else that makes it look like the app crashed? Could you have stored some data locally to show the user? Network connectivity is a gift. It should not be expected. If you can’t do anything useful without the network, at least tell the user to try your app again when they have network connectivity.
  • Don’t assume you have GPS – Today it may seem like every mobile device has a GPS receiver, but you really cannot assume that you do. As a corollary you shouldn’t assume that you can quickly get a GPS fix for your cool location based service application. Again, try to find a way to provide value to the user in the absence of GPS. If you really do need to get a GPS fix, make sure your UI informs the user that you are waiting and give them a way to cancel.
  • Don’t assume the device can make voice calls – Not every smart mobile device is a phone. Think iPod Touch.
  • Don’t assume the device has a touch screen – Mostly this is a warning to Windows Mobile developers. Remember that Windows Mobile Standard devices DO NOT have touch screens. If your app really can’t work without a touchscreen, do everything you can to discourage a user from downloading it. Secondly, if they do download it, be polite and give them an error dialog indicating that the app is only compatible with touch screen devices.
  • Don’t assume the device has the latest super fast processor – While you probably do, many of your users do not. They are one or two hardware revisions behind and the app is going to run a lot slower on their devices. Make sure you test on those devices before you ship.