<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
  <channel>
    <title>H3RALD - Tag 'productivity' (RSS Feed)</title>
    <language>en-us</language>
    <lastBuildDate>Sat, 30 Jul 2011 16:07:53 -0600</lastBuildDate>
    <ttl>40</ttl>
    <link>http://www.h3rald.com</link>
    <description/>
    <item>
      <title>Getting things done... in Wonderland!</title>
      <description>
		&lt;section class="section"&gt;
&lt;p&gt;I don&amp;#8217;t remember the exact day when I started using a todo list in a serious way. It definitely happened at work, but I can&amp;#8217;t remember when exactly. The point is that, once I started working (and getting paid for what I love doing &amp;ndash; writing), I slowly turned into a real &lt;em&gt;productivity freak&lt;/em&gt;.&lt;/p&gt;
&lt;p&gt;I write &lt;em&gt;everything&lt;/em&gt; down. My colleagues know that if I say that I&amp;#8217;ll do something &lt;em&gt;right now&lt;/em&gt; but I don&amp;#8217;t do it within five minutes, they have to assume that I forgot about it altogether and they&amp;#8217;d better send me an email.&lt;/p&gt;
&lt;p&gt;I am not a paper person. Never been one. When I got a job which consisted in working on the computer for eight hours a day, I started looking for todo list programs. That turned into an endless quest: I tried X for a few weeks, then I discovered that Y was better, used it for months, then moved onto Z, and so on.&lt;/p&gt;


	&lt;section class="section"&gt;
&lt;header&gt;&lt;h1 id="h_1"&gt;What's wrong with 90% of digital todo lists&lt;/h1&gt;&lt;/header&gt;
&lt;p&gt;Over the past five years, I must have tried dozens of different digital todo lists, and every single one of them had something wrong with it. Here are the most common flaws I encountered in many applications:&lt;/p&gt;
&lt;ul&gt;
	&lt;li&gt;&lt;strong&gt;Too many fields&lt;/strong&gt; &amp;ndash; I don&amp;#8217;t want to specify (or see, either) a due date, a start date, a completion date, priority, effort, risk, tags, categories, sections, flags, stars, projects, reminder, pre-reminder, recurrency, location, contexts, and finally the actual task. I just want to write down what I have to do. Maybe I want to flag it as &lt;em&gt;important&lt;/em&gt;. Sometimes I may need to set a deadline with a reminder, but that starts getting complex already.&lt;/li&gt;
	&lt;li&gt;&lt;strong&gt;Too few fields&lt;/strong&gt; &amp;ndash; On the other hand, just a title and a checkbox won&amp;#8217;t do. I want some form of categorization and (optional) deadlines.&lt;/li&gt;
	&lt;li&gt;&lt;strong&gt;Not cross-platform&lt;/strong&gt; &amp;ndash; I use Windows at work, Linux at home, my wife has a Mac. We both have iPhones, but someday I may get an Android device, too. There aren&amp;#8217;t many todo lists out there that support more than two operating systems, nevermind mobile devices or web access!&lt;/li&gt;
	&lt;li&gt;&lt;strong&gt;Too fiddly&lt;/strong&gt; &amp;ndash; See the first complaint, above. With too many fields almost always comes a complex interface. I don&amp;#8217;t want to wait 17 clicks to save my task. I want to type in what I want to do, and press Enter. Is it too much to ask for?&lt;/li&gt;
	&lt;li&gt;&lt;strong&gt;Made for a particular methodology&lt;/strong&gt; &amp;ndash; &lt;span class="caps"&gt;GTD&lt;/span&gt; is great and David Allen is the God of Productivity, but I don&amp;#8217;t want to use @contexts or specify next actions because don&amp;#8217;t believe in them, therefore I shouldn&amp;#8217;t be forced to do so.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;90% of the digital todo list suck. Believe me. 10% &amp;ndash; perhaps &amp;ndash; don&amp;#8217;t. Luckily, I just need &lt;em&gt;one&lt;/em&gt;, and guess what: I found it!&lt;/p&gt;

&lt;/section&gt;

	&lt;section class="section"&gt;
&lt;header&gt;&lt;h1 id="h_2"&gt;Introducing Wunderlist: the quest is over!&lt;/h1&gt;&lt;/header&gt;
&lt;p&gt;&lt;a href="http://www.6wunderkinder.com/wunderlist/"&gt;Wunderlist&lt;/a&gt;, the List of Wonders, you can use it anywhere and at any time. It&amp;#8217;s so awesome that&amp;#8230; I should stop the ass-kissing right now, and get to the &lt;em&gt;facts&lt;/em&gt;.&lt;/p&gt;
&lt;p&gt;I discovered Wunderlist when my endless quest led me to the App Store. I think I must have installed nearly all the damn todo list apps, even the crappy ones. I didn&amp;#8217;t fall in love with Wunderlist at first tap: it took a few install-uninstall cycles, but in the end I settled for it. Here&amp;#8217;s why:&lt;/p&gt;
&lt;ul&gt;
	&lt;li&gt;&lt;strong&gt;Free&lt;/strong&gt; &amp;ndash; Not that it matters that much, I would happily pay a few bucks for a &lt;em&gt;good&lt;/em&gt; app. And yes, I did pay for a few todo lists that I dumped afterwards. Bummer.&lt;/li&gt;
	&lt;li&gt;&lt;strong&gt;Cross-platform&lt;/strong&gt; &amp;ndash; iPhone, iPad, Android, Windows, OS X. And Linux? Not really, but who cares: the web app is fine and it probably plays well &lt;a href="http://haiku-os.org/"&gt;Haiku&lt;/a&gt; as well.&lt;/li&gt;
	&lt;li&gt;&lt;strong&gt;Simple and Efficient&lt;/strong&gt; &amp;ndash; Two clicks to add a task to any list. No compulsory extra-fields, optional deadlines, unlimited lists. Got something important to do? Tap the star on the left of the task to move it to the top of your list and bookmark it.&lt;/li&gt;
	&lt;li&gt;&lt;strong&gt;Amazing email integration&lt;/strong&gt; &amp;ndash; Create tasks via email, share tasks with others via email, get reminders via push&amp;#8230; or email. They even email you if you have overdue tasks. Like&amp;#8230; everyday! I was so happy when they implemented this feature that I nearly cried when I got the first few emails.&lt;/li&gt;
	&lt;li&gt;&lt;strong&gt;Everything is sync&amp;#8217;ed&lt;/strong&gt; &amp;ndash; On your iPhone, iPad, Android device, Windows PC, Mac, web, etc. It&amp;#8217;s all there, always, everywhere.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;When I finally realized how awesome this app was, I started using it for chores, and as a shopping list. Then I figured it was good enough as a backlog for my open source projects and my web site, and then&amp;#8230; Then my wife discovered it.&lt;/p&gt;

&lt;/section&gt;

	&lt;section class="section"&gt;
&lt;header&gt;&lt;h1 id="h_3"&gt;Why your wife shouldn't use it...&lt;/h1&gt;&lt;/header&gt;
&lt;p&gt;&lt;img src="/img/pictures/wunderlist/wunderlist-list.png" style="float:right;margin-top:1em;" /&gt;&lt;/p&gt;
&lt;p&gt;One of the relatively unusual features of Wunderlist is the possibiliy of sharing lists with others. All you have to do is click a button, specify one or more email address, and send invitations out. People will then signup for a free Wunderlist account and they&amp;#8217;ll be able to access (as in read/write access) your list.&lt;/p&gt;
&lt;p&gt;Because Roxanne, my wife, has an iPhone, she was the most obvious candidate to try out this collaborative feature. First I shared my &lt;em&gt;Shopping&lt;/em&gt; list with her: we needed to make a list of things to get for a party, and that was fun. Wunderlist worked perfectly: we went around the supermarket and ticked things off the shared list, which updated in real-time!&lt;/p&gt;
&lt;p&gt;All went great until I decided to share the infamous &lt;em&gt;Chores&lt;/em&gt; list. You know the one: bills, fees, errands&amp;#8230; I used to say things like &amp;#8220;it&amp;#8217;s on my list, honey, I&amp;#8217;ll do it&amp;#8221;, or even &amp;#8220;Yes&amp;#8230; I&amp;#8217;ll add it to the &lt;em&gt;Chores&lt;/em&gt;, just gimme a minute&amp;#8221;. Little did I know that my beloved liked Wunderlist so much that she started using it frequenly, constantly updating the damn chores list with things like &amp;#8220;Take the rubbish out&amp;#8221; or &amp;#8220;Collect the package from the post office&amp;#8221;.&lt;/p&gt;
&lt;p&gt;I realized she became a true Wunderlist ninja when I found a task called &amp;#8220;Flowers for Roxanne!&amp;#8221; &amp;ndash; starred and with a deadline set to &lt;em&gt;two months ago!&lt;/em&gt;&lt;/p&gt;

&lt;/section&gt;

	&lt;section class="section"&gt;
