Announcement: RedBook v0.5.0 released

Posted by h3rald Sun, 16 Dec 2007 15:07:00 GMT

This new beta release of RedBook introduces quite a few changes when it comes to configuration and setup. Here’s some highlights…

Read more...

Posted in  | Tags , , ,  | no comments | no trackbacks

Announcement: RedBook v0.4.0 released

Posted by h3rald Wed, 28 Nov 2007 15:34:00 GMT

I’m pleased to announce a new release of the RedBook daily logging and time tracking script. This release introduces two new operations, four stats-related directives and a brand new Windows Installer able to setup RedBook in a blink, with (almost) no configuration at all.

Let’s have a closer look…

Read more...

Posted in  | Tags , , ,  | no comments | no trackbacks

Announcement: RedBook v0.3.0 released

Posted by h3rald Thu, 25 Oct 2007 13:18:00 GMT

It’s time for a new beta release of RedBook. This was actually going to be a fairly modest release in terms of features, but I actually ended up implementing a lot more than expected, even things which were planned for the first production release 1.0. So, let’s see what’s new

New operation names (which break compatibility with previous versions)

I had a look at the names I choose for the operations and I noticed that they were either not intuitive enough or too verbose. So I decided to change a fair few of them (thus breaking compatibility with previous versions, but after all that’s what beta releases are for, right?):

OLD NEW
:complete :finish
:load :select
:load_config :config
:load_log :refresh
:timecalc :calc
:stop :quit

New Manual/Home Page

A while ago I discovered TiddlyWiki, but as a matter of fact I never used it for anything practical. From last week though, I started using it a work for taking notes and create short memos, and then I thought of using it to replace RedBook’s standard README file (which was made in a hurry and was kinda cryptical). Now a brand new “manual.html” ships with RedBook—308 KB (30 of actual docs and 278 of Javascript/HTML/CSS magic) with everything you need to know about it. Additionally, an online version is available at the following address:

redbook.h3rald.com

Removed Win32::Console Library

OK this is not good news for people (like me) who use RedBook on Windows, but I promise you’ll forgive me when you read about the other new features below. I discovered by chance that the Win32::Console library (which was used to get colors working on Windows) seems not to handle international characters properly and also seems to be conflicting in some way with the Readline library I decided to include (see below). I don’t know whether this is a problem of the actual library or just of the gem used to pack it.

rbconfig.yml

The config.yml file has been renamed to rbconfig.yml. Additionally, if you place a file with this name in your $HOME directory it will override the one in your RedBook folder (This was done in preparation for the RedBook RubyGem).

New operations

The following new operations are available:

  • :relog—Re-logs a previously-logged message (keeping the same tags and updating the timestamp)
  • :clear—Clears the screen.
  • :ruby—Evaluates arbitrary Ruby code outputting the result (use with care…)

Auto-completion

Some Mac users originally complained that the backspace key wasn’t working in RedBook (and it didn’t in Linux either). Fortunately the solution to this was easy enough: include the GNU Readline library. Readline is now being used in RedBook to:

  • Provide basic (Emacs-style) bindings
  • Auto-completion for keywords and tags
  • Allow the user to automatically customize key bindings via an .inputrc file placed in their $HOME directory (on Windows you’ll have to define a HOME environment variable pointing to a directory of your choice). An example .inputrc file is distributed with RedBook with some specific key bindings.

Support for international characters

Finally, I decided to implement another feature which was originally planned for the 1.0 release: international characters support. This is possible using the Iconv Ruby extension (requires GNU libiconv) which can convert strings between different character sets. The character sets needs to be configured via the rbconfig.yml file.

For more information, check out the ChangeLog

Download RedBook

Posted in  | Tags , , ,  | no comments | no trackbacks

Announcement: RedBook v0.2.0 released

Posted by h3rald Mon, 08 Oct 2007 11:05:00 GMT

“Release Early, Release Often” —Eric S. Raymond, The Cathedral and the Bazaar

In other words, time for another (early) release of RedBook. There are quite a few new features which are worth examining, in particular:

Regexp search for messages

This was actually already available before, just if you inputted a search string which was not a regexp, you’d get an unhandled exception (more or less). This exception is now handled propertly so you get a pretty message instead, if an error occurs when parsing the search string.

Log Backup

A new :backup keyword is available to quickly backup your log file. Here’s what it does:

  • Loads all messages silently
  • Writes them to a file in the same directory as the original log file named <log-alias>.bkp.yml.

Handy, especially if there was a similar keyword to restore the last backup, which is planned for later on.

Support for multiple log files

This is perhaps the most important feature introduced by this release. It is now possible to configure more than one log file by adding any number of :data_<alias>: settings inside your config.yml file, where alias is the name of your log file. So, for example, if your config.yml file contains the following:

:data_test: “testlog.yml”

You can load the “test” log by typing

:use test

(:use is a shorthand for :load_log). Similarly, another new keyword :dest has been introduced to be able to log a message to a different log file without loading it into memory, like this:

