Monday, September 28, 2009

Gmail Dropbox Gadget Script Available

Updated with instructions to install gadget

Step 1: Go to GMail Labs and enable Add Gadget by URL feature

Step 2: Go to the Gadgets Settings Tab in Gmail Settings and Add the Gadget

Step 3: Add the Greasemonkey script for Dropbox mobile:

After receiving a request from a user for creating a dropbox gadget for Gmail, I went ahead and made a User Script that modifies the Dropbox Gadget UI for use in Gmail. I could not rework the UI remotely, so the script was the only practical choice.

I have tested it and it works both in Firefox and Google Chrome.


Saturday, September 12, 2009

SymbianNote - Evernote for Symbian - My first WRT Widget

Evernote for S60 v5: hosted on Google Code.

After playing around with the WRT kit and navigating the documentation for the WRT kit and the beta version of platform services 2.0 (you would think these would be more easily available online!), I have created my first WRT App for Symbian v5 phones (eg, 5800XM and N97, etc...).

Version 1 of the app does the following:
  1. Provides 1 touch (or run in the background) access to Evernote online
    • Add quick notes
    • Search and view notes already uploaded to the service
  2. Send notes with /  without attachments to Evernote via e-mail.
  3. Add your personalized Evernote incoming e-mail address to your contacts list with only 1 touch.  As a contact, it is easier to send files and notes to Evernote from other applications on the phones.
  4. Check for updates (in the About view)
Some obervations about WRT:
  1. The 5800 is not powerful enough or does not have a recent enough version of webkit for its browser to properly display jQuery UI effects.  Effects that are very smooth on the PC and emulator are jerky and incomplete on the actual phone. Hopefully, the new firmware rumored to be coming in October will improve the performance of the browser and JavaScript engine
  2. WRT still needs a lot more work before it is a very useful toolkit
    • Its APIs are still fairly limited. I wanted to use the Messaging API to send e-mails directly from the application but no such API exists yet. It only supports MMS and SMS (and even the addressing of those messages is limited).
    • Users should be able to set security preferences one time for an app and not have to approve every use of an API by an application.  This is a problem with some Java apps as well. Users should have the choice to setup the security preferences one time for each app.  The constant request for approval (just like Vista) is very frustrating.
    • The new camera API looks promising, but until the e-mail api exists it will be useless for Evernote (although other apps could work fine).
I hope you enjoy the app and I welcome your feedback on bugs and improvements.  Once I figure out how to upload source code to Google Code and not just final packages, I'll put up the source code as well.

Direct Download link:

Link to Google Code Project Page:

I'll try to add some screenshots soon.

Friday, September 4, 2009

Nokia WRT (Web Runtime Toolkit) API Documentation Available

Recently, I have begun tinkering around with the WRT tools for my Nokia 5800 so I can start to develop some handy widgets for my phone (and others).
Nokia has something called the Web Runtime, which allows, developers to write a applications using standard HTML/JS/CSS/DOM based applications that can tap into some of the native functionality of Nokia devices as well as be nicely packaged into installable files.

They even have a plugin to help developing these widgets in Aptana/Eclipse. The only problem is that the documentation online is very bad and incomplete. They information is scattered in various places and no where online can you find a decent set of API docs detailing all of the classes and functions. Whatever you find online is incomplete, at best.

Another developer Jappit pointed me in the right direction to find good documentation, but only available inside of Aptana. I have pulled the WRT help / API documentation from Aptana and uploaded it online.

You can view the WRTKit API Documentation online.
Otherwise, you can download the complete WRT API Documentation for Aptana as a zip file.

I also have uploaded the latest WRT Library (1.4) online as well.

Hopefully, now I can start creating a few interesting apps for S60 users...

Monday, August 17, 2009