&lt;header&gt;&lt;h1 id="h_4"&gt;My five work lists&lt;/h1&gt;&lt;/header&gt;
&lt;p&gt;After months of trial, I decided to use Wunderlist at work as well. With caution, of course: I made sure not to write down any sensitive information in my tasks, because you never know. I started off with just one list, but it got crowded very quickly. I now use &lt;em&gt;five&lt;/em&gt; lists for work only:&lt;/p&gt;
&lt;p&gt;&lt;img src="/img/pictures/wunderlist/wunderlist-work.png" style="float:right;margin-top:1em;" /&gt;&lt;/p&gt;
&lt;ul&gt;
	&lt;li&gt;&lt;strong&gt;Work [!]&lt;/strong&gt; &amp;ndash; This is the most active one, I use it for things to do &lt;span class="caps"&gt;ASAP&lt;/span&gt;. Starred tasks are urgent and important, and should be dealt with within the day. At work, that&amp;#8217;s my default list.&lt;/li&gt;
	&lt;li&gt;&lt;strong&gt;Work [~]&lt;/strong&gt; &amp;ndash; This is for things that in progress, for tasks I delegated to other people, for keeping track of emails waiting for a reply, etc. I tend to check it at least a couple of times per day (if something is really urgent gets moved to the first list).&lt;/li&gt;
	&lt;li&gt;&lt;strong&gt;Work [&amp;#8230;]&lt;/strong&gt; &amp;ndash; This is for someday/maybes. Something that is most definitely not urgent, and not too important either. I normally review it once a week, except in the middle of August when I won&amp;#8217;t be able to do anything because everyone will be on holiday&amp;#8230; It will become my default list for a week or two, then.&lt;/li&gt;
	&lt;li&gt;&lt;strong&gt;Work [CoP]&lt;/strong&gt; &amp;ndash; I also work as the coordinator of a Community of Practice, and I want to keep CoP-related stuff separate, so that I know where to look when I can allocate some CoP time during my day.&lt;/li&gt;
	&lt;li&gt;&lt;strong&gt;Work [@boss]&lt;/strong&gt; &amp;ndash; This is a special list for my boss only. We email each other frequently, but rather then sending her long emails she can&amp;#8217;t afford to read, I write down discussion topics in this list, which I&amp;#8217;ll then load up at the following status meeting.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;The next step? Maybe sharing lists with my boss and collegues, who knows&amp;#8230;&lt;/p&gt;

&lt;/section&gt;

	&lt;section class="section"&gt;
&lt;header&gt;&lt;h1 id="h_5"&gt;The bottom line&lt;/h1&gt;&lt;/header&gt;
&lt;p&gt;Saying that Wunderlist is the &lt;em&gt;perfect&lt;/em&gt; todo list for &lt;em&gt;everyone&lt;/em&gt; would be pointless: there would always be people who wouldn&amp;#8217;t agree with that. Wunderlist is not perfect, but close enough for me: it has most of the feature I need, and &amp;ndash; most importantly &amp;ndash; very little features I don&amp;#8217;t need. In the end, this is what makes an app truly awesome.&lt;/p&gt;
&lt;p&gt;I give it four stars out of five. Why not five? Because in this way &lt;a href="http://www.6wunderkinder.com/"&gt;6Wunderkinder&lt;/a&gt; can make Wunderlist &lt;em&gt;even a better product&lt;/em&gt; by surprising its users with something they didn&amp;#8217;t know they wanted. That&amp;#8217;s what Steve Jobs does at every Keynote, isn&amp;#8217;t it?&lt;/p&gt;
&lt;p&gt;&lt;img src="/img/pictures/wunderlist/wunderlist-done.png" style="text-align:center;margin:auto;display:block;" /&gt;&lt;/p&gt;

&lt;/section&gt;

&lt;/section&gt;</description>
      <pubDate>Sat, 30 Jul 2011 16:07:53 -0600</pubDate>
      <guid>http://www.h3rald.com/articles/wunderlist/</guid>
      <link>http://www.h3rald.com/articles/wunderlist/</link>
      <author>h3rald@h3rald.com</author>
      <comments>http://www.h3rald.com/articles/wunderlist/#comments</comments>
      <category>productivity</category>
      <category>review</category>
      <category>software</category>
    </item>
    <item>
      <title>Book Review: Succeeding with Agile</title>
      <description>
		&lt;section class="section"&gt;
&lt;blockquote&gt;
&lt;p&gt;&amp;#8220;This is not a book for those who are completely new to &lt;em&gt;Scrum&lt;/em&gt; or &lt;em&gt;agile&lt;/em&gt;. There are other books, classes, and even websites for that. If you are completely new to &lt;em&gt;Scrum&lt;/em&gt;, start with one of those.&amp;#8221;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p style="padding-left:5em;"&gt;&amp;#8212; Mike Cohn, &lt;em&gt;Succeeding with Agile&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;Great. That&amp;#8217;s just great. Good job I started with the &lt;em&gt;Introduction&lt;/em&gt; first, otherwise the first chapters of this book would have been way too overwhelming!&lt;/p&gt;
&lt;p&gt;&lt;a href="http://www.succeedingwithagile.com/"&gt;&lt;em&gt;Succeeding with Agile&lt;/em&gt;&lt;/a&gt; is a book that &lt;em&gt;doesn&amp;#8217;t&lt;/em&gt; teach you about &lt;em&gt;Scrum&lt;/em&gt; or &lt;em&gt;agile&lt;/em&gt; methodologies, it won&amp;#8217;t give you a definition of ScrumMaster, sprint, or backlog&amp;#8230; instead, it takes all that for granted and teaches how to pragmatically adopt &amp;#8212; or better, &lt;acronym title="Awareness, Desire, Ability, Promotion, Transfer"&gt;&lt;span class="caps"&gt;ADAPT&lt;/span&gt;&lt;/acronym&gt; to &amp;#8212; &lt;em&gt;Scrum&lt;/em&gt;, in the context of yourself, your team, and even your entire organization.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&amp;#8220;[&amp;#8230;] this book draws on my experience with &lt;em&gt;Scrum&lt;/em&gt; over the past 15 years, but especialle the last 4. For the last 4 years, every evening after I spent the day with one of my clients, I would go back to my hotel room and make notes about problems they were facing, the question they asked, and the advice I gave.&amp;#8221;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Indeed, this book is a gold mine of information, anecdotes, tips and tricks about everything you could possibly want to know about making &lt;em&gt;Scrum&lt;/em&gt; work, at any level. If you have some knowledge about &lt;em&gt;agile&lt;/em&gt; development you definitely have some questions: &lt;em&gt;will it work?&lt;/em&gt; &amp;#8230; &lt;em&gt;is it really more productive?&lt;/em&gt; &amp;#8230; &lt;em&gt;how can I make my boss understant this?&lt;/em&gt;. This book has all the answers you need. Most definitely, it also answer questions you didn&amp;#8217;t think of.&lt;/p&gt;
&lt;p&gt;If you don&amp;#8217;t know what all this is about, then you&amp;#8217;d better do your homework first:&lt;/p&gt;
&lt;ul&gt;
	&lt;li&gt;&lt;a href="http://www.mountaingoatsoftware.com/topics/scrum"&gt;Introduction to &lt;em&gt;Scrum&lt;/em&gt; &amp;#8211; An Agile Process&lt;/a&gt;&lt;/li&gt;
	&lt;li&gt;&lt;a href="http://en.wikipedia.org/wiki/_Scrum__(development)"&gt;&lt;em&gt;Scrum&lt;/em&gt; (Wikipedia Page)&lt;/a&gt;&lt;/li&gt;
	&lt;li&gt;&lt;a href="http://www.scrumalliance.org/"&gt;&lt;em&gt;Scrum&lt;/em&gt; Alliance&lt;/a&gt;&lt;/li&gt;
	&lt;li&gt;&lt;a href="http://www.scrum.org/"&gt;&lt;em&gt;Scrum&lt;/em&gt;.org&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;section class="section"&gt;
&lt;header&gt;&lt;h1 id="h_1"&gt;Overview&lt;/h1&gt;&lt;/header&gt;
&lt;img src="/img/pictures/succeeding-with-agile.jpg" style="float:left;" /&gt;
&lt;p&gt;The book is organized into five parts of different length, ranging from 20 to over 100 pages. If you read the book from the start till the very end, you&amp;#8217;ll notice that the start of each part is like a new milestone in &lt;em&gt;Scrum&lt;/em&gt; adoption: first the author makes sure that &lt;em&gt;you&lt;/em&gt; are prepared (Part 1), then moves on to deal with individuals and initial resistance (Part 2), then teams (Part 3) and finally the whole organization (Part 4), until you can finally taste the fruits of you labor (Part 5).&lt;/p&gt;
&lt;p&gt;In a way, you may well want to carry this book in your briefcase every day you go to work, and read it bit by bit, as you make progress in your quest for &lt;em&gt;Scrum&lt;/em&gt; adoption.&lt;/p&gt;

	&lt;section class="section"&gt;
&lt;header&gt;&lt;h1 id="h_2"&gt;Part I: Getting Started&lt;/h1&gt;&lt;/header&gt;
&lt;p&gt;Part I is about making sure you know &lt;em&gt;why&lt;/em&gt; becoming gile is important and beneficial to you and your work environment. It will teach you how to promote &lt;em&gt;Scrum&lt;/em&gt;, its advantages and challenges, and the different ways to go about it: Start Small or Go All In? Stealth or Public Display? Things like that. Pointless theory? Not really: everything is well documented, with success stories to support one way or the other.&lt;/p&gt;

&lt;/section&gt;	 

	&lt;section class="section"&gt;
&lt;header&gt;&lt;h1 id="h_3"&gt;Part II: Individuals&lt;/h1&gt;&lt;/header&gt;
&lt;p&gt;This part was very interesting from a psychological point of view: it deals with individuals and their possible reactions to becoming &lt;em&gt;agile&lt;/em&gt;. You&amp;#8217;ll meet &lt;em&gt;skeptics&lt;/em&gt;, &lt;em&gt;followers&lt;/em&gt;, &lt;em&gt;saboteurs&lt;/em&gt; and &lt;em&gt;diehards&lt;/em&gt; &amp;#8212; no hope? Well, of course not: you&amp;#8217;ll learn how to deal with each one of them in the best way possible. This part will also introduce you to new roles and responsabilities related to &lt;em&gt;Scrum&lt;/em&gt;.&lt;/p&gt;

&lt;/section&gt; 

	&lt;section class="section"&gt;
&lt;header&gt;&lt;h1 id="h_4"&gt;Part III: Teams&lt;/h1&gt;&lt;/header&gt;
&lt;p&gt;Up next, Teams. You&amp;#8217;re no longer dealing with single-minded individuals, but with more complex groups. New challenges emerge, mostly related to communication and people interactions. I particularly enjoyed &lt;strong&gt;Chapter 13 &amp;#8212; The Product Backlog&lt;/strong&gt;, which provides invaluable insights on this important everyday tool. &lt;strong&gt;Chapter 15 &amp;#8212; Planning&lt;/strong&gt; is another interesting read: it teaches you a lot about planning vs. estimating, and coming to compromises to meet deadlines.&lt;/p&gt;

&lt;/section&gt; 

	&lt;section class="section"&gt;
&lt;header&gt;&lt;h1 id="h_5"&gt;Part IV: The Organization&lt;/h1&gt;&lt;/header&gt;
&lt;p&gt;If you made it up to here, then you&amp;#8217;re nearly done. You probably know most of the tricks by now, but there&amp;#8217;s still a lot to learn. &lt;strong&gt;Chapter 17 &amp;#8212; Scaling &lt;em&gt;Scrum&lt;/em&gt;&lt;/strong&gt; is definitely worth reading, even just for the analysis between &lt;em&gt;formal&lt;/em&gt; and &lt;em&gt;informal communities&lt;/em&gt;, while &lt;strong&gt;Chapter 19 &amp;#8212;Cohexisting with Other Approaches&lt;/strong&gt; almost feels heretical at times: mixing &lt;em&gt;Scrum&lt;/em&gt; with Waterfall? Is that even conceivable? Yes. Sometimes it&amp;#8217;s the only way, especially when you have to deal with compliance to standards like ISO9001. Once again, the author has a nice success story on how a company passed an ISO9001 audit by providing documentation in form of photocopied notes and by adding a single failing test to persuade the auditor that the automated test suite was not rigged. Priceless.&lt;/p&gt;

&lt;/section&gt; 

	&lt;section class="section"&gt;
&lt;header&gt;&lt;h1 id="h_6"&gt;Part V: Next Steps&lt;/h1&gt;&lt;/header&gt;
&lt;p&gt;Only two chapters in this part of the book, which mainly deals with (self) assessment and progress analysis. Still worth a read, but you can safely leave it out for when you succeeded with &lt;em&gt;agile&lt;/em&gt;.&lt;/p&gt;

&lt;/section&gt;

&lt;/section&gt; 

&lt;section class="section"&gt;
&lt;header&gt;&lt;h1 id="h_7"&gt;Technical Analysis&lt;/h1&gt;&lt;/header&gt;
&lt;p&gt;I&amp;#8217;m not exaggerating when I say that this is &lt;em&gt;by far&lt;/em&gt; the best book I&amp;#8217;ve read in the past few years when it comes to the way it is organized. Start by reading the &lt;a href="http://my.safaribooksonline.com/9780321660534?portal=informit"&gt;table of contents&lt;/a&gt;: if you take each chapter out and make a bulletted list of each section you&amp;#8217;ll end up with a handy (and free!) cheat sheet on how to promote and adopt Agile methodologies.&lt;/p&gt;
&lt;p&gt;This doesn&amp;#8217;t mean the book isn&amp;#8217;t a worthwhile read, but rather that it can also be used as a reference when needed.&lt;/p&gt;

&lt;section class="section"&gt;
&lt;header&gt;&lt;h1 id="h_8"&gt;Formatting and Readability&lt;/h1&gt;&lt;/header&gt;
&lt;p&gt;From a technical writing point of view, this book is spotless. I should keep it on my desk to remind me how technical documentation should be written, except that&amp;#8230; it&amp;#8217;s not a technical manual of course. But the formatting and the way content is laid out can make the most skilled technical writer very jealous: there&amp;#8217;s never a huge blob of boring text, never a series of pointless pictures: Mike Cohn (or his editors) did a terrific job composing this book.&lt;/p&gt;
&lt;p&gt;You can start reading it from any point and it still makes sense, diagrams are simple and clear, and yet extremely useful, and so are the reference tables and spreadsheets. They never hurt, they are always in the right place, at the right time. And bold text is aptly used at the start of list items, so that even if you skim through the key concepts will still make it to your brain. Excellent.&lt;/p&gt;

&lt;/section&gt;

&lt;section class="section"&gt;
&lt;header&gt;&lt;h1 id="h_9"&gt;Style and Contents&lt;/h1&gt;&lt;/header&gt;
&lt;p&gt;Reading this book is like listening to a seminar hold by some charismatic icon like &lt;a href="http://en.wikipedia.org/wiki/David_Allen_(author)"&gt;David Allen&lt;/a&gt; or &lt;a href="http://en.wikipedia.org/wiki/JoAnn_Hackos"&gt;JoAnn Hackos&lt;/a&gt;: you never get bored, and you constantly learn something. Mike&amp;#8217;s informal and conversational style is one of the main reasons why you should read this book instead of others on the subject: he is a great communicator, and he knows how to make his point across.&lt;/p&gt;
&lt;p&gt;As an added value, Mike also uses two types of &lt;em&gt;boxes&lt;/em&gt; throughout the book:&lt;/p&gt;
&lt;ul&gt;
	&lt;li&gt;&lt;strong&gt;Things to try now&lt;/strong&gt; &amp;#8212; Whenever a new strategy or practice is introduced, you&amp;#8217;ll find one of these boxes containing a bulleted list. &lt;em&gt;&amp;#8220;Commit to running the next two or three sprints without any overtime&amp;#8221;&lt;/em&gt;, &amp;#8220;Do you understand what motivates every other person on your team? If not, find out. How? Ask them.&amp;#8221;, &amp;#8230; these are just examples of some of the author&amp;#8217;s reccommendations to put you in the right track.&lt;/li&gt;
	&lt;li&gt;&lt;strong&gt;Objection&lt;/strong&gt; &amp;#8212; Either actual quotes from customers and employees, or possible statements which may come out throughout the process of adopting &lt;em&gt;Scrum&lt;/em&gt;. Things like &lt;em&gt;&amp;#8220;If the product includes less than what we&amp;#8217;ve planned, no one will buy it&amp;#8221;&lt;/em&gt;, or &lt;em&gt;&amp;#8220;My team won&amp;#8217;t self organize; team members are too passive and look to me to lead&amp;#8221;&lt;/em&gt;, &amp;#8230; of course, what makes these objection boxes valuable is not the statement themselves, but the tips on how what to do about them. There&amp;#8217;s not a single one left unanswered: you really feel you&amp;#8217;re covered in any situation.&lt;/li&gt;
&lt;/ul&gt;

&lt;/section&gt;

&lt;/section&gt;

&lt;section class="section"&gt;
&lt;header&gt;&lt;h1 id="h_10"&gt;Final Thoughts&lt;/h1&gt;&lt;/header&gt;
&lt;p&gt;I really enjoyed this book. It took me ages to read it, not only because it&amp;#8217;s quite long (450 pages), but also because it&amp;#8217;s very dense of information. Another author could have made it three times longer, but I was glad Mike didn&amp;#8217;t. I&amp;#8217;m pretty certain I&amp;#8217;ll keep it near me and read bits from it when I need to: it&amp;#8217;s pretty much the Bible of &lt;em&gt;Scrum&lt;/em&gt; adoption.&lt;/p&gt;
&lt;p&gt;What&amp;#8217;s wrong with it then? Not much. Perhaps the only thing I really missed was an introductory 50-page-chapter on &lt;em&gt;Scrum&lt;/em&gt; and &lt;em&gt;agile&lt;/em&gt;. I know this is not meant to be a book for beginners, but some basic glossary or &lt;em&gt;Scrum&lt;/em&gt; cheat sheet would have made it accessible to an even wider audience, at virtually no cost for the author or the readers, who could have just skipped that part.&lt;/p&gt;
&lt;p&gt;Anyhow, I give it a 9 out of 10.&lt;/p&gt;

&lt;/section&gt;

&lt;/section&gt;</description>
      <pubDate>Sun, 25 Apr 2010 06:16:28 -0600</pubDate>
      <guid>http://www.h3rald.com/articles/succeeding-with-agile-review/</guid>
      <link>http://www.h3rald.com/articles/succeeding-with-agile-review/</link>
      <author>h3rald@h3rald.com</author>
      <comments>http://www.h3rald.com/articles/succeeding-with-agile-review/#comments</comments>
      <category>review</category>
      <category>productivity</category>
      <category>books</category>
      <category>software</category>
    </item>
    <item>
      <title>Announcement: RedBook v0.5.0 released</title>
      <description>&lt;p&gt;This new beta release of RedBook introduces quite a few changes when it comes to configuration and setup. Here&amp;#8217;s some highlights&amp;#8230;h3. Regexp changes&lt;/p&gt;
&lt;p&gt;It is now necessary to enter &amp;#8220;proper&amp;#8221; regular expressions for &lt;code&gt;:select&lt;/code&gt;. Proper means between slashes, like the following:&lt;/p&gt;
&lt;ul&gt;
	&lt;li&gt;/Work Day/&lt;/li&gt;
	&lt;li&gt;/mail/i&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;I changed this in order to support case-insensitive searches using the &lt;code&gt;i&lt;/code&gt; switch. This makes queries much more powerful.&lt;/p&gt;
&lt;h3&gt;Variables&lt;/h3&gt;
&lt;p&gt;A new, interesting feature I decided to introduce in this release is &lt;em&gt;variables&lt;/em&gt;. For now you define them inside your rbconfig.yml file, like this:&lt;/p&gt;
&lt;div class="CodeRay"&gt;
  &lt;div class="code"&gt;&lt;pre&gt;&lt;span class="line-numbers"&gt;&lt;a href="#n1" name="n1"&gt;1&lt;/a&gt;&lt;/span&gt;:var_monday_morning: &amp;quot;monday at 8 am&amp;quot;
&lt;span class="line-numbers"&gt;&lt;a href="#n2" name="n2"&gt;2&lt;/a&gt;&lt;/span&gt;
&lt;span class="line-numbers"&gt;&lt;a href="#n3" name="n3"&gt;3&lt;/a&gt;&lt;/span&gt;:var_friday_evening: &amp;quot;friday at 8 pm&amp;quot;
&lt;span class="line-numbers"&gt;&lt;a href="#n4" name="n4"&gt;4&lt;/a&gt;&lt;/span&gt;
&lt;span class="line-numbers"&gt;&lt;a href="#n5" name="n5"&gt;5&lt;/a&gt;&lt;/span&gt;:var_week_report: &amp;quot;:select :duration :from :%monday_morning :to :%friday_evening&amp;quot;
&lt;/pre&gt;&lt;/div&gt;
&lt;/div&gt;

&lt;p&gt;In this way, every time you type in :%week_report in RedBook, it will expand to: &lt;code&gt;:select :duration :from monday at 8 am :to friday at 8 pm&lt;/code&gt;. By the way, completion is supported, so you&amp;#8217;ll only have to type in something like &lt;code&gt;:%we&lt;/code&gt; and hit &lt;tab&gt;.&lt;/p&gt;
&lt;p&gt;It is possible to define variables as &lt;code&gt;:var_&amp;lt;something&amp;gt;&lt;/code&gt; in the rbconfig.yml file and then used them inside RedBook as &lt;code&gt;:%&amp;lt;something&amp;gt;&lt;/code&gt;.&lt;/p&gt;
&lt;h3&gt;New Operations&lt;/h3&gt;
&lt;p&gt;Five new operations have been added:&lt;/p&gt;
&lt;h4&gt;:blank&lt;/h4&gt;
&lt;p&gt;This will blank your current log after asking you if you really want to do so.&lt;/p&gt;
&lt;h4&gt;:restore&lt;/h4&gt;
&lt;p&gt;This operation will overwrite your current log with the last saved backup. Like with the &lt;code&gt;:blank&lt;/code&gt; operation, you&amp;#8217;re asked if you really want to proceed or not.&lt;/p&gt;
&lt;h4&gt;:archive&lt;/h4&gt;
&lt;p&gt;By typing &lt;code&gt;:archive&lt;/code&gt;, the current log file will be archived to your &lt;code&gt;:archives_folder:&lt;/code&gt; directory specified in the rbconfig.yml file (similarly, it is now possible to specify a :backups_folder: for your logs&amp;#8217; backup files).&lt;/p&gt;
&lt;h4&gt;:dataset&lt;/h4&gt;
&lt;p&gt;A simple operation to display the messages inthe current dataset.&lt;/p&gt;
&lt;h4&gt;:dump&lt;/h4&gt;
&lt;p&gt;This operation will dump the output of the last &lt;code&gt;:select&lt;/code&gt; operation to a text file. Useful for saving the average, total time and duration of a set of activities.&lt;/p&gt;
&lt;h3&gt;Portable edition&lt;/h3&gt;
&lt;p&gt;Some Windows users will definitely love this. I finally found an easy way to run RedBook confined within the current directory, by using a simple &lt;code&gt;start.bat&lt;/code&gt; batch file to set the &lt;span&gt;&lt;span class="caps"&gt;INPUTRC&lt;/span&gt;&lt;/span&gt; and &lt;span&gt;&lt;span class="caps"&gt;HOME&lt;/span&gt;&lt;/span&gt; variables temporarily to the path to the .inputrc file and the directory of RedBook executable. This makes RedBook 100% portable and suitable to be used on &lt;span class="caps"&gt;USB&lt;/span&gt; sticks &amp;amp;similar.&lt;/p&gt;
&lt;p style="text-align:center;"&gt;&lt;strong&gt;&lt;a href="http://redbook.googlecode.com/files/RedBook-0.5_Win32-portable.zip"&gt;Get RedBook Portable&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;h3&gt;New Development Page&lt;/h3&gt;
&lt;p&gt;I decided to move the primary RedBook repository from &lt;a href="http://www.assembla.org"&gt;Assembla&lt;/a&gt; to Google Code. Why? Well, nothing wrong with Assembla per se, I still think it&amp;#8217;s an excellent free service to host your public &lt;em&gt;and private&lt;/em&gt; projects, but Google Code is faster and offers only the features I need:&lt;/p&gt;
&lt;ul&gt;
	&lt;li&gt;Public &lt;span class="caps"&gt;SVN&lt;/span&gt; repository access&lt;/li&gt;
	&lt;li&gt;Simple-to-use issue tracker&lt;/li&gt;
	&lt;li&gt;Very nicely developed downloads section, with download counts, and &amp;#8220;normal&amp;#8221; filenames.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;So here&amp;#8217;s the new RedBook Development Home:&lt;/p&gt;
&lt;p style="text-align:center;"&gt;&lt;strong&gt;&lt;a href="http://code.google.com/p/redbook/"&gt;http://code.google.com/p/redbook/&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Additionally I also setup a &lt;a href="http://groups.google.com/group/redbook-support/"&gt;RedBook Support Google Group&lt;/a&gt;, so if you have any question concerning the program, you know where to go!&lt;/p&gt;</description>
      <pubDate>Sun, 16 Dec 2007 00:07:00 -0700</pubDate>
      <guid>http://www.h3rald.com/articles/redbook-050-released/</guid>
      <link>http://www.h3rald.com/articles/redbook-050-released/</link>
      <author>h3rald@h3rald.com</author>
      <comments>http://www.h3rald.com/articles/redbook-050-released/#comments</comments>
      <category>opensource</category>
      <category>productivity</category>
      <category>redbook</category>
      <category>ruby</category>
    </item>
    <item>
      <title>Announcement: RedBook v0.4.0 released</title>
      <description>&lt;p&gt;I&amp;#8217;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.&lt;/p&gt;
&lt;p&gt;Let&amp;#8217;s have a closer look&amp;#8230;h2. New Operations&lt;/p&gt;
&lt;p&gt;Suppose that you just logged a message and you noticed one of these two things happened:&lt;/p&gt;
&lt;ul&gt;
	&lt;li&gt;You didn&amp;#8217;t really wanted to log it&lt;/li&gt;
	&lt;li&gt;You made a silly typo in the message or in the tags&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;What can you do about it? Up to RedBook 0.3, the only solution was to open the &lt;span class="caps"&gt;YAML&lt;/span&gt; file and correct the mistake manually. From now on there&amp;#8217;s also another simpler way to operate in such situations: using the :update and :delete operations!&lt;/p&gt;
&lt;h3&gt;:update&lt;/h3&gt;
&lt;p&gt;This operation can be used to update the message and or the tags of a previously-logged activity. The usage is simple: load a dataset first, and then execute an &lt;code&gt;:update&lt;/code&gt; command like:&lt;/p&gt;
&lt;p&gt;&lt;code&gt;:update 4 :message My updated message :with new_tag1 new_tag2&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;This will update the 4th message of the dataset modifying its message and tags. Of course you can update either of the two things or both; the timestamp of the activity will not be changed.&lt;/p&gt;
&lt;h3&gt;:delete&lt;/h3&gt;
&lt;p&gt;The delete operation can be used to completely delete a message from the log. Just load a dataset using a &lt;code&gt;:select&lt;/code&gt; operation and then execute a &lt;code&gt;:delete&lt;/code&gt; command, e.g.:&lt;/p&gt;
&lt;ul&gt;
	&lt;li&gt;&lt;code&gt;:delete 1&lt;/code&gt; &lt;em&gt;(will delete the first activity)&lt;/em&gt;&lt;/li&gt;
	&lt;li&gt;&lt;code&gt;:delete 4 2 7 9&lt;/code&gt; &lt;em&gt;(will delete activity #2, #4, #7 and #9)&lt;/em&gt;&lt;/li&gt;
	&lt;li&gt;&lt;code&gt;:delete&lt;/code&gt; &lt;em&gt;(will delete the entire dataset)&lt;/em&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;A confirmation message will appear before deleting the message(s).&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;span class="caps"&gt;IMPORTANT&lt;/span&gt;&lt;/strong&gt;&lt;br /&gt;
&lt;em&gt;Due to the architecture of the application, whenever an &lt;code&gt;:update&lt;/code&gt; or &lt;code&gt;:delete&lt;/code&gt; occurs the log file will be reloaded in memory and completely overwritten. This doesn&amp;#8217;t cause problems, although for big log files (10,000+ activities) this may take a few seconds.&lt;/em&gt;&lt;/p&gt;
&lt;h2&gt;Statistics&lt;/h2&gt;
&lt;p&gt;Another important new feature introduced by this release is &lt;em&gt;time tracking&lt;/em&gt;. It was actually already there, kind of: the &lt;code&gt;:calc&lt;/code&gt; operation was already able to calculate the time elapsed between two activities&amp;#8230; however, this is not really practical.&lt;/p&gt;
&lt;p&gt;Since last release, it is possible to log the completion of an activity using the &lt;code&gt;:finish&lt;/code&gt; command. This will basically re-log the same activity prepending &lt;em&gt;[&lt;span class="caps"&gt;COMPLETED&lt;/span&gt;]&lt;/em&gt; to its message.&lt;br /&gt;
If you started using the &lt;code&gt;:finish&lt;/code&gt; command to complete your activities, RedBook can now calculate the following stats for you:&lt;/p&gt;
&lt;ul&gt;
	&lt;li&gt;Count the number of messages in a dataset&lt;/li&gt;
	&lt;li&gt;Calculate the average time spent for the completed activities in a dataset&lt;/li&gt;
	&lt;li&gt;Calculate the total time spent for the completed activities in a dataset&lt;/li&gt;
	&lt;li&gt;Calculate the duration of each completed activity in a dataset&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Each of these calculations is performed by adding special directive to a &lt;code&gt;:select&lt;/code&gt; command, as explained in the following sections.&lt;/p&gt;
&lt;h3&gt;:count&lt;/h3&gt;
&lt;p&gt;This directive can be added to a &lt;code&gt;:select&lt;/code&gt; command to return just the number of message of the loaded dataset. &lt;br /&gt;
In other words, executing the following:&lt;/p&gt;
&lt;p&gt;&lt;code&gt;:select :count :with mail !work&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;&amp;#8230;will return the number of activities tagged with &lt;em&gt;mail&lt;/em&gt; but not with &lt;em&gt;personal&lt;/em&gt;, without listing all the activities.&lt;/p&gt;
&lt;h3&gt;:avg&lt;/h3&gt;
&lt;p&gt;The &lt;code&gt;:avg&lt;/code&gt; directive can be used to calculate the average time spent on activities matching certain criteria, for example:&lt;/p&gt;
&lt;p&gt;&lt;code&gt;:select Status Meeting :avg :with meeting&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;&amp;#8230;will return the average time spent on activities whose messages matches &lt;em&gt;/Status Meeting/&lt;/em&gt; and are tagged with &lt;em&gt;meeting&lt;/em&gt;.&lt;/p&gt;
&lt;h3&gt;:total&lt;/h3&gt;
&lt;p&gt;Similarly, &lt;code&gt;:total&lt;/code&gt; can be used to return the total time spent on activities matching certain criteria, e.g.:&lt;/p&gt;
&lt;p&gt;&lt;code&gt;:select :total :with mail work&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;&amp;#8230;will return the total time spent on activities tagged with &lt;em&gt;mail&lt;/em&gt; and &lt;em&gt;work&lt;/em&gt;.&lt;/p&gt;
&lt;h3&gt;:duration&lt;/h3&gt;
&lt;p&gt;Lastly, &lt;code&gt;:duration&lt;/code&gt; will print each completed task along with its duration. The syntax is similar to the others:&lt;/p&gt;
&lt;p&gt;&lt;code&gt;:select :duration :with break&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;This will print each completed activity tagged with &lt;em&gt;break&lt;/em&gt; along with its duration.&lt;/p&gt;
&lt;h3&gt;:nodiff and _concurrent&lt;/h3&gt;
&lt;p&gt;The logic behind the above-mentioned directives may seem trivial to implement, but it is not. The fun part was telling RedBook to subtract the duration of each sub-activity contained in another activity&amp;#8230; a feature I considered necessary for time tracking purpose. However, if you start your work day with a &lt;em&gt;Working Day&lt;/em&gt; activity and you complete that activity using the &lt;code&gt;:finish&lt;/code&gt; command, when calculating the duration of the working day RedBook will subtract the duration of &lt;em&gt;all the completed sub-activities&lt;/em&gt; from the duration of &lt;em&gt;Working Day&lt;/em&gt;. This is not OK, so I added the directive &lt;code&gt;:nodiff&lt;/code&gt; which can be used to prevent RedBook from calculating the difference between the parent activity&amp;#8217;s duration and the duration of each of its child activity.&lt;/p&gt;
&lt;p&gt;What if you&amp;#8217;re doing two things at once? use the special &lt;code&gt;_concurrent&lt;/code&gt; tag, and that activity will be considered symultaneous to its parent activity for time tracking purposes.&lt;/p&gt;
&lt;h2&gt;Activity Status Filters&lt;/h2&gt;
&lt;p&gt;RedBook is now fully aware of the &amp;#8220;status&amp;#8221; of each activity, so it is possible to display only activities in a certain status using the following directives:&lt;/p&gt;
&lt;h3&gt;:plain&lt;/h3&gt;
&lt;p&gt;Executing &lt;code&gt;:select :plain :from today&lt;/code&gt; will return all the activities logged today, omitting their completions (if any), i.e. any activity beginning with &lt;em&gt;[&lt;span class="caps"&gt;COMPLETED&lt;/span&gt;]&lt;/em&gt;.&lt;/p&gt;
&lt;h3&gt;:pending&lt;/h3&gt;
&lt;p&gt;Executing &lt;code&gt;:select :pending :from today&lt;/code&gt; will return all the activities logged today which have not been completed yet. Again, this was not too trivial to implement, but it seems to work (it also smart enough to detect if the same activity has been relogged etc. etc.).&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;span class="caps"&gt;WARNING&lt;/span&gt;:&lt;/strong&gt; &lt;br /&gt;
&lt;em&gt;Using this directive with a large dataset may cause RedBook to take some time before delivering the result, due to the amount of iterations to perform. Use with care.&lt;/em&gt;&lt;/p&gt;
&lt;h3&gt;:completed&lt;/h3&gt;
&lt;p&gt;Executing &lt;code&gt;:select :completed :from today&lt;/code&gt; will return all the activities logged today which have been completed.&lt;/p&gt;
&lt;h2&gt;Windows Installer&lt;/h2&gt;
&lt;p&gt;I decided to spend some time (half an hour) and create a proper setup file for Windows using InnoSetup. The setup will take care of almost everything for you, so you have no excuse not to try RedBook because it&amp;#8217;s not user-friendly to install!&lt;/p&gt;
&lt;p&gt;Check out the &lt;a href="http://redbook.h3rald.com"&gt;manual&lt;/a&gt; for more details.&lt;/p&gt;
&lt;h2&gt;RubyForge Project&lt;/h2&gt;
&lt;p&gt;Finally, I registered a new &lt;a href="http://rubyforge.org/projects/redbook/"&gt;RubyForge Project&lt;/a&gt; for RedBook, which include a public &lt;span class="caps"&gt;SVN&lt;/span&gt; repository updated every week (Assembla doesn&amp;#8217;t allow anonymous checkouts, unfortunately).&lt;br /&gt;
This project will also host the official RedBook Gem, scheduled for the 1.0 release.&lt;/p&gt;
&lt;p style="text-align:center;"&gt;&lt;strong&gt;&lt;a href="http://www.assembla.com/spaces/files/redbook"&gt;&lt;span class="caps"&gt;DOWNLOAD&lt;/span&gt;&lt;/a&gt; | &lt;a href="http://redbook.h3rald.com/"&gt;&lt;span class="caps"&gt;MANUAL&lt;/span&gt;&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;</description>
      <pubDate>Wed, 28 Nov 2007 00:34:00 -0700</pubDate>
      <guid>http://www.h3rald.com/articles/redbook-040-released/</guid>
      <link>http://www.h3rald.com/articles/redbook-040-released/</link>
      <author>h3rald@h3rald.com</author>
      <comments>http://www.h3rald.com/articles/redbook-040-released/#comments</comments>
      <category>opensource</category>
      <category>productivity</category>
      <category>redbook</category>
      <category>ruby</category>
    </item>
    <item>
      <title>Announcement: RedBook v0.3.0 released</title>
      <description>&lt;p&gt;It&amp;#8217;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&amp;#8217;s see what&amp;#8217;s new&lt;/p&gt;
&lt;h3&gt;New operation names &lt;em&gt;(which break compatibility with previous versions)&lt;/em&gt;&lt;/h3&gt;
&lt;p&gt;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&amp;#8217;s what beta releases are for, right?):&lt;/p&gt;
&lt;table&gt;
	&lt;tr&gt;
		&lt;th&gt;&lt;span class="caps"&gt;OLD&lt;/span&gt; &lt;/th&gt;
		&lt;th&gt;&lt;span class="caps"&gt;NEW&lt;/span&gt; &lt;/th&gt;
	&lt;/tr&gt;
	&lt;tr&gt;
		&lt;td&gt; :complete &lt;/td&gt;
		&lt;td&gt; :finish &lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr&gt;
		&lt;td&gt; :load &lt;/td&gt;
		&lt;td&gt; :select &lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr&gt;
		&lt;td&gt; :load_config &lt;/td&gt;
		&lt;td&gt; :config &lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr&gt;
		&lt;td&gt; :load_log &lt;/td&gt;
		&lt;td&gt; :refresh &lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr&gt;
		&lt;td&gt; :timecalc &lt;/td&gt;
		&lt;td&gt; :calc &lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr&gt;
		&lt;td&gt; :stop &lt;/td&gt;
		&lt;td&gt; :quit &lt;/td&gt;
	&lt;/tr&gt;
&lt;/table&gt;
&lt;h3&gt;New Manual/Home Page&lt;/h3&gt;
&lt;p&gt;A while ago I discovered &lt;a href="http://www.tiddlywiki.com/"&gt;TiddlyWiki&lt;/a&gt;, 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&amp;#8217;s standard &lt;span class="caps"&gt;README&lt;/span&gt; file (which was made in a hurry and was kinda cryptical). Now a brand new &amp;#8220;manual.html&amp;#8221; ships with RedBook &amp;#8212; 308 KB (30 of actual docs and 278 of Javascript/&lt;span class="caps"&gt;HTML&lt;/span&gt;/&lt;span class="caps"&gt;CSS&lt;/span&gt; magic) with everything you need to know about it. Additionally, an online version is available at the following address:&lt;/p&gt;
&lt;p style="text-align:center;"&gt;&lt;strong&gt;&lt;a href="http://redbook.h3rald.com"&gt;redbook.h3rald.com&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;h3&gt;Removed Win32::Console Library&lt;/h3&gt;
&lt;p&gt;OK this is not good news for people (like me) who use RedBook on Windows, but I promise you&amp;#8217;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&amp;#8217;t know whether this is a problem of the actual library or just of the gem used to pack it.&lt;/p&gt;
&lt;h3&gt;rbconfig.yml&lt;/h3&gt;
&lt;p&gt;The &lt;code&gt;config.yml&lt;/code&gt; file has been renamed to &lt;code&gt;rbconfig.yml&lt;/code&gt;. Additionally, if you place a file with this name in your $&lt;span class="caps"&gt;HOME&lt;/span&gt; directory it will override the one in your RedBook folder (This was done in preparation for the RedBook RubyGem).&lt;/p&gt;
&lt;h3&gt;New operations&lt;/h3&gt;
&lt;p&gt;The following new operations are available:&lt;/p&gt;
&lt;ul&gt;
	&lt;li&gt;&lt;a href="http://redbook.h3rald.com/#%3Arelog"&gt;:relog&lt;/a&gt; &amp;#8212; Re-logs a previously-logged message (keeping the same tags and updating the timestamp)&lt;/li&gt;
	&lt;li&gt;&lt;a href="http://redbook.h3rald.com/#%3Aclear"&gt;:clear&lt;/a&gt; &amp;#8212; Clears the screen.&lt;/li&gt;
	&lt;li&gt;&lt;a href="http://redbook.h3rald.com/#%3Aruby"&gt;:ruby&lt;/a&gt; &amp;#8212; Evaluates arbitrary Ruby code outputting the result (use with care&amp;#8230;)&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;Auto-completion&lt;/h3&gt;
&lt;p&gt;Some Mac users originally complained that the backspace key wasn&amp;#8217;t working in RedBook (and it didn&amp;#8217;t in Linux either). Fortunately the solution to this was easy enough: include the &lt;span class="caps"&gt;GNU&lt;/span&gt; &lt;a href="http://tiswww.case.edu/php/chet/readline/rltop.html"&gt;Readline&lt;/a&gt; library. &lt;br /&gt;
Readline is now being used in RedBook to:&lt;/p&gt;
&lt;ul&gt;
	&lt;li&gt;Provide basic (Emacs-style) bindings&lt;/li&gt;
	&lt;li&gt;&lt;strong&gt;Auto-completion&lt;/strong&gt; for keywords &lt;em&gt;and tags&lt;/em&gt;&lt;/li&gt;
	&lt;li&gt;Allow the user to automatically customize key bindings via an &lt;a href="http://redbook.h3rald.com/#.inputrc"&gt;.inputrc&lt;/a&gt; file placed in their $&lt;span class="caps"&gt;HOME&lt;/span&gt; directory (on Windows you&amp;#8217;ll have to define a &lt;span&gt;&lt;span class="caps"&gt;HOME&lt;/span&gt;&lt;/span&gt; environment variable pointing to a directory of your choice). An example .inputrc file is distributed with RedBook with some specific key bindings.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;Support for international characters&lt;/h3&gt;
&lt;p&gt;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 &lt;a href="http://www.gnu.org/software/libiconv/"&gt;&lt;span class="caps"&gt;GNU&lt;/span&gt; libiconv&lt;/a&gt;) which can convert strings between different character sets. The character sets needs to be configured via the &lt;a href="http://redbook.h3rald.com/#rbconfig.yml"&gt;rbconfig.yml&lt;/a&gt; file.&lt;/p&gt;
&lt;p&gt;For more information, check out the &lt;a href="http://redbook.h3rald.com/#ChangeLog"&gt;ChangeLog&lt;/a&gt;&lt;/p&gt;
&lt;p style="text-align:center;"&gt;&lt;strong&gt;&lt;a href="http://www.assembla.com/spaces/files/bWE7NkzCqr3k25abIlDkbG"&gt;Download RedBook&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;</description>
      <pubDate>Wed, 24 Oct 2007 23:18:00 -0600</pubDate>
      <guid>http://www.h3rald.com/articles/redbook-030-released/</guid>
      <link>http://www.h3rald.com/articles/redbook-030-released/</link>
      <author>h3rald@h3rald.com</author>
      <comments>http://www.h3rald.com/articles/redbook-030-released/#comments</comments>
      <category>redbook</category>
      <category>ruby</category>
      <category>productivity</category>
      <category>opensource</category>
    </item>
    <item>
      <title>Announcement: RedBook v0.2.0 released</title>
      <description>&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;&amp;#8220;Release Early, Release Often&amp;#8221;&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;&amp;#8212; Eric S. Raymond, &lt;a href="http://www.catb.org/~esr/writings/cathedral-bazaar/cathedral-bazaar/ar01s04.html"&gt;The Cathedral and the Bazaar&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;In other words, time for another (early) release of &lt;a href="http://www.assembla.com/space/redbook"&gt;RedBook&lt;/a&gt;. There are quite a few new features which are worth examining, in particular:&lt;/p&gt;
&lt;h3&gt;Regexp search for messages&lt;/h3&gt;
&lt;p&gt;This was actually already available before, just if you inputted a search string which was not a regexp, you&amp;#8217;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.&lt;/p&gt;
&lt;h3&gt;Log Backup&lt;/h3&gt;
&lt;p&gt;A new &lt;strong&gt;&amp;#58;backup&lt;/strong&gt; keyword is available to quickly backup your log file. Here&amp;#8217;s what it does:&lt;/p&gt;
&lt;ul&gt;
	&lt;li&gt;Loads all messages silently&lt;/li&gt;
	&lt;li&gt;Writes them to a file in the same directory as the original log file named &amp;lt;log-alias&amp;gt;.bkp.yml.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Handy, especially if there was a similar keyword to restore the last backup, which is planned for &lt;a href="http://www.assembla.com/spaces/milestones/index/bWE7NkzCqr3k25abIlDkbG?spaces_tool_id=ceS8UazCqr3k25abIlDkbG"&gt;later on&lt;/a&gt;.&lt;/p&gt;
&lt;h3&gt;Support for multiple log files&lt;/h3&gt;
&lt;p&gt;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 &lt;strong&gt;&amp;#58;data_&amp;lt;alias&amp;gt;&amp;#58;&lt;/strong&gt; 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:&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&amp;#58;data_test&amp;#58; &amp;#8220;testlog.yml&amp;#8221;&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;You can load the &amp;#8220;test&amp;#8221; log by typing&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&amp;#58;use test&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;(&amp;#58;use is a shorthand for &amp;#58;load_log). Similarly, another new keyword &lt;strong&gt;&amp;#58;dest&lt;/strong&gt; has been introduced to be able to log a message to a different log file without loading it into memory, like this:&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&amp;#58;log This message will be saved to testlog.yml &amp;#58;dest test&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Finally, a &lt;strong&gt;&amp;#58;refresh&lt;/strong&gt; keyword has been introduced as an alias to reloading the current log.&lt;/p&gt;
&lt;h3&gt;(Almost) automatic log of completed activities&lt;/h3&gt;
&lt;p&gt;Right when I was coding the &lt;strong&gt;&amp;#58;timecalc&lt;/strong&gt; 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 &lt;strong&gt;&amp;#58;complete&lt;/strong&gt; keyword:&lt;/p&gt;
&lt;p&gt;&amp;#58;log Testing feature X in product Y&lt;/p&gt;
&lt;p&gt;&amp;#58;complete&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&amp;#58;complete&lt;/strong&gt; will re-log the last message prepended with [&lt;span class="caps"&gt;COMPLETED&lt;/span&gt;]:&lt;/p&gt;
4 Mon Oct 08 2007 &amp;#8211; 10:47:45 AM Testing feature X in product Y
5 Mon Oct 08 2007 &amp;#8211; 10:54:31 AM [&lt;span class="caps"&gt;COMPLETED&lt;/span&gt;] Testing feature X in product Y
&lt;p&gt;What if I start another task before completing the first one? No problem, it is sufficient to load the last activities using a &lt;strong&gt;&amp;#58;load&lt;/strong&gt; command and then issuing &lt;strong&gt;&amp;#58;complete &amp;lt;number&amp;gt;&lt;/strong&gt; where &amp;lt;number&amp;gt; is the index of the loaded activity. &lt;br /&gt;
This nifty little feature will become more and more important when (starting from release 0.4) I&amp;#8217;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.&lt;/p&gt;
&lt;h3&gt;Easy integration with launchers like Launchy and QuickSilver&lt;/h3&gt;
&lt;p&gt;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.&lt;br /&gt;
To use it with Launchy, for example, all you have to do is the following:&lt;/p&gt;
&lt;ol&gt;
	&lt;li&gt;Create a shortcut to redbooklet.exe (or to a way to execute the corresponding ruby script) named &amp;#8220;log&amp;#8221;.&lt;/li&gt;
	&lt;li&gt;Copy the &amp;#8220;log&amp;#8221; shortcut anywhere in your start menu&lt;/li&gt;
	&lt;li&gt;Bring up launchy (ALT+SPACE) and type in &amp;#8220;log&amp;#8221;&lt;/li&gt;
	&lt;li&gt;Hit tab&lt;/li&gt;
	&lt;li&gt;Type in your log message, optionally with the any &amp;#58;tags or &amp;#58;dest keywords.&lt;/li&gt;
	&lt;li&gt;The message will be logged to your default log file or to the log you specified using the &amp;#58;dest keyword. If an error occurs, it will appear in a command line window for 15 seconds before the program is closed.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;That&amp;#8217;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 &lt;a href="http://www.assembla.com/spaces/milestones/index/bWE7NkzCqr3k25abIlDkbG?spaces_tool_id=ceS8UazCqr3k25abIlDkbG"&gt;Milestones&lt;/a&gt; page.&lt;/p&gt;
&lt;p style="text-align:center;"&gt;&lt;strong&gt;&lt;a href="http://www.assembla.com/spaces/files/bWE7NkzCqr3k25abIlDkbG"&gt;&lt;span class="caps"&gt;DOWNLOAD&lt;/span&gt; &lt;span class="caps"&gt;HERE&lt;/span&gt;&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;</description>
      <pubDate>Sun, 07 Oct 2007 21:05:00 -0600</pubDate>
      <guid>http://www.h3rald.com/articles/redbook-020-released/</guid>
      <link>http://www.h3rald.com/articles/redbook-020-released/</link>
      <author>h3rald@h3rald.com</author>
      <comments>http://www.h3rald.com/articles/redbook-020-released/#comments</comments>
      <category>redbook</category>
      <category>ruby</category>
      <category>productivity</category>
      <category>opensource</category>
    </item>
    <item>
      <title>RedBook - A simple Ruby program for your daily logging needs</title>
      <description>&lt;p&gt;Logging your daily activities is important. If you don&amp;#8217;t believe me you&amp;#8217;d better check at least these three posts on LifeHacker, which feature different scripts and applications:&lt;/p&gt;
&lt;ul&gt;
	&lt;li&gt;&lt;a href="http://lifehacker.com/software/top/geek-to-live--quick+log-your-work-day-189772.php"&gt;QuickLogger&lt;/a&gt;&lt;/li&gt;
	&lt;li&gt;&lt;a href="http://lifehacker.com/software/windows/log-your-workday-from-the-system-tray-with-life-logger-285602.php"&gt;Life Logger&lt;/a&gt;&lt;/li&gt;
	&lt;li&gt;&lt;a href="http://lifehacker.com/software/featured-windows-download/log-your-workday-with-quicklogger-2-302932.php"&gt;QuickLogger 2&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;I had a look at each one of them, and I believe they are quite useful, although I didn&amp;#8217;t really find what I was looking for. Why? Well, for example:&lt;/p&gt;
&lt;ul&gt;
	&lt;li&gt;I don&amp;#8217;t believe a &lt;span class="caps"&gt;GUI&lt;/span&gt; is necessary &amp;#8212; you&amp;#8217;d better off with just a shortcut key or command to run from Launchy or QuickSilver, that&amp;#8217;s much faster.&lt;/li&gt;
	&lt;li&gt;They just log timestamped messages on a file, there&amp;#8217;s no real way to search through them and display them except by using a test editor&lt;/li&gt;
	&lt;li&gt;They are Windows only &amp;#8212; not that it matters for me, but others may not be happy about it.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;That&amp;#8217;s why I thought I&amp;#8217;d roll out my own: meet &lt;a href="http://www.assembla.com/space/redbook"&gt;RedBook&lt;/a&gt;.&lt;br /&gt;
Let me say it&amp;#8217;s nothing fancy: I&amp;#8217;m not a full-time programmer but I do like playing with Ruby during my lunch breaks at work, so that&amp;#8217;s why RedBook is just a humble, tiny Ruby script. This automatically makes it cross-platform: you can install Ruby very easily on Linux &amp;amp; alikes, Mac OS X and Windows. Furthermore, if you are on Windows and for some weird reason you don&amp;#8217;t want to install Ruby, you can just try out the packed &lt;span class="caps"&gt;EXE&lt;/span&gt; file (made with RubyScript2Exe) &amp;#8212; it&amp;#8217;s about 2MB, but you won&amp;#8217;t need anything else.&lt;/p&gt;
&lt;h3&gt;How It Works&lt;/h3&gt;
&lt;p&gt;The program uses two &lt;span class="caps"&gt;YAML&lt;/span&gt; files, one for configuration, which must reside in the same directory as redbook.rb (or redboo.exe) and one for the log itself, which you can place anywhere, provided that you edit the configuration file accordingly. For information on how to install RedBook and how to configure it, you can check the manual.html (powered by &lt;a href="http://www.tiddlywiki.com"&gt;TiddlyWiki&lt;/a&gt;) file provided with the program or &lt;a href="http://redbook.h3rald.com"&gt;browse it online&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;When started, RedBook will load both the configuration file (config.yml) and &lt;em&gt;the whole log file&lt;/em&gt; into memory &amp;#8212; it&amp;#8217;s not a big deal, considering that they are only text files after all. I did a test with a log of quite a few MBs, and it was fine.&lt;/p&gt;
&lt;p&gt;You can then start input commands right away, following a few sample rules. RedBook has a (very) rudimentary parser which is able to detect keywords, i.e. alphabetic strings prepended with a colon. RedBook commands look like this:&lt;/p&gt;
&lt;ul&gt;
	&lt;li&gt;&lt;strong&gt;&amp;#58;log&lt;/strong&gt; This message will be logger &lt;strong&gt;&amp;#58;tags&lt;/strong&gt; tag1 tag2&lt;/li&gt;
	&lt;li&gt;&lt;strong&gt;&amp;#58;select&lt;/strong&gt; &lt;strong&gt;&amp;#58;last&lt;/strong&gt; 15 &lt;strong&gt;&amp;#58;since&lt;/strong&gt; January&lt;/li&gt;
	&lt;li&gt;&lt;strong&gt;&amp;#58;save&lt;/strong&gt; /home/h3rald/backup.yml&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;If everything goes OK, RedBook will reply with some sort of response, an acknowledgement, a list of messages, etc.&lt;/p&gt;
&lt;p&gt;Simple.&lt;/p&gt;
&lt;p&gt;Here&amp;#8217;s basically what the program can do:&lt;/p&gt;
&lt;ul&gt;
	&lt;li&gt;Log any message to the main log file. Messages can be tagged with one or more tags and will be automatically timestamped.&lt;/li&gt;
	&lt;li&gt;Load/display a list of logged messages on the screen. It is possible to filter messages by specifying a time span, a string to search in the message text, or a list of tags.&lt;/li&gt;
	&lt;li&gt;Dump loaded messages to a &lt;span class="caps"&gt;TXT&lt;/span&gt;, &lt;span class="caps"&gt;CSV&lt;/span&gt; or &lt;span class="caps"&gt;YAML&lt;/span&gt; file (you can even backup your log saving it to another &lt;span class="caps"&gt;YAML&lt;/span&gt; file in this way).&lt;/li&gt;
	&lt;li&gt;Calculate the time elapsed between two or more tasks. Time will be displayed in years, months, weeks, days, hours, minutes and/or seconds as necessary.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;How? Here&amp;#8217;s a short tutorial&amp;#8230;&lt;/p&gt;
&lt;h3&gt;A Quick RedBook Tutorial&lt;/h3&gt;
&lt;p&gt;Let&amp;#8217;s assume you are able to run RedBook on your system by now (if you can&amp;#8217;t find some of the gems which are required for it, you can download them packed in a &lt;span class="caps"&gt;ZIP&lt;/span&gt; file from &lt;a href="http://www.assembla.com/spaces/files/redbook"&gt;here&lt;/a&gt;).&lt;/p&gt;
&lt;p&gt;Here&amp;#8217;s what happens when you start the program:&lt;/p&gt;
&lt;p&gt;&lt;span style="font-family: 'Bitstream Vera Sans Mono', Monaco, 'Courier New'; font-size: 10px"&gt;&lt;br /&gt;
&lt;del&gt;-&lt;/del&gt;&lt;br /&gt;
RedBook v0.1 &amp;#8211; Copyright &amp;#169; 2007, Fabio Cevasco&lt;br /&gt;
&lt;del&gt;-&lt;/del&gt;&lt;br /&gt;
   &lt;span style="color:blue"&gt;&amp;gt;&amp;gt;&lt;/span&gt; Loading config file&amp;#8230;&lt;br /&gt;
   &lt;span style="color:green"&gt;&amp;gt;&amp;gt;&lt;/span&gt; Config file loaded.&lt;br /&gt;
   &lt;span style="color:blue"&gt;&amp;gt;&amp;gt;&lt;/span&gt; Loading log file&amp;#8230;&lt;br /&gt;
   &lt;span style="color:green"&gt;&amp;gt;&amp;gt;&lt;/span&gt; Log file loaded.&lt;br /&gt;
   &lt;span style="color:blue"&gt;&amp;gt;&amp;gt;&lt;/span&gt; Ready.&lt;br /&gt;
&lt;span style="color:red"&gt;Red&lt;/span&gt;Book &amp;gt;&amp;gt;&lt;br /&gt;
&lt;/code&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;Good. Let&amp;#8217;s start logging something then. Just use the &lt;strong&gt;&amp;#58;log&lt;/strong&gt; keyword, followed by a message, and then you can also add the &lt;strong&gt;&amp;#58;tags&lt;/strong&gt; keyword followed by space-separated tags, like this:&lt;/p&gt;
&lt;p&gt;&lt;span style="font-family: 'Bitstream Vera Sans Mono', Monaco, 'Courier New'; font-size: 10px"&gt;&lt;br /&gt;
&lt;span style="color:red"&gt;Red&lt;/span&gt;Book &amp;gt;&amp;gt; &amp;#58;log My first message &amp;#58;tags test&lt;br /&gt;
   &lt;span style="color:green"&gt;&amp;gt;&amp;gt;&lt;/span&gt; Logged.&lt;br /&gt;
&lt;span style="color:red"&gt;Red&lt;/span&gt;Book &amp;gt;&amp;gt; &amp;#58;log This is another message&lt;br /&gt;
   &lt;span style="color:green"&gt;&amp;gt;&amp;gt;&lt;/span&gt; Logged.&lt;br /&gt;
&lt;span style="color:red"&gt;Red&lt;/span&gt;Book &amp;gt;&amp;gt; &amp;#58;log This is another message &amp;#58;tags test another_test&lt;br /&gt;
   &lt;span style="color:green"&gt;&amp;gt;&amp;gt;&lt;/span&gt; Logged.&lt;br /&gt;
&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;Try waiting a few seconds between each message. These three messages will be appended to the log file. You could open it in an editor, but it&amp;#8217;s normally easier to display them directly inside RedBook, like this:&lt;/p&gt;
&lt;p&gt;&lt;span style="font-family: 'Bitstream Vera Sans Mono', Monaco, 'Courier New'; font-size: 10px"&gt;&lt;br /&gt;
&lt;span style="color:red"&gt;Red&lt;/span&gt;Book &amp;gt;&amp;gt; &amp;#58;select&lt;br /&gt;
 &lt;span style="color:yellow"&gt;1&lt;/span&gt; &lt;span style="color:blue"&gt;Sat Sep 29 2007 &amp;#8211; 09:09:32 PM&lt;/span&gt; My first message &lt;span style="color:cyan"&gt;[&lt;/span&gt;&lt;span style="color:yellow"&gt;test&lt;/span&gt;&lt;span style="color:cyan"&gt;]&lt;/span&gt;&lt;br /&gt;
 &lt;span style="color:yellow"&gt;2&lt;/span&gt; &lt;span style="color:blue"&gt;Sat Sep 29 2007 &amp;#8211; 09:10:51 PM&lt;/span&gt; This is another message&lt;br /&gt;
 &lt;span style="color:yellow"&gt;3&lt;/span&gt; &lt;span style="color:blue"&gt;Sat Sep 29 2007 &amp;#8211; 09:11:45 PM&lt;/span&gt; This is another message &lt;span style="color:cyan"&gt;[&lt;/span&gt;&lt;span style="color:yellow"&gt;test&lt;/span&gt;&lt;span style="color:cyan"&gt;]&lt;/span&gt;&lt;span style="color:cyan"&gt;[&lt;/span&gt;&lt;span style="color:yellow"&gt;another_test&lt;/span&gt;&lt;span style="color:cyan"&gt;]&lt;/span&gt;&lt;br /&gt;
   &lt;span style="color:green"&gt;&amp;gt;&amp;gt;&lt;/span&gt; 3 messages loaded.&lt;br /&gt;
&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;Easy. What if you have hundreds of messages? Well, the &amp;#58;select operation can take an optional search string, or you can tell RedBook to load only those messages tagged with one or more specific tags, like this:&lt;/p&gt;
&lt;p&gt;&lt;span style="font-family: 'Bitstream Vera Sans Mono', Monaco, 'Courier New'; font-size: 10px"&gt;&lt;br /&gt;
&lt;span style="color:red"&gt;Red&lt;/span&gt;Book &amp;gt;&amp;gt; &amp;#58;select &amp;#58;tags test&lt;br /&gt;
 &lt;span style="color:yellow"&gt;1&lt;/span&gt; &lt;span style="color:blue"&gt;Sat Sep 29 2007 &amp;#8211; 09:09:32 PM&lt;/span&gt; My first message &lt;span style="color:cyan"&gt;[&lt;/span&gt;&lt;span style="color:yellow"&gt;test&lt;/span&gt;&lt;span style="color:cyan"&gt;]&lt;/span&gt;&lt;br /&gt;
  &lt;span style="color:yellow"&gt;3&lt;/span&gt; &lt;span style="color:blue"&gt;Sat Sep 29 2007 &amp;#8211; 09:11:45 PM&lt;/span&gt; This is another message &lt;span style="color:cyan"&gt;[&lt;/span&gt;&lt;span style="color:yellow"&gt;test&lt;/span&gt;&lt;span style="color:cyan"&gt;]&lt;/span&gt;&lt;span style="color:cyan"&gt;[&lt;/span&gt;&lt;span style="color:yellow"&gt;another_test&lt;/span&gt;&lt;span style="color:cyan"&gt;]&lt;/span&gt;&lt;br /&gt;
    &lt;span style="color:green"&gt;&amp;gt;&amp;gt;&lt;/span&gt; 2 messages loaded.&lt;br /&gt;
&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;Or you can use the &amp;#58;from and/or &amp;#58;to keywords to specify a certain time frame, like this:&lt;/p&gt;
&lt;p&gt;&amp;#58;select &amp;#58;tags test &lt;strong&gt;&amp;#58;from ten minutes ago&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&amp;#58;select &lt;strong&gt;&amp;#58;from last week &amp;#58;to 2 days ago&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;RedBook includes a very nice &amp;#8220;natural language date/time parser&amp;#8221;, &lt;a href="http://chronic.rubyforge.org/"&gt;Chronic&lt;/a&gt; which is able to convert sentences like the following into Ruby Time objects:&lt;/p&gt;
&lt;ul&gt;
	&lt;li&gt;6 in the morning&lt;/li&gt;
	&lt;li&gt;friday 1pm&lt;/li&gt;
	&lt;li&gt;sat 7 in the evening&lt;/li&gt;
	&lt;li&gt;today&lt;/li&gt;
	&lt;li&gt;yesterday at 4:00&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;It&amp;#8217;s not perfect (and it&amp;#8217;s in pre-alpha as well), but it does the job, for what I can see, and it makes it very easy and fast to specify timeframes.&lt;/p&gt;
&lt;p&gt;After executing a &amp;#58;select command, two other operations can be performed on the loaded messages: &lt;strong&gt;&amp;#58;calc&lt;/strong&gt; and &lt;strong&gt;&amp;#58;save&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;&amp;#58;calc calculates the exact amount of time elapsed between two or more tasks. Do you remember the numbers on the far left of each message? Think them as temporary IDs for the actual messages, and you can use them to select specific tasks when executing the &amp;#58;calc operation:&lt;/p&gt;
&lt;p&gt;&lt;span style="font-family: 'Bitstream Vera Sans Mono', Monaco, 'Courier New'; font-size: 10px"&gt;&lt;br /&gt;
&lt;span style="color:red"&gt;Red&lt;/span&gt;Book &amp;gt;&amp;gt; &amp;#58;calc 1 3&lt;br /&gt;
 &lt;span style="color:yellow"&gt;1&lt;/span&gt; &lt;span style="color:blue"&gt;Sat Sep 29 2007 &amp;#8211; 09:09:32 PM&lt;/span&gt; My first message &lt;span style="color:cyan"&gt;[&lt;/span&gt;&lt;span style="color:yellow"&gt;test&lt;/span&gt;&lt;span style="color:cyan"&gt;]&lt;/span&gt;&lt;br /&gt;
      &lt;del&gt;-&lt;/del&gt; 2 minutes and 13 seconds.&lt;br /&gt;
       &lt;span style="color:yellow"&gt;3&lt;/span&gt; &lt;span style="color:blue"&gt;Sat Sep 29 2007 &amp;#8211; 09:11:45 PM&lt;/span&gt; This is another message &lt;span style="color:cyan"&gt;[&lt;/span&gt;&lt;span style="color:yellow"&gt;test&lt;/span&gt;&lt;span style="color:cyan"&gt;]&lt;/span&gt;&lt;span style="color:cyan"&gt;[&lt;/span&gt;&lt;span style="color:yellow"&gt;another_test&lt;/span&gt;&lt;span style="color:cyan"&gt;]&lt;/span&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;Similarly, if no IDs are specified, &amp;#58;calc calculates the time difference between each message and the previous:&lt;/p&gt;
&lt;p&gt;&lt;span style="font-family: 'Bitstream Vera Sans Mono', Monaco, 'Courier New'; font-size: 10px"&gt;&lt;br /&gt;
&lt;span style="color:red"&gt;Red&lt;/span&gt;Book &amp;gt;&amp;gt; &amp;#58;calc&lt;br /&gt;
 &lt;span style="color:yellow"&gt;1&lt;/span&gt; &lt;span style="color:blue"&gt;Sat Sep 29 2007 &amp;#8211; 09:09:32 PM&lt;/span&gt; My first message &lt;span style="color:cyan"&gt;[&lt;/span&gt;&lt;span style="color:yellow"&gt;test&lt;/span&gt;&lt;span style="color:cyan"&gt;]&lt;/span&gt;&lt;br /&gt; &lt;br /&gt;
      &lt;del&gt;-&lt;/del&gt; 1 minute and 19 seconds.&lt;br /&gt;      &lt;br /&gt;
 &lt;span style="color:yellow"&gt;2&lt;/span&gt; &lt;span style="color:blue"&gt;Sat Sep 29 2007 &amp;#8211; 09:10:51 PM&lt;/span&gt; This is another message&lt;br /&gt; &lt;br /&gt;
      &lt;del&gt;-&lt;/del&gt; 54 seconds.&lt;br /&gt;      &lt;br /&gt;
 &lt;span style="color:yellow"&gt;3&lt;/span&gt; &lt;span style="color:blue"&gt;Sat Sep 29 2007 &amp;#8211; 09:11:45 PM&lt;/span&gt; This is another message &lt;span style="color:cyan"&gt;[&lt;/span&gt;&lt;span style="color:yellow"&gt;test&lt;/span&gt;&lt;span style="color:cyan"&gt;]&lt;/span&gt;&lt;span style="color:cyan"&gt;[&lt;/span&gt;&lt;span style="color:yellow"&gt;another_test&lt;/span&gt;&lt;span style="color:cyan"&gt;]&lt;/span&gt;&lt;br /&gt;
 &lt;/span&gt;&lt;/p&gt;
&lt;p&gt;Finally, you can save loaded messages to a &lt;span class="caps"&gt;TXT&lt;/span&gt;, &lt;span class="caps"&gt;YAML&lt;/span&gt; or &lt;span class="caps"&gt;CSV&lt;/span&gt; file, as follows:&lt;/p&gt;
&lt;p&gt;&lt;span style="font-family: 'Bitstream Vera Sans Mono', Monaco, 'Courier New'; font-size: 10px"&gt;&lt;br /&gt;
&lt;span style="color:red"&gt;Red&lt;/span&gt;Book &amp;gt;&amp;gt; &amp;#58;save log.txt&lt;br /&gt;
   &lt;span style="color:blue"&gt;&amp;gt;&amp;gt;&lt;/span&gt; Saving&amp;#8230;&lt;br /&gt;
   &lt;span style="color:green"&gt;&amp;gt;&amp;gt;&lt;/span&gt; Saved dataset to &amp;#8220;log.txt&amp;#8221;&lt;br /&gt;
&lt;/span&gt;&lt;br /&gt;
h&lt;br /&gt;
If you want to backup your log, you can load all messages and then save them to a &lt;span class="caps"&gt;YAML&lt;/span&gt; file. Maybe in this case you want to append the &lt;strong&gt;&amp;#58;silent&lt;/strong&gt; keyword to the &amp;#58;select command, so that messages won&amp;#8217;t be displayed on the screen.&lt;/p&gt;
&lt;h3&gt;Conclusion&lt;/h3&gt;
&lt;p&gt;RedBook is just a simple program: it suits my needs for now, but of course there&amp;#8217;s roo for improvement. If you have some useful suggestions, or you want to contribute in some way, feel free to contact me!&lt;/p&gt;
&lt;p style="text-align:center;"&gt;&lt;a href="http://redbook.h3rald.com"&gt;Home Page&lt;/a&gt; | &lt;a href="http://code.google.com/p/redbook/"&gt;Development&lt;/a&gt; | &lt;a href="http://code.google.com/p/redbook/downloads/list"&gt;Download&lt;/a&gt;&lt;/p&gt;</description>
      <pubDate>Sat, 29 Sep 2007 06:05:00 -0600</pubDate>
      <guid>http://www.h3rald.com/articles/redbook/</guid>
      <link>http://www.h3rald.com/articles/redbook/</link>
      <author>h3rald@h3rald.com</author>
      <comments>http://www.h3rald.com/articles/redbook/#comments</comments>
      <category>ruby</category>
      <category>productivity</category>
      <category>software</category>
      <category>tools</category>
      <category>redbook</category>
    </item>
    <item>
      <title>Introducing RedBook (and the new Code section)</title>
      <description>&lt;p&gt;I&amp;#8217;m somehow pleased to announce the opening of a new section on this site. Nothing too big actually, it&amp;#8217;s just a &lt;a href="/code/"&gt;page&lt;/a&gt; with a few (one for now) brief descriptions of open source programs and scripts I made and I&amp;#8217;d like to share with my readers.&lt;/p&gt;
&lt;p&gt;Don&amp;#8217;t expect fancy stuff: (luckily) I don&amp;#8217;t code for a living, I code for pleasure and I code small things. Lately I&amp;#8217;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 &lt;a href="/code/"&gt;RedBook&lt;/a&gt; an interactive command-line program written in Ruby.&lt;/p&gt;
&lt;p&gt;Main features:&lt;/p&gt;
&lt;ul&gt;
	&lt;li&gt;Log timestamped and &lt;em&gt;tagged&lt;/em&gt; messages to a single &lt;span class="caps"&gt;YAML&lt;/span&gt; file&lt;/li&gt;
	&lt;li&gt;Load and display messages containing a certain string, or certain tags or within a time frame.&lt;/li&gt;
	&lt;li&gt;Calculate the time elapsed between two or more tasks.&lt;/li&gt;
	&lt;li&gt;Export loaded messages to &lt;span class="caps"&gt;YAML&lt;/span&gt;, &lt;span class="caps"&gt;TXT&lt;/span&gt; or &lt;span class="caps"&gt;CSV&lt;/span&gt; format.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;All done via command line via simple commands:&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&amp;#58;log&lt;/strong&gt; This is a test message &lt;strong&gt;&amp;#58;tags&lt;/strong&gt; test&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&amp;#58;load&lt;/strong&gt; &lt;strong&gt;&amp;#58;last&lt;/strong&gt; 30 &lt;strong&gt;&amp;#58;from&lt;/strong&gt; last week&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&amp;#58;timecalc&lt;/strong&gt; 2 5&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&amp;#58;save&lt;/strong&gt; test.txt&lt;/p&gt;
&lt;p&gt;Thanks to the wonderful &lt;a href="http://chronic.rubyforge.org/"&gt;Chronic&lt;/a&gt; library, you can specify your time frames using natural language expressions like &amp;#8220;8 in the morning&amp;#8221;, &amp;#8220;this tuesday&amp;#8221;, &amp;#8220;last month&amp;#8221; and so on&amp;#8230;&lt;/p&gt;
&lt;p&gt;Here&amp;#8217;s a screenshot showing RedBook in action:&lt;/p&gt;
&lt;p&gt;&lt;img src="/files/redbook.png" alt="" /&gt;&lt;/p&gt;
&lt;p&gt;RedBook is of course free, open source software licensed under the terms of the &lt;span class="caps"&gt;BSD&lt;/span&gt; license. It can be installed on any machine able to run Ruby and there&amp;#8217;s also an &lt;span class="caps"&gt;EXE&lt;/span&gt; version for the lazy windows folks who don&amp;#8217;t want to install Ruby, packed with &lt;a href="http://www.erikveenstra.nl/rubyscript2exe/index.html"&gt;RubyScript2Exe&lt;/a&gt;. A more in-depth article explaining how RedBook works &lt;del&gt;will hopefully be completed soon&lt;/del&gt; is available &lt;a href="http://www.h3rald.com/articles/redbook"&gt;:here&lt;/a&gt;&lt;/p&gt;</description>
      <pubDate>Fri, 28 Sep 2007 18:12:00 -0600</pubDate>
      <guid>http://www.h3rald.com/articles/introducing-redbook/</guid>
      <link>http://www.h3rald.com/articles/introducing-redbook/</link>
      <author>h3rald@h3rald.com</author>
      <comments>http://www.h3rald.com/articles/introducing-redbook/#comments</comments>
      <category>ruby</category>
      <category>productivity</category>
      <category>software</category>
      <category>tools</category>
      <category>redbook</category>
    </item>
    <item>
      <title>Information Mapping</title>
      <description>&lt;p&gt;As I thought, my job also represents a great opportunity to learn new things. I don&amp;#8217;t mean only new technical stuff, but also a great deal of tips, best practices and methods to efficiently write documentation material in proper English. Some theory about &lt;a href="http://www.infomap.com/"&gt;Information Mapping&lt;/a&gt; was by far the most interesting topic I learnt about this week.&lt;/p&gt;
&lt;h3&gt;What is Information Mapping?&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;Definition&lt;sup class="footnote" id="fnr1"&gt;&lt;a href="#fn1"&gt;1&lt;/a&gt;&lt;/sup&gt;&lt;/strong&gt; &lt;br /&gt;
&lt;blockquote&gt;The Information Mapping method is a research-based approach to the analysis, organization, and visual presentation of information.&lt;/blockquote&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Information Mapping is media independent&lt;/strong&gt;&lt;br /&gt;
&lt;blockquote&gt;The method is both subject matter and media independent; that is, it can be applied to the subject matter of any industry, and it can be presented on paper, on a computer screen, verbally, or in a multimedia presentation. &lt;/blockquote&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Key Concepts&lt;/strong&gt;&lt;br /&gt;
&lt;blockquote&gt;Information Mapping is an integrated set of easy-to-learn principles, techniques, and standards. It enables authors to break complex information into its most basic elements and then present those elements optimally for readers. The result is a set of precisely defined information modules that are consistent from author to author and document to document.&lt;/blockquote&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Purpose&lt;/strong&gt;&lt;br /&gt;
&lt;blockquote&gt;&lt;br /&gt;
The method helps writers analyze, organize, and present information with clarity focus and impact. Information That Works. The goal of the analysis component is to determine the&lt;/p&gt;
&lt;ul&gt;
	&lt;li&gt;purpose&lt;/li&gt;
	&lt;li&gt;audience needs, and&lt;/li&gt;
	&lt;li&gt;information types.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;The goal of the organization is to create an overall structure for the information, based on the results of your analysis. Finally, the goal of the presentation component is to format the information to make it clear and accessible to your audience.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p class="footnote" id="fn1"&gt;&lt;a href="#fnr1"&gt;&lt;sup&gt;1&lt;/sup&gt;&lt;/a&gt; Contents were taken from &lt;a href="http://www.infomap.com/index.cfm/TheMethod/"&gt;InfoMap.com&lt;/a&gt; and were re-formatted and re-organized into an information map.&lt;/p&gt;
&lt;h3&gt;Key Concepts&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;Introduction&lt;/strong&gt;&lt;br /&gt;
&lt;blockquote&gt;The Information Mapping method relies on some important principles according to which information should be organized. This method also defines new units of information to replace paragraphs, sections and chapters and tries to divide information into a few main set types, each with its own rules and structures.&lt;/blockquote&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Principles&lt;/strong&gt;&lt;br /&gt;
&lt;blockquote&gt;&lt;/p&gt;
&lt;table&gt;
	&lt;tr&gt;
		&lt;td&gt; &lt;strong&gt;Name&lt;/strong&gt; &lt;/td&gt;
		&lt;td&gt; &lt;strong&gt;Explanation&lt;/strong&gt; &lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr&gt;
		&lt;td&gt; Chuncking &lt;/td&gt;
		&lt;td&gt; Writers should group information into small, manageable units. &lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr&gt;
		&lt;td&gt; Relevance &lt;/td&gt;
		&lt;td&gt; Writers should make sure that al information in a chunck relates to one main point (function or purpose). &lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr&gt;
		&lt;td&gt; Labeling &lt;/td&gt;
		&lt;td&gt; Writers should provide a label for every unit of information. &lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr&gt;
		&lt;td&gt; Consistency &lt;/td&gt;
		&lt;td&gt; Writers should use similar labels, word, formats for similar subject matters. &lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr&gt;
		&lt;td&gt; Integrated Graphics &lt;/td&gt;
		&lt;td&gt; The use of tables, images, diagrams and lists is encouraged. &lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr&gt;
		&lt;td&gt; Accessible Detail &lt;/td&gt;
		&lt;td&gt; Documents should provide sufficient details where necessary, to make the information more accessible for the readers. &lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr&gt;
		&lt;td&gt; Hierarchy &lt;/td&gt;
		&lt;td&gt;  Small, relevant units of information should be organized into a hierarchy. &lt;/td&gt;
	&lt;/tr&gt;
&lt;/table&gt;
&lt;/blockquote&gt;
&lt;p&gt;&lt;strong&gt;Information Types&lt;/strong&gt;&lt;br /&gt;
&lt;blockquote&gt;&lt;/p&gt;
&lt;table&gt;
	&lt;tr&gt;
		&lt;td&gt; &lt;strong&gt;Name&lt;/strong&gt; &lt;/td&gt;
		&lt;td&gt; &lt;strong&gt;Definition&lt;/strong&gt; &lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr&gt;
		&lt;td&gt; Procedure &lt;/td&gt;
		&lt;td&gt; Set of steps to obtain a specified outcome &lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr&gt;
		&lt;td&gt; Process &lt;/td&gt;
		&lt;td&gt; A series of changes through the time for some purpose &lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr&gt;
		&lt;td&gt; Structure	&lt;/td&gt;
		&lt;td&gt; Something which can be defined into multiple parts &lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr&gt;
		&lt;td&gt; Concept &lt;/td&gt;
		&lt;td&gt; Group of physical objects, conditions, relations, &amp;#8230; &lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr&gt;
		&lt;td&gt; Principle	&lt;/td&gt;
		&lt;td&gt; Statement of what should be done, assumptions &lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr&gt;
		&lt;td&gt; Fact &lt;/td&gt;
		&lt;td&gt; Statement presented with no supporting evidence &lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr&gt;
		&lt;td&gt; Classification &lt;/td&gt;
		&lt;td&gt; The sorting of a group of specimen into classes &lt;/td&gt;
	&lt;/tr&gt;
&lt;/table&gt;
&lt;/blockquote&gt;
&lt;p&gt;&lt;strong&gt;Conclusion&lt;/strong&gt;&lt;br /&gt;
&lt;blockquote&gt;Although it may initially seem too schematic, Information Mapping is a valid method to organize and present information to those readers who just need &amp;#8220;facts&amp;#8221; without any unnecessary distraction. This method it is used with some modifications in many technical manuals and documentation written by many companies.&lt;/blockquote&gt;&lt;/p&gt;</description>
      <pubDate>Thu, 01 Jun 2006 22:10:00 -0600</pubDate>
      <guid>http://www.h3rald.com/articles/33/</guid>
      <link>http://www.h3rald.com/articles/33/</link>
      <author>h3rald@h3rald.com</author>
      <comments>http://www.h3rald.com/articles/33/#comments</comments>
      <category>productivity</category>
      <category>writing</category>
    </item>
  </channel>
</rss>

