Quix, a bookmarklet and toolbox of web-oriented commands

Quix is a new tool that allows you to unclutter you bookmarklets by using a “command-line” like syntax. You simply drag-and-drop their bookmarklet to your bookmarks and invoke its prompt by clicking it on the page you need it. For example, if you’re on this page and type “gs wiki”, it will Google Site Search this page for the term “wiki” (see video below).

Two very concrete uses of this I see here is accessing a wider variety of search engines and dictionaries and submitting to social sites. The webmaster tools seem very interesting too, if you’re into that.

By the way, this is similar to the Firefox “bookmark keyword” feature, which, combined with the “Add a keyword for this search…” feature gives a similar functionality (see Lifehacker guide). Yet, Quix has a wide range of integrated commands (just reading the list I made a bunch of fun discoveries) and the replacements are more flexible.

Sure earlier there were “command lines for the Web” such as, notably, YubNub. But Quix is different in that it executes in the context of the current page, allowing it to be a portal to other bookmarklets. YubNub is interesting for the wide variety of commands it already has, by the way (and it could be integrated through Quix easily, I guess).

You can also add custom commands to use in the Quix prompt. To do this, you have to understand its syntax, but it’s very simple. As an example, I added a command to clean up the current page for easier reading with the “Instapaper Text” tool (which is similar to Readability, which I posted about about a year ago). The basic command structure is:

command  "bookmarklet code or url"  "description"

To use your own extension (go there for form), you’ll have to put up a text file somewhere on the Web. I suggest using Pastie, and clicking on the “Raw” link. Here’s the textfile for the above Instapaper command.

Update: as this new Lifehacker guide suggests, you can even get the Quix prompt quicker by setting up a keyword/keybinding in Firefox, or similarly in other browsers. See the guidelines for each browser. Also, Lifehacker points to Merlin Mann’s own extensions.

Via ReadWriteWeb.

Clean up webpages for easier reading with Readability

I just discovered Readability via the Academic Productivity blog. Similar in intention to the Aardvark extension I posted about a few months ago, it allows you to reformat a page for easier reading: grab only the main content, change the font to a format of your choice. All through a configurable bookmarklet. In contrast to Aardvark, though, Readability does all of this automatically.

I tried it on a few sites I visit frequently and it seems pretty solid for the most part. On the other hand, it failed on this page. Creating an algorithm to find the main content is quite hard, though, which is why I thought previously a program automating the procedure would not surface. Yet I think it’s still a valuable tool: try it on a page; if it works: great, otherwise use something like Aardvark or deal with dancing bananas and ads for ever more efficient diets.

Plyn: Yet another textfile-and-scripts based ToDo system

Warning: this post is

  1. out of the normal scope of this blog (it’s about personal _information_ management, not personal _knowledge_ management).
  2. mostly for geeks/programmers who will never be fully satisfied by any planning system, ever.

Over the years I’ve tried different ways of handling my ToDo, planning and work logging. This is my Xth iteration. I wonder if anyone but a programmer could use this, but hey, programmers are a non negligible fraction of society (which I happen to be part of)!

I’ve long wanted to create a program which would do precisely what I want in terms of planning, but was always put off by the “*knocks head on wall* the GUI is so long to code!” aspect. Well to hell with the GUI! Let’s deal with raw information, rarrr.

Err, sooo… Plyn (ie. this system) is inspired by the todo.txt scripts of Gina Trapani (LifeHacker author). Basically it allows you to have a very simple yet powerful todo.txt file, and the file is meant to be read directly (in contrast to other programs which use databases only the program can read). The difference is that my version:

  1. is written in Python (in contrast to Bash for Gina’s todo.txt)
  2. allows for hierarchy, empty lines, comment lines, etc. in the file, so the file can really be structured and read by itself, and a good deal of everyday tasks can be done without ever using the scripts
  3. includes a work log aspect, ie. you can record how much time you spent on tasks to keep stats.
  4. includes time estimates, but for the moment it’s not very developed.

So I’d say it departs from the need to be simple, to be expandable and support other dimensions of planning&logging.

Google Code link for the project & code: http://plyn.googlecode.com

The todo.txt format is pretty simple. Here’s an example of content:

12 Elephant in refrigerator project ||| Yeah, I shouldn't try myself at humor.
	# Open refrigerator door
	# Put elephant in refrigerator
	# Close refrigerator door

	-- This line is just a comment

A few observations:

  • You see a task may be nested in another one (which you can see as a project), simply using tabs.
  • Each line begins either with an ID (number) or with #. The # is replaced by a proper ID by cleanchanges.py (more on this later).
  • The ID is followed by a title, then |||, which indicates the start of parameters/comments.
  • You can have blank lines, and comments lines (starting with –).

After the ‘|||’ characters, you can place different parameters. In more detail, the format of a line is:

