Home

Huge Oversight, Google

Posted on Wednesday, June 01, 2011
Yay, I just got an invitation to Music Beta.

However, they don't support Linux, so I can't use it.1

I can see the logic behind not supporting Linux. It is only 1-5% of the desktop market. But it is announced at a developer conference, where I'm sure the Linux market share was a bit higher. And among new technology adopters, I'm sure Linux market share is a bit higher. New products need adoption, and you don't really want to prevent that because of what seems to be an oversight.

Google makes plenty of good web apps (and a handful of crappy desktop apps). They couldn't have done this in Chrome?

Their inability to come to an agreement with music labels and their poor choices in implementation do not bode all that well for the service. A lesson for us all.

1Without fuss.

Supporting Blogger's New Editor

Posted on Wednesday, April 27, 2011
One of my annoyances with the user script for typesetting LaTeX in Blogger was how it just didn't work with the new editor (otherwise known as issue 7).

No more!


\int_0^1 x^2 dx = \frac{1}{3}

(This post was written in the new editor!)

Further LaTeX for Blogger Updates

Posted on Wednesday, April 27, 2011
Just threw a few more changes in.  Angle brackets should be handled better, and the image src is URI encoded so generally it should behave better around weird input.

Even more, I've thrown up installation instructions on the repository's GitHub wiki.

LaTeX User Script Updates

Posted on Tuesday, April 26, 2011
Just so you know, I've been able to clean the code for the user script to the point where I think I can easily extend it: in particular, the double escaping is gone and there is much less string manipulation. The script now handles double quotes inside equations properly.

The issues list on GitHub shows what's remaining.

Trying Out GitHub

Posted on Thursday, April 21, 2011
I previously wrote about my trivial fix to a user script for LaTeX markup in Blogger.1  Now that I've explored more, I know more options, but I still haven't found a single solution which does everything I would like.

My primary requirement is to easily typeset math which can be read not only on the website, but also from the RSS feed.  To that end, the user script mostly works.  However, it doesn't look nearly as nice as MathJax.

So, long story short, I believe there are a few more changes I want to make to the user script.  I have decided to explore GitHub for code hosting.  It's early yet, but it has a very nice interface.

So if you want to follow along, see my new repository.

1Clicking on the original link failed to automatically install the user script.  I have fixed it.

Review: Getting Things Done and Remember The Milk

Posted on Tuesday, April 19, 2011

After setting up Gmail to get things done, I spent some time with the book.  I may be late to the party, as everyone seems to know the essentials already.

The gist of the GTD philosophy is to always stay focused on the next action which can be done on any given project.  Projects are defined liberally to be anything which consists of a series of one or more actions.  For example, renewing my driver's license is a project with at least three steps:  find out what documents I need, gather the documents, and finally go to the DMV.  Since each step depends on those before, at any point in time only one action can be taken.  On the other hand, clearly some projects have many actions which can be taken in parallel.

The premise is that it doesn't make sense to keep all those non-actionable items on your mind.  They should be waiting in the wings until you can act on them.  Once you consider only the actions you can take now, you can stop worrying quite so much.



Getting your projects into the system is a process:

Collecting:  Collect every email, piece of paper, magazine, or other object relevant to a project or just reminds you of one into one place, your inbox.

Processing:  Determine the projects and next actions associated with each object in your inbox.  If there is no relevant project, then the object is trash or should be filed as reference material.

As you process, and also as you regularly review your projects, you can decide among the following options:

  • Drop it:  It's not important.
  • Do it:  If the next action takes under two minutes, just do it.
  • Defer it:  File it away for the future.
  • Delegate it:  Hand it off.

Alternatively, the next actions are noted, and it stays with you.

The natural extension then is to track also the context of next actions.  After all, actions may have constraints other than dependencies on other actions.  For example, when renewing my driver's license, gathering all the required documents is really something that must be done at home.

I found in my short experience the Gmail GTD solution was inadequate.

First, superstars are not supported in the Gmail Android application.  This leaves me unable to process emails as they arise, which is disappointing.  Second, my email does not map well to actions or projects.  I receive emails from bug trackers, so I may have three different email threads each with useful information, but for which I only have one action.  Third, I have a substantial amount of work outside of email.  I have to find a way to track that in any case.

I have abandoned the Gmail GTD system, and now use the Priority Inbox.  I have resigned to keep track of projects outside of email.