Where did Charlie Rose go? (Appears to be victim of Google Video's demise)

I love the Charlie Rose Show.  It is a fantastic forum for reasoned discussion and it covers a broad set of topics to stay fresh and topical.  There are few places where you can find these types of (usually) non-trivial conversations with this depth and level of thoughtfulness.  He is a master of building rapport virtually immediately without almost any guest.  Tavis is very good as well, but his show suffers from being only half as long as the CRS.

I really only have three complaints against the show:
1) Charlie is friends with a lot of the powerful guests he has on the show, and sometimes is too soft on those guests (especially Wall St. executives such as Mr. Dimon at JP Morgan).  Although he is still better than most popular journalists, being tougher would yield responses and ultimately create a better show.

2) Charlie says the word "exactly" too much in response to a guest's response as if he needs to show he is smart enough to have had the same insightful thought as his guest.  I am probably splitting hairs here, but I had to say it because it happens so often.

3) The show is not available as a podcast (neither video nor audio).  

It was not until I moved to Spain that I began my regular appointment with the CRS.  I used to see it every once in a while while I lived in LA, but being on late at night and with a young kid at home, I did not stay current with the show.  Once I noticed that the show was available via Google Video, I realized that I could hack together my own podcast of the CRS.  In fact, Google Video was the video platform that the official website,, used to power its online video.

At first it was easy because Google made the MP4 download available via the rss feed on its site.  Then the rss feed changed at Google Video, eliminating the MP4 from the standard enclosure, and someone uploading the videos for CRS stopped making the MP4 download available.  So, I decided to use Yahoo! Pipes to make my own personalized feed to view the videos.

Everything was good, and I was receiving my daily dose of the CRS until the end of July.  That appears to be when Google Video stopped accepting new videos.  Google had announced previously in January that Google Video would be closed to new video in the near future and others had reported this.  At first, I noticed that I was not receiving any new episodes in my podcast feed.  Then, I went to the official site and I saw that there were no video clips available for the most recent episodes.

Contacting the "contact us" folks for the show via the web, they told me that they are migrating their streaming servers and that video would be back online "soon".  It was only after I contacted them, a small text notice was added to the site indicating that "Videos are temporarily unavailable...".  

It has been now 2 1/2 weeks since the last updated Charlie Rose video has been made available.  It seems that they were not prepared to handle the switch away from Google Video as their service provider.  

I do not know what kind of advanced notice about the actual shutoff date Google made to its main video suppliers, but with the public notice made back in January, the folks at CRS should have migrated away to another platform well before and avoided this situation.

