productivity
Little bits of Linux
A few things which have filled my geeky world this week.
Rockbox. Simply Rocks.
A fellow Crunchbang user informed me of this firmware replacement for a number of digital media players including the Apple iPod series. I was recently gifted a 1st generation iPod Mini, which even with the default firmware worked great under Crunchbang Linux, using gtkPod for managing it. I quickly became frustrated with the missing ability to drag and drop music onto the player, rather than using the devices iTunes like database as the way Apple intended. I downloaded the Rockbox installer, plugged up the iPod via USB and ran the file. Five mins later and had a very detailed, very customizable and extent able interface on this neat little player. I can now drag and drop any media file supported by the hardware, including Mp3, Ogg and my beloved FLAC formats directly in a file browser or via command line like any other usb storage device. The unit has a failing battery which will need to be replaced soon and under the orginal Apple firmware it was only usable for about 30 mins. After switching to the open source Rockbox firmware I get about 2.5 hours of play, although I plan on replacing the battery eventually.
In my never ending search for a streamlined system of organization I take a lot of notes, up until recently anything that wasn’t a todo list item was kept as reference in a neat note taking application called Gnote. Being a fan of minimalism I like having access to my information in plain text, so I was dismayed to learn Gnote does not keep its files in plain text. After asking around on the Crunchbang forums I was informed of Zim, a great personal wiki which stores it’s notes in plain text, dated files and folder based notebooks.
This weeks quick tip.
Search and Replace text in all files in a folder and its subfolders
I don’t remember where I found this but it saved me a lot of work recently so I’m passing it along.
#To replace all occurances of a string:
find /your/home/dir -name “*.txt” | xargs perl -pi -e ‘s/stringtoreplace/replacementstring/g’
#To replace the first occurance:
find /your/home/dir -name “*.txt” | xargs perl -pi -e ‘s/stringtoreplace/replacementstring/’
Any finally I’ve become quiet a fan of the Linux Outlaws podcast, Fab and Dan are both very funny and provide a crap load of great Linux information. Their show is a real resource and a worthy addition to your podcast feed list.
Calcurse & Todo.Txt for GTD
Calcurse is a text-based calendar and scheduling application, it uses flat, human readable files for holding data about your calendar, appointments, and todo list. The app can import and export ical files though now automatically.
Todo.txt is a simple and extensible shell script for managing your todo.txt file. With a couple changes to todo.txt’s config file you can set it to write the ~/.calcurse/todo file giving you the ability, after adding a bash alias, to issue a command like this functionality is lacking in the current Calcurse.
Edit:
~/todo.cfg
# === EDIT FILE LOCATIONS BELOW ===
# Your todo.txt directory
export TODO_DIR=”/home/yourusername/.calcurse” <– change the TODO_DIR to your .calcurse directory and username
#export TODO_DIR=”C:/Documents and Settings/gina/My Documents”# Your todo/done/report.txt locations
export TODO_FILE=”$TODO_DIR/todo” <– remove file extension
export DONE_FILE=”$TODO_DIR/done.txt”
export REPORT_FILE=”$TODO_DIR/report.txt”
export TMP_FILE=”$TODO_DIR/todo.tmp”
Add items to your todo list in Calcurse
t add buy groceries
or
Quicky mark and item done and archvie it, making it invisible to the todo list but still kept as a list of completed actions.
t do 2
2 refers to the line number in the todo file.
When adding or editing todo items in Calcurse you can assign priorities [1] being the most important [9] being the least. You can do this on the command line with todotxt-cli by adding [1] or simular priority number to the task and include your designations for +projects and @contexts.
t add [3] finish howto
Starting Calcuruse or running
t archive
reorders and backups your list. Your items marked done via todotxt-cli will still show up in
t listall
but will not show up on your Calcurse todo list as current items.
For me, with the inclusion of Mutt provides a complete solution for productivity, including human readable text files and the ability, if you run conky, to have your appointments and todo list on your desktop. See this link for screenshots of my todo list.
if you use either of these apps or just like the ideas of a cli approach to getting things done please share your ideas on ways to integrate the two further. I’m currently working on a howto for the setup.
I wrote the author of Calcurse posing three questions I had before writing my howto.
Questions:
1. Is there a way to have calcurse append to the todo file rather than overwrite it?
2. Is there a way to add/delete an item to the calcurse todo list via command line?
3. Is there a way to have calcurse reload it’s config files, without saving to them first?
He sent me a response shortly:
Regarding your questions, unfortunately I must answer no to all of the 3 questions…
So it looks like the current functionality is the extent of the functionality for now, making any further HowTo tough until one of the three things comes about. He did mention that a couple of command line flags would be a good thing, and possibly implemented in the next release. Unfortunately he is unable to give any sort of idea of when that might be due to his schedule.
The GTD workflow Pt. II
I have previously touched on my affinity for David Allen’s Getting Things Done productivity books and the GTD system as a whole. While I latched onto the concepts fairly quickly, the same concepts have been discussed at great length over the past few years online, one frustration shared by many a GTD disciple is committing yourself to a work-flow that actually works for you. I’ve tried hacked up solutions involving Evolution, Thunderbird/Lightning combo, GTD-GMail, various personal wikis/notebooks such as GTD TiddlyWiki, and MonkeyGTD, all awesome in their own rights but not quite right for me at least for GTD.
Most recently I have been spending a lot of time with Todo.Txt and WXRemind, since like a couple of other solutions all of list management is done by editing text files either directly via a text editor or on command line and the user is left with their data in the most portable, mod-able, easy to access format. However after a couple of days, much like the solutions mentioned above I grew tired of the limitations of the script or program and lacked the interest to really get down and learn what amounts to a dedicated scripting language simply to interact with my to-do list and other similar files. Another issue is that personal information management software such as Outlook, Evolution, and even Thunderbird/Lightning are pretty heavy on the resources and too dependent upon an internet connection causing much of the work that goes into setting up these systems to be for naught. It should be stated that what works for one person, doesn’t always work out for others, which is why I cannot criticize any of the scripts or applications I mentioned above.
So after reviewing what I actually need, a set of to-do lists for projects and contexts to preform them, a closely linked calendar with reminder system and access to both of these elements regardless of access to the internet.
After a couple of days tinkering with all of the above as well as Org-Mode for Emacs (way too involved btw) I have settled on a system utilizing the following components:
Google Calendar/Mozilla Lightning Extension
Allows for sharing with the girlfriend, multi-pc access as it’s web based and it’s rss feed and api allow for tight intetgration into the rest of my system. The private iCal feed brings the data into the Lightning calendar extension for Thunderbird.
Thunderbird/GMail via Google Apps for Domains
When I’m actually doing my weekly review or adding my weekly work schedule I need access to email and a calendar, having them both in one app which syncs the data for offline access is absolutely key to my personal system.
Conky
Conky is one of those simple apps that keeps gaining more functionality everyday. I show the next 5 days schedule just be low my todo list right on my desktop so that it’s literally in my face, making my agenda and next actions hard to ignore. This is all possible thanks to Kaivalagi’s (freakin awesome) Python Scripts. I use them to query my Google Calendar, cat my todo.txt, system stats, and display whats playing in Exaile.
ToDo.txt
This little command line app allows me to jot down my thoughts and tasks about as quickly as I can think them. It also allows me to edit my list or lists from command line or using any text editor.
At the end of this process I’ve learned alot about some really great Open Source applications but most importantly I’ve analyzed what tools fit my lifestyle, work and thought process best. The Getting Things Done system of productivity and organization is one which only has as much value as you allow it too and is directly affected by your choice of implementation and the ease of which you can access your information. If your system is too complicated you will only find your self more frustrated and less likely to keep it up.
Adventures in Skype
Most Linux users are familiar with Skype and just as familiar that Skype shows little to no love for it’s paid subscribers who happen to be Linux users. Our current version of the popular VOIP software has been stuck at 2.0.72 for a couple of years now. Nonetheless many of use use the service regularly and pay our dues like the rest of the users.
Recently I’ve been wanting to get more out of my Skype account, which meant getting a dedicated Skype hardware phone. There are a number of options from a $12 usb phone, a non-starter for Linux users as it’s not supported, or the pc-less Internet phones which fetch prices above $100. Being the miserly geek I am I started searching for other solutions and came across a two part solution to my problem.
Part 1:
A USB Telbox Phone Adapter, a small silver box powered by usb that interacts between Skype and any old telephone. I tested this with a self powered cordless phone . Less than $20 on Amazon.com
Part 2:
kB2Kskype software which requires usbb2k-api-mod2.8 (both available from the kb2skype site), and kdelibs4c2a (available via apt-get) once installed everything just worked.
I plugged in the phone to the phone port on the Telbox and instantly Skype popped up and I was able to call by double clicking a contact on my Skype list. You can also use speed-dial codes but I have yet to check them out. I also have yet to test call quality, which for some has been an issue if the Telbox isn’t used with a powered usb hub.
##Update -
The sound quality was much better than expected in terms of clarity however whenever you press the pound key during a call, the telbox or skype intiates the dial tone sound, but does not drop the call. Overall I’m very satisfied.
I’m very impressed with such a simple, cost effective solution to a practical problem.
This solution has been tested only with Ubuntu based Cruchbang Linux on an Acer Aspire 6530.
My choosen GTD Trusted System
I have been looking for a “trusted system” for my own personal implementation of David Allen’s Getting Things Done productivity system.The system itself has been a fan of many a geek and has been discussed many, many times over the past few years. Lifehacker has been a huge resource for those of us in the cult of GTD. Recently while playing with todo.txt I did some research on Lifehacker and found a new application called Tracks, a web based basecamp/project pier style GTD app which runs on Windows, Linux and Mac OS. While the dependency list is pretty long installing it on my Ubuntu notebook was as easy as using the cross platform installer by BitNami. Those of use used the concept of Projects, Context, and Next Actions will feel at home pretty quickly. If this is all alien to you check ou the Wikipedia entry on GTD. Since Tracks offers RSS feeds it was easy to incorporate my Next Actions list into Conky, my desktop system monitor/tool/best friend. Now when I update Tracks my next actions automatically show on my desktop, giving me one more reminder to get something done.
Since I frequently find myself outside of the house w/ no net connection other web based solutions were not an option. However a local install of many of these apps is possible, the BitNami script made the whole thing trivial.
One draw back is that you have to remember to start the service on reboot otherwise you will find Conky spitting out RSS parse errors, as your page isn’t currently being served via Apache.