So I have been experimenting with GTD in RememberTheMilk.  I haven't strayed far from the linked post, but I will describe what I'm doing.

In RTM, there is an Inbox list, which serves the role of the GTD Inbox.  If I cannot process an idea immediately, this is where it waits.  Usually the Inbox stays empty.

I have two lists p-Daily and w-Daily where I put actions for projects which only consist of one or two actions.  The "p-" prefix is for personal tasks and the "w-" prefix is for work tasks.  For example, I have a recurring task in "p-Daily" which reminds me to blog.  I also have an "l-" prefix for lists of things which are not in the GTD system, e.g. groceries.

For each project consisting of many actions, I have a separate list.  For example, I have a list "p-License" to track the task to renew my license described above.  In each of these per-project lists, I create a task with priority 1, which means it shows up at the top and highlighted, saying exactly what the project is.  It should be something well-defined (i.e. it should be easy to know when it is done).  This project-defining task is treated specially, not tagged.  When I complete the project, I remove the priority 1, and complete this task (and archive the list).

For all other tasks, I have the following tags:

  • na - this is a next action
  • @computer - this task needs a computer
  • @internet - this task needs internet access
  • work - this task is for work
  • wait - this task is waiting on something

And I have the following locations:

  • @home - my home
  • @work - my work

All tasks are be assigned to a location if relevant and tagged with one or more tags.  I set time estimates for all tasks.  I set due dates for tasks which need to be done in a certain timeframe, or just soon.

Finally, I have some smart lists for contexts:

  • @Braindead = tag:na AND timeEstimate:<60m (easy tasks)
  • @Computer =  tag:na AND tag:@computer
  • @Home =  tag:na AND location:@home
  • @Internet = tag:na AND tag:@internet
  • @NoComputer = tag:na AND NOT tag:@internet AND NOT tag:@computer
  • @NoInternet = tag:na AND NOT tag:@internet
  • @Work = tag:na AND (location:@work OR tag:work) AND NOT dueAfter:"2 weeks from today"

And I have some smart lists for reports:

  • [Overdue] = tag:na and dueBefore:today
  • [PersonalStatus] = completedWithin:"2 weeks of today" AND NOT tag:work
  • [Today] = tag:na and (due:today or due:tomorrow)
  • [WorkStatus] = completedWithin:"2 weeks of today" AND tag:work

And I have a smart list of all actionable tasks:

  • All Tasks = tag:na

The search operators are very flexible and you can find a full list of them here.

I use the A Bit Better RTM Chrome extension to tweak the web interface which adds a keyboard shortcut (Ctrl-m) for moving tasks between lists, and the RTM Readable List user style which darkens and enlarges the list font.  On the go, I use the wonderful RTM Android application.

I've been using this for a few weeks.  I think it works.  :)

Comments

dannielo
For implementing GTD you can use this web application:

http://www.Gtdagenda.com

You can use it to manage your goals, projects and tasks, set next actions and contexts, use checklists, schedules and a calendar.
Syncs with Evernote, and also comes with mobile-web version, and Android and iPhone apps.

An Easy Classic

Posted on Thursday, April 14, 2011
You are given twelve marbles, one heavier than the others, and a balance.  Find the heavy marble using the balance no more than three times.

Outsmarting the Wolf

Posted on Monday, April 11, 2011
In order to outsmart the wolf, consider your relative angular speed as you swim along concentric circles. Without loss of generality, we may assume the pond has radius 1 centered at the origin. As you swim along the path r = r_0, the wolf can cover the same central angle more quickly if r_0 > \tfrac{1}{4}, more slowly if r_0 < \tfrac{1}{4}, and at precisely the same speed if r_0 = \tfrac{1}{4}.

From this, we can develop a simple strategy. Swim out near to but just shy of the circle
r = \tfrac{1}{4}. Since we can cover the same angle more quickly than the wolf, we may swim in a circle until the wolf is directly behind us. We can cover the remaining distance of slightly more than \tfrac{3}{4} in less than the time it takes the wolf to cover its distance of \pi.

To be more precise, we can successfully implement this strategy of first swimming to
r = r_0 exactly when 1 - \tfrac{\pi}{4} < r_0 < \tfrac{1}{4}. There is a tradeoff. The smaller the r_0 we choose in this interval, the faster we can get to the edge of the pond. On the other hand, the larger we choose r_0, the further away the wolf is when we reach the edge.