I sure hope they figure it out soon and go ahead and add proper podcasting support (video and audio).  It is public television so they should not rely only on paid services (they have a paid audio version via  Furthermore, they are looking to syndicate via Bloomberg TV so this should be seen as another way to spread the CRS brand, influence and public service.  Tavis Smiley serves as a pretty good example for syndicating out his content in many useful ways. Charlie could learn a lot by following Tavis' example.

Hopefully he'll be back online soon and those of us without easy access to PBS channels can go back to getting our CRS fix.

Friday, July 31, 2009

Newly Updated Script for Uploading GA reports directly to GDocs & Spreadsheets

UPDATED 05/04/09: All fixed now. However, I am starting to notice some odd 404 errors coming from the Google Docs API. The file uploads nonetheless, but every once in a while the confirmation message comes back as a 404. Any suggestions? Please add them in the comments.

Original post  - Integrate Google Analytics ... Google Docs

Friday, June 12, 2009

Dropbox has been banned from my work

Update: The problem is now resolved. Dropbox was able to get their domain off of the "malicios sites" list and now they are OK once again. Now if only they had an app for Symbian s60v5...

I love the dropbox service. I have been using it since it was in private beta. I even wrote a google gadget for dropbox to have immediate access to the service whereever I login.

Starting this morning, when I tried to access a file in my public dropbox folder, Firefox told me that this was a restricted site which was known for malicious attacks.

Since then, they seemed to have changed the subdomain from to

However, it is too late for me because the entire domain is now banned by my work proxy server. It does not matter that they changed the subdomain. The entire domain is now unavailable and unlikely to get unblocked any time soon, if ever.

Friday, June 5, 2009

Microsoft & Yahoo! Search Partnership already happening?

I do not know if this is anything new, but today I was telling a friend about bing and that he should try it out because it is starting to drive traffic to our sites.

To our surprise, he tried some searches and we started seeing our own ads appearing in the results. Looking at the ads and links of the ads, we saw that they were from our Yahoo! CPC accounts.

Here is a screenshot today. It is not our ad in this case, but look at the URL in the status bar. It is pointing to Overture (Yahoo!).

Bing using Overture for Ads?

Am I missing something, or has the Yahoo! / Microsoft partnership already started (perhaps in silent beta mode).

I am going to try Bing as my default search provider for a little while to see how well (or not) it works.

Wednesday, April 1, 2009

Balsamiq Mockups - it Roqs (Web Prototyping Software)

Recently I heard about a piece of software for creating mockups for web apps. After a brief read of the features and nature to the tool it sounded almost too good to be true.

Striking the prototyping balance...
For many years, I have tried virtually every type of prototyping method for web page design.  Each has its own dedicated following (fanboys), advantages and disadvantages.

Examples of prototyping methods used previously
Advantages Disadvantages
Pencil & Paper

Just as it sounds, sketch it out on a pad of paper.  Other variations include cutting and pasting paper to show interaction

  • Focused on ideas and functionality (if done with layers)
  • Anyone can have input
  • Less pride of ownership
  • Can do it anywhere
  • more info

  • Very tedius (especially if you have little to no drawing skills)
  • No scale to duplicating elements
PowerPoint / Visio
Create a background image and start building on top of it with boxes / cut screenshots

  • Easy to duplicate elements
  • Can show animation (PPT)
  • On most desktops
  • more info

  • Animation is very tedius
  • Stuck with 1 page size (for all intensive purposes this is the case)

Use the industry standard image softwrare to build your comps

  • Powerful use of layers
  • Easy to duplicate elements
  • Lots of tools and templates available
  • more info

  • Not always available
  • Expensive
  • Not easy for a novice
  • Often focuses on "sexiness" instead of usability
  • Animation not easy
  • more info
Similar to Photoshop (and Illustrator) but handles reuse and "animation" better

  • Powerful use of layers
  • Easy to duplicate elements
  • Good animation tools
  • more info

  • Not always available
  • Expensive
  • Not easy for a novice
  • Often focuses on "sexiness" instead of usability
Use the most popular WYSIWYG tool to write HTML

  • WYSIWYG click and add elements
  • Quick edits (small changes)
  • Templates
  • more info

  • Not always available
  • Expensive
  • Not easy for a novice
  • Bad tradeoffs in having semi hi fidelity and inability to reach quickly to big changes (CSS can be a pain)
Straight HTML/jQuery
Grab your favorite Text Editor / IDE and start coding.

  • Closest approximation to the final product
  • Adds real interactivity
  • Forces designer to think of practicality
  • jQuery adds lots of powerful tools to speed up layout and functionality
  • more info

  • Strong technical knowledge needed
  • Hard to react quickly / in real time to radical changes
  • Often focuses on "cool factor" instead of usability

And then came Balsamiq Mockups...perhaps the perfect balance
Balsamiq Mockups (BM from now on) is from a micro-ISV called Balsamiq.  The founder is a former Adobe employee who decided to head out on his own and moved back to his home country of Italy to focus on the company.

The product's objective is to give you most of the advantages of Paper Prototyping but with the added value that comes from being digital (quick repetition and duplication, capture state easily, collaboration across long distance, etc...).

The interface is simple and the usability is very high.  Although it is a young product from a young company, the software so far has worked fairly reliably.

Every element acts a lot like a visio element.  They can be resized (I really like the autosize feature), grouped, layered, duplicated, etc... There are a minimal set of properties that many controls have to adjust background color, to add a real image (the sketch it feature is helpful to not lose site of the mockup's purpose), or adjust font sizes (this last feature is limited and something I suggest improving below).

Since I installed the application (it is Adobe AIR based) a couple of days ago, I have used it to mockup some important page changes that we are considering.  It is amazing how fast I was able to whip up the new design ideas using this tool.  Most recently, I have been doing these mockups using a combination of Firebug, Firefox, jQuery, and SnagIt.  For small changes I will continue to use these tools, but Balsamic Mockups was much easier and quicker for me to sketch up big changes to the pages, especially when it came to layout.

Examples of mockups from Balsamiq (I cannot show my mockups due to our corporate policy e.g. trade secrets)


What is still needed for the software right away:
  • Zoom - You cannot zoom in or out of the page.  Needed, especially for us without fancy monitors (or on noteboooks)
  • Adjust font size & style for all (or most) controls - font size and styles can only be changed in certain types of text controls but not all (ej, lists, some  text, etc...)
  • Personal Library for Custom controls - Lets say that you created an image using an asset from your site.  You should have a simple way to add this to the collection for use in other prototypes.
  • Naming Exported PNGs - you can export mockups at any point to a PNG file, but you are never given an option to name the PNG file.
Other items to add in the future...
  • Interactivity - add clickable links to navegate between mockups (or PNGs), perhaps add common effect features (slide, fade, lightbox)
  • Integration with other services - Balsamiq will focus on creating plugins and small opps for the web office.  It would be great to be able to export mockups or PNGs to photo sharing services like Picasa or collaboration sites like Basecamp.
Conclusion - it Roqs!
I love this software.  Looking over the blog posts, there seems to be a healthy rate of updates to the software, so I can only expect the features to become richer over time.  You can see on their site that they already have a fairly large following.  They can happily add one more (and any one else that I can convince) to that list of happy users.

You can try it using their online trial (benefit of being AIR based) although it is time-limited.

Monday, January 26, 2009

Export Google Trends to Google Docs Script

Feeling inspired from the success of the script that I wrote to export from Google Analytics to Google Docs , I decided to see if I could reuse most of the code for other Google CSV exports.  My first sub-project was to tackle Google Trends.

I made the necessary front end changes to put in the new links and collect the correct export URLs.  Generally everything worked on the backend as well after only a few minor tweaks.  However, I kept receiving a lot of junk in the export and the content was not legible.

There seems to be some issue with the format of the CSV file being delivered by Google Trends.  It opens fine is a pure text editor like Notepad++ , but the browser recognized thousands of "invalid" characters in the export.  Basically, the CSV contains a null value in between every other valid character and it included rare form feed characters at the beginning and end of the file.  These invisible characters were blowing up the import to Google Docs so that while I would receive a "success" message for the upload, everything came out as gobbledegoop .

After multiple attempts to try to request a different file format, I finally decided to work a little string magic using RegEx.  I stripped out all of the junk characters before sending it up to Google Docs and voila! Everything works fine now.

Unfortunately, Google Trends only allows exports for keyword comparisons at the moment, but not for website data.  In the meantime though, for anyone doing SEO Keyword research, this could be of some valuable use to you.

Here are the links:
Download GM script directly
Greasemonkey Script Page


Wednesday, January 21, 2009

Google Analytics Bug - The Sum of its Parts is More Than the Whole

Google Analytics is a great product, in general, but sometimes I come across things that are totally head-scratching.

Their relatively new feature for Advanced Segmentation will be very very useful once it reaches some semblance of reliability. As for now, though, I cannot rely on it.

The image does not lie.  I have 2 segments applied:
  1. All Visits (basically, unfiltered)
  2. True Non-Paid (all visits that are not CPC)
GA tells me that yesterday I had about 110 more conversions coming from my non-cpc traffic than all of my traffic combined?????

I know that the little red tag says "Beta", but we have come to expect very reliable behavior from a lot of other "beta" products from Google (eg., Gmail , Google Earth , Maps for the longest time, etc...).

This is something that needs to get fixed quickly.  The worst thing that GA can do is put doubt in the minds of its users about the accuracy of the data.

Wednesday, January 14, 2009

New Version of Analytics Export to Google Spreadsheet Script

Newly updated script (v0.3.6) for exporting from Google Analytics to Google Docs / Spreadsheets.

Some of the improvements:
  • Exports now properly handle applied filters, changes to dates, segments and any other AJAX-style update made to the report (previously only went off of the query in the URL)
  • Enables user to name the report
  • Cleaner UI that blocks the screen during loading
New links:
Download GM script directly
Greasemonkey Script Page

Thanks to sallymander for the input!

Original post


Tuesday, January 13, 2009

Watching UCLA Hoops from Barcelona using Orb, FFMPEG, and Zune

I am a big UCLA Bruins basketball fan. I started following the Bruins when I was probably 11 or 12 years old. This was during the Trevor Wilson/Pooh Richardson era. My brother was attending UCLA and I was really starting to get more interested in sports of all kinds.  Even when I first attended UW for my first 2 quarters out of high school, I found myself rooting for the Bruins against the Huskies in Pac-10 play.  After I transfered to UCLA, I could see the games in person as a student as well as always catch them on local TV.

After graduating, I still followed the games and other events closely, which was quite easy in the LA area between local cable (Fox Sports West) and the LA Times . Once moving to Spain, however, it has been a much bigger challenge to catch games that are:

  1. Broadcast regionally only in the USA
  2. Scheduled in the evenings (California time .... 9 hours behind Spain)
The first 2 years I had used a Tivo  connected to a Slingbox  at my parents' house.  It worked well enough but the quality was not great and the hard drive of the Tivo finally died this summer.

I now have a setup that is working quite well for the 2008-2009 season.  I bought a Haupauge 1600 TV card for my parents' PC and installed Orb.  Orb is a fantastic service that principally turns any computer into a powerful Slingbox with a built in PVR.

It is very easy to use and runs in the background.  I schedule the recordings using the web interface here in Spain.
I just look up the channel and the time (I have the schedule setup as an RSS feed from Google Calendar to have it all on the same page) and I click record:

Once the game is scheduled, I just wait.  Orb records video in dvr-ms format, which uses MPEG-2 video.  Although, very high quality, MPEG-2 makes just way too big of files to download (average size of 1 game is 3.2GB!).  

I could stream the games directly using Orb, but the PC at my parents house is not very powerful and the Internet connections are just too slow and far away between Spain and CA to maintain a stable streaming connection for 2 hours.  Additionally, since I have 2 young children, it is rare that I ever get 2 whole hours to sit and watch something, let alone 2 times per week during the season.

So, generally I watch the games partially on my PC and partially on my Zune (when it is working ).  To make the dvr-ms file, small enough to download (700MB) and is in a format able to be viewed on the Zune (WMV), I run a script to transcode  the video using FFMPEG.  It runs nightly and checks if a newly recorded video exists and if has not already converted that video, it quietly makes a copy in wmv.

I wake up morning following the game and initiate the download via Orb:

After the multiple hour download, I can start watching it on the PC or sync the game to my Zune to watch later.

This has worked so far after a lot of trial and error, especially with the file conversion (tried DVRMSToolbox and MCEBuddy before writing my own script with ffmpeg) and syncing.  I am about 3/4 done watching the UCLA vs. USC game and will finish watching it later today.  

Do not tell me who won please!

Hopefully, Orb will eventually be able to record directly to other formats like wmv or H.264 and soon I plan on changing my Zune for a Nokia 5800 XpressMusic.

Go Bruins! 

Wednesday, January 7, 2009

Our First Snow in Spain

This is now our 3rd winter in Spain and it finally snowed. It had snowed the previous 3 years straight in the town where we live, but there was nothing since late 2005/early 2006. We woke up this morning to find the whole neighborhood blanketed in white.