(INDENT) ID TITLE ||| {PRIORITY} <MINUTES_DONE/MINUTES_TODO> [START_DATETIME-ENDDATE_TIME] COMMENTS

As you can see, many more options may be specified (see the “format.txt” file for detailed information about each of these parameters), and of course this can be expanded (it all relies on a huge regex). But everything following ||| is optional.

So you can edit the todo.txt file manually, but there are, of course, helper scripts to automate certain tasks. The one you’d use the most is today.py. It gives you a list of all high-priority tasks, late/coming up tasks, and tasks awaiting feedback (“+feedback” tag in title). By editing the script you could add whatever other list you need.

You can also, of course, filter tasks by text using grep. So you could have tags or contexts, for example, if you’re into GTD.

The cleanchanges.py script will replace the # at the beginning of the line by an ID which can then be used to refer to the ToDo item in other scripts. cleanchanges.py will also transform dates, so you can write:

-- Today is 2009/03/14
# Clean refrigerator ||| [-+15]

and the item will be changed into

15 Clean refrigerator ||| [-2009/03/29]

ie. the date can be specified as the number of days in the future, which saves finger mana.

The work log is also simple. To say you’ve just spent the last 3 hours cleaning the refrigerator, you would do:

./log.py 15 180 "Some comment to add to the log"

(where 15 is the task ID and 180 is 3 hours expressed in minutes). This will add a line to the log.txt file, and will change the MINUTES_DONE field of the item in todo.txt.

Scripts are meant to be called from a command line you keep open somewhere in the scripts directory, so you can use autocompletion. Path for todo.txt and other files are configured in cfg.py.

And, of course, the whole thing can be extended as you please. My ultimate goal is to have a script with which I can truly estimate the free time I have, ie. to determine if I can engage in a new task or not.

If anyone ever uses this, be sure to let me know! I’m especially interested in hearing of other must-script-the-procrastination-away coders who expand this thing in whichever direction their urges take them.

PDF annotation under Linux with Wine and PDF-XChange Viewer

Changelog

  • 2009/04/10, added script to open files from file manager.

I’ve long wanted a program to annotate PDFs under Ubuntu, but tried many options which all fell short in some way or another. Yet periodically I check to see if a new one has appeared and it seems my wishes have come true, though not through open source software.

PDF-XChange Viewer is a Windows freeware (pro version available too) which installed flawlessly under Wine (Windows emulator) in Ubuntu. In fact I had not used Wine up to this point, and I was surprised how indeed flawless the process was: ‘sudo apt-get install wine’, ‘wine installer.exe’. Bam. It just worked. And it loaded a huge PDF without flinching.

All is not so rosy, though, as the annotations and text won’t show up completely under Ubuntu default PDF viewer. But this had happened with annotations I had made with other programs, so I guess it has to do with Ubuntu’s viewer, not PDF-XChange. Indeed things worked a bit better under Xpdf.

The most surprising part in all of this is that the freeware beats other annotation options I had tried under Windows in the old days: it has many different ways of adding text to pages, different shapes to add and different highlighting options. So I guess I’d recommend that you try it even if you run Windows.

And a quick tip: you can add shortcuts for toolbar commands (including highlighting) by clicking right in the toolbar area, clicking “Customize…”, selecting the “Commands” tab, selecting “Highlight” under “Tools” and clicking “Properties”.

(Found via this post, from someone else who grappled with the other options)


Launching with “Open with…” (NEW 2009/04/10)

To open PDF files from the file manager, put the following script somewhere, change its file permissions to “executable” and use it for the “Open with…” command (adapted from here):

#!/bin/bash  

# Then use this script as default to open PDF files

# Adapted from:
# http://sodeve.net/foxit-reader-on-ubuntu-linux-through-wine/

# Purpose: To convert Linux-style filename to Windows-style
# to pass as an argument to wine when starting PDF XChange Viewer
Filename="z:"${1//\//\\}  

#assuming you use the default installation folder for PDF
# XChange Viewer in Wine
App='eval wine "C:\Program Files\Tracker Software\PDF-XChange '
App=$App'Viewer\pdf-viewer\PDFXCview.exe" "'$Filename'"'

$App

Links: discovering and following key social media resources for a given topic

In my introductory article on RSS, I mentioned that fundamental to a good information diet is following the right sources. Here’s an article on ReadWriteWeb that shows you a method on how to do just that: find the top blogs for a given topic (niche). It compares different ranking systems for blogs.

Once you’ve read that, you might want to check out this other article, which builds on the first one and shows you how to find the most relevant knowledge the set of results you’ve come up with. In essence, it uses AideRSS’ PostRank to find the best articles in the list of blogs you’ve come up with, and shows you how to use Google Custom Search to build a custom search engine that searches only those top sites you’ve found.