Outsmart the Wolf

Posted on Sunday, April 10, 2011
Here's a brain teaser (h/t Rob):

You start at the center of a disc-shaped pond.  A wolf is at the edge of the pond, and the wolf runs four times as fast as you can swim.  He will always run along the edge toward the spot that's closest to where you presently are.  How do you get out of the pond without the wolf there to eat you?

Delayed Emails in Gmail with Chrome

Posted on Wednesday, March 16, 2011
A missing feature pops up every now and again in Gmail. We can't delay emails. There are certainly times when it would be useful to send a finished email not just yet. I may send emails when it is not the best time for the recipient to read or respond. And when they return to their email later, mine will be one of many and not receive all that careful consideration. I think this can be a useful feature.

Boomerang1 adds delayed emails and much more. For example, it can return conversations to the inbox if no one has responded in some time.

1This is the link for the Google Chrome extension.

Polygon Labels

Posted on Tuesday, March 15, 2011
Assign the numbers 1, \ldots, 2n to the vertices and edges of an n-gon in such a way that each edge is the sum of the two adjacent vertices.

(h/t Jess)

Netflix Canceled

Posted on Wednesday, March 09, 2011
I went ahead and made it official: no more Netflix.

Better selection of physical DVDs (when the DVD isn't scratched), but no streaming just doesn't do it for me.

Notably, they have updated their exit survey to include Amazon Prime as a possible reason for leaving. :)

Amazon Streaming Video

Posted on Wednesday, February 23, 2011

Netflix should be worried. Amazon announced their new streaming video service last week, and it is included in Amazon Prime at no additional cost. Amazon Prime membership costs $79 annually and offers free two-day shipping and cheap one-day shipping on most items. Now, it also offers instant streaming video. I thought Prime membership was worth the cost prior to the announcement. It's only better now.

I'm already contemplating closing my Netflix account. I pay $16 a month ($192 annually) for the option of receiving two DVDs at a time. Netflix costs more, doesn't include cheap Amazon shipping, and doesn't offer me streaming videos. Amazon doesn't have the same selection yet, but the section is big (and it is free for me!).

Amazon supports streaming videos from day one on Linux, my platform of choice, but Netflix doesn't think that the Linux market (probably 1-5% of computer desktops) is big enough for them. According to Netflix execs, "Netflix can't be everything to everyone." Fair enough.

A Gambler's Dilemma

Posted on Monday, February 14, 2011
You are asked to play the following game: a fair coin is repeatedly flipped and after each flip you can decide to stop the game or continue. When you stop, you receive a proportion of the pot equal to the proportion of heads seen.

What is the optimal strategy?

Oy, Samsung! And Rooting a Vibrant...

Posted on Monday, February 07, 2011

I bought a Samsung Vibrant last August, my T-Mobile G1 having fallen out of my bag at the annual Chicago Air & Water Show. Miguel never returned it. Some of you may remember those scary few days when I lacked a smartphone, or maybe you've blocked it out as I have.

The Samsung Vibrant had best-of-breed hardware, was available on T-Mobile, and best of all, an upgrade to Froyo was expected soon. The international upgrade would be out in September and thereafter the US upgrade. But in December, stories of delays surfaced.

It got really nasty in January when some rumors surfaced that Samsung might block the upgrades. It was an interesting few days, and in the end it seems they were just baseless rumors since on January 20, Samsung did release a Froyo upgrade.

But wait! There's a catch. For unknown reasons, Samsung and T-Mobile are choosing not to deliver it over the air in the same way as past updates. Samsung is requiring Vibrant owners upgrade with their "Kies Mini" software. First of all, their software requires a machine running Windows XP, Vista, or Windows 7. I don't own such a beast. Second of all, their software apparently has an unstated requirement on the 32-bit versions of these Windows versions. It sounds like it may have been rushed.

I had a dilemma. The Samsung path to upgrade was not easy, but I wanted Froyo! So, the only reasonable course of action is to root my Vibrant. I will share the steps I took:

First, I followed these succinct instructions on how to root my Vibrant. As the site says, the tricky part is getting into the recovery menu. Hold down power, volume up and down all while the machine powers on. And maybe get lucky...