:log This message will be saved to testlog.yml :dest test

Finally, a :refresh keyword has been introduced as an alias to reloading the current log.

(Almost) automatic log of completed activities

Right when I was coding the :timecalc operation, I thought it would be nice to be able to log the start and end of a task without having to type it twice. Now this is possible using the :complete keyword:

:log Testing feature X in product Y

:complete

:complete will re-log the last message prepended with [COMPLETED]:

4 Mon Oct 08 2007 – 10:47:45 AM Testing feature X in product Y

5 Mon Oct 08 2007 – 10:54:31 AM [COMPLETED] Testing feature X in product Y

What if I start another task before completing the first one? No problem, it is sufficient to load the last activities using a :load command and then issuing :complete <number> where <number> is the index of the loaded activity. This nifty little feature will become more and more important when (starting from release 0.4) I’ll implement more time tracking functions, and it will be possible to track completed tasks in a specific timeframe and/or marked with a specific tag.

Easy integration with launchers like Launchy and QuickSilver

To conclude, as someone pointed out that it would be cool to use RedBook from launchers like Launchy or Quicksilver, I made another standalone script (redbooklet.rb or redbooklet.exe) which is just able to parse a log command and write a message to the specified log file. To use it with Launchy, for example, all you have to do is the following:

  1. Create a shortcut to redbooklet.exe (or to a way to execute the corresponding ruby script) named “log”.
  2. Copy the “log” shortcut anywhere in your start menu
  3. Bring up launchy (ALT+SPACE) and type in “log”
  4. Hit tab
  5. Type in your log message, optionally with the any :tags or :dest keywords.
  6. The message will be logged to your default log file or to the log you specified using the :dest keyword. If an error occurs, it will appear in a command line window for 15 seconds before the program is closed.

That’s all folks! As usual, if you have any comment or suggestion feel free to reply to this post or email me. For a list of the planned features and releases, check out the Milestones page.

DOWNLOAD HERE

Posted in  | Tags , , ,  | no comments | no trackbacks

RedBook - A simple Ruby program for your daily logging needs

Posted by h3rald Sat, 29 Sep 2007 20:05:00 GMT

Logging your daily activities is important. If you don’t believe me you’d better check at least these three posts on LifeHacker, which feature different scripts and applications:

I had a look at each one of them, and I believe they are quite useful, although I didn’t really find what I was looking for. Why? Well, for example:

  • I don’t believe a GUI is necessary—you’d better off with just a shortcut key or command to run from Launchy or QuickSilver, that’s much faster.
  • They just log timestamped messages on a file, there’s no real way to search through them and display them except by using a test editor
  • They are Windows only—not that it matters for me, but others may not be happy about it.

That’s why I thought I’d roll out my own: meet RedBook. Let me say it’s nothing fancy: I’m not a full-time programmer but I do like playing with Ruby during my lunch breaks at work, so that’s why RedBook is just a humble, tiny Ruby script. This automatically makes it cross-platform: you can install Ruby very easily on Linux & alikes, Mac OS X and Windows. Furthermore, if you are on Windows and for some weird reason you don’t want to install Ruby, you can just try out the packed EXE file (made with RubyScript2Exe)—it’s about 2MB, but you won’t need anything else.

Read more...

Posted in  | Tags , , , ,  | 11 comments | no trackbacks

Introducing RedBook (and the new Code section)

Posted by h3rald Sat, 29 Sep 2007 08:12:00 GMT

I’m somehow pleased to announce the opening of a new section on this site. Nothing too big actually, it’s just a page with a few (one for now) brief descriptions of open source programs and scripts I made and I’d like to share with my readers.

Don’t expect fancy stuff: (luckily) I don’t code for a living, I code for pleasure and I code small things. Lately I’ve been trying to write a small Ruby program able to log my daily activities and also display them in a pleasant enough way, so I started using my lunch breaks at work more constructively and I came up with RedBook an interactive command-line program written in Ruby.

Main features:

  • Log timestamped and tagged messages to a single YAML file
  • Load and display messages containing a certain string, or certain tags or within a time frame.
  • Calculate the time elapsed between two or more tasks.
  • Export loaded messages to YAML, TXT or CSV format.

All done via command line via simple commands:

:log This is a test message :tags test

:load :last 30 :from last week

:timecalc 2 5

:save test.txt

Thanks to the wonderful Chronic library, you can specify your time frames using natural language expressions like “8 in the morning”, “this tuesday”, “last month” and so on…

Here’s a screenshot showing RedBook in action:

RedBook is of course free, open source software licensed under the terms of the BSD license. It can be installed on any machine able to run Ruby and there’s also an EXE version for the lazy windows folks who don’t want to install Ruby, packed with RubyScript2Exe. A more in-depth article explaining how RedBook works will hopefully be completed soon is available :here

Posted in  | Tags , , , ,  | no comments | no trackbacks