Second, I followed these instructions to backup and upgrade my Vibrant. I used the Bionix-v ROM from TeamWhiskey. They have instructions here.

Now, I have Froyo!

If you are interested in further experimentation, may I suggest the great ADWLauncher EX alternative launcher, the WidgetLocker custom lock screen, or the LCD Density density changer.

Getting Things Done with Gmail

Posted on Thursday, January 20, 2011
I've shared this lifehacker post in my Reader shared items already, thanks to SdC, but it is life-changing.  Enable multiple inboxes and superstars in GMail and go through the steps and you can have a nicely organized inbox like this:


This rakes in a lot of positive shoulder-surfing comments, and it's productive.  I would also suggest enabling keyboard shortcuts.  The shortcut "s" will iterate through the superstars.  The inboxes on the right panel do not refresh immediately, but you can always force this with "gi".

Using LaTeX from Blogger

Posted on Wednesday, January 19, 2011
So, you've just moved to Blogger and you want to blog with properly typeset equations? That seems like a requirement for some sorts of blogs (possibly not possessing an astoundingly large audience).

Unfortunately, a web search only revealed no ready-made solutions. The most promising option was a Greasemonkey script from Wolverinex021. But, it used a web service to interpret
\LaTeX which is no longer supported. The second most promising option was the wonderful site CodeCogs. CodeCogs has many ways to render \LaTeX, a page on Blogger integration, and two JavaScript scripts to automatically render snippets in the page. There is only one problem with their suggested approach. Most readers use an RSS aggregator to follow feeds, and the JavaScript will be bypassed. But CodeCogs does have a CGI renderer just like the one used by the Greasemonkey script.

All that is needed then is to combine the two options. My trivial contribution to Blogger equation typesetting is this Greasemonkey script.2

The following has changed since the original script:
  • Use CodeCogs for rendering.
  • Use CodeCogs to render the icon in the Blogger editor.
  • Some formatting changes for readability.
  • Support for unrendering. This was a useful missing feature.
  • Added alt text for typeset equations.
Install it as you would any other Greasemonkey script. To install in Chrome, you can save the file and then drag it onto the browser window. In the Blogger rich editor for creating new posts or editing existing posts, there will be two new buttons labelled
\LaTeX and {\rm un}\LaTeX. They do what they say. \LaTeX equations should be included between double dollar signs, not single dollar signs or \(\) or \[\]. And the script will fail miserably if the equations contain double quotes.

Typeset away...


\int_0^1 x^2 dx = \frac{1}{3}

1 I believe this is his blog.
2 In Blogger settings, choose the "old" editor.

Blog Move! And Why I'm a Google Devotee...

Posted on Friday, January 14, 2011
In the bygone days of what was 2003, I started this humble blog on Livejournal. Friends followed. I posted irrelevant nonsense. All was well. In 2005, I moved my email and blog to a privately hosted domain.1 The time has come for another shift.

I'm ditching my personal Wordpress install for the comfort of Google Blogger. The domain remains the same but links will change. As a follower, you may need to update the URL for the RSS feed. Wordpress seems plagued by security problems in each new version and the comment spam was unmanageable. I hope to get away from that.

This is one more step into the Google cloud for me. Android was the first step, then Mail & Contacts, Chat, Calendar & Tasks, Reader, Voicemail and now Blogger. I know people who are still reluctant to give a third-party corporate entity so much control over their information. But Google continues to add value. My next lost phone won't also lose all my contacts. Google Talk was first to bring video to XMPP. Calendar and Reader have sharing.2 When Google stops adding value, that's when they'll lose me.3

Hopefully now, with less comment spam and administration overhead, I will post more frequently.4

1I cannot recommend Linode highly enough. They are great!
2And see LWN for a recent comparison of RSS aggregators.
3On the other hand, I still fail to see lasting value in Facebook...
4Famous last words!

Chrome for a Cause

Posted on Saturday, December 18, 2010
One more day...

Get the Chrome for a Cause extension and every tab you open between December 15-19 benefits charities.

Statistically undefined...

Posted on Wednesday, May 19, 2010
An article so stupid it's funny.

I love the quote, "The statistic probability of this event is itself statistically undefined."

He also has a follow-up article. Not quite as stupid, but still has some gems: "the coincidence of the two main firms that control the world having a perfect track record is impossible2."