Everything in place – Mise-en-place

I think it was my friend Joseph Pelrine who first got me interested in the world  of  kitchen and got me to appreciate the craft and skills of great chefs. Not just personal skills and talent – but the ability to structure the dishes, preparations and processes in a way that makes it possible for the team to give all that they got into the food they make. And do that day after day.

There was a blog related to the subject in HBR some time ago, shared by many people.

http://blogs.hbr.org/2014/06/how-to-spend-the-first-10-minutes-of-your-day/

It is a good read.

And a good reminder that there is a good amount of great practices and ideas around us, something we can or could benefit from in our work in totally different contexts. It should also remind us that we information workers are not – by all means – alone in the world honing our skills, trying to improve constantly and taking pride in that.

There are also numerous situations and contexts where we can observe people not doing that. As an observer it is always easier to see the possibilities and improvement opportunities in what others are doing or not doing, but we could be blind to or unable to see the same in our own doing.

The world is filled opportunities to improve, do things better — and also great inspirational examples of people doing just that. I wish I don’t forget that. And I wish I don’t become too lazy or blind to my own opportunities to improve and better myself.

I am an old dog and slow to learn new tricks ( just ask someone about my cleaning habits  around the house ) – but I try.

 

Kategoria(t): agile, business, life | Jätä kommentti

Do I do as I preach? Ruthlessly good productivity tools

I have studied and tried quite many productivity tools and techniques, and have been also preaching about some of them to my friends and colleagues. But what has not necessarily been said is that these techniques and tools are ruthless, and can also make you feel bad – because they do expose your procrastination and bad habits. Even though I know it is good for me, I can’t — seriously — I can’t do it all the time, every time. But perhaps that is also the reason  why I am not a professional athlete.

What has worked wonders for me – has been time boxing with pomodoro method. It does not work for every potential type of task and work I need to do, but works wonders even in creative things where I need to get started and not just procrastinate the best potential choice.

There are numerous different pomodoro tools and timers — and you can use even any type of timer to alarm you. I’ve used on OS X a rather impressing software called Vitamin-R - which bundles a helpful features to a normal timer and planner.

Like many other tools Vitamin-R forces you to focus on one task at a time.

You define the length of the slice – and see whether you have something coming up in your calendar.

While running the time slice Vitamin-R reminds you about how much time is remaining. You can also request the program to read aloud your objective again. Great ideas and thoughts that are not relevant to the current task can be jotted down to scratch pads inside Vitamin-R.. And those pads can be raised to the front by keyboard shortcuts.

One thing that really sets Vitamin-R apart from many other tools is statistics that it collects from your time slices, your motivation and focus. Statistics themselves are not helpful if you do not use them, if you use them – you can find when you are most productive, how you feel good and how you get most stuff done.

Vitamin-R is not have task management features, but rather complements existing task managers. As I have worked mostly on OS X, my task manager of choice has been The HitList.

HitList allows me to clear my mind of things to do and push them into lists, and then to process them one by one. Great feature has been also tagging tasks, this way I can find those tasks like blogging tasks even though they would be in different lists.

The HitList fills in the spot for GTD ( Getting Things Done ) tool. OneNote, Evernote or even a text file could do the same, these specialised tools just have some additional features and workflows that support you in what you are trying to do. Still from time to time I do my task lists in a text file, especially if I am working on linux box and programming something.

Combined together The HitList and Vitamin-R form the productivity backbone for me — allowing me to try to manage my time with the techniques and ideas taken from pomodoro and GTD. And even though I still do many sessions with free form brainstorming and slacking off without a tight timebox, I have noticed these tools and techniques to help me enormously when I really need to get things done.

But as said, these techniques are ruthless — and you need to rest also. After working with high focus and high motivation for a long time, you really do know that you have done something — even if it seems that everything you have done is been at the keyboard typing frivolously.

So.

These are my tools.

What are yours? What is your secret sauce to be the best you can be?

Kategoria(t): agile, business, life | Jätä kommentti

Got documentation as markdown and PlantUMl in maven project?

Somehow I have not written a note about this before.

Maven site plugin can help you to publish your documentation — also if it is written in markdown. You just need to use doxia-module-markdown module and configure it to be used with the site.

See instructions and tips from here: http://stackoverflow.com/questions/14829190/how-to-use-markdown-for-maven-project-site

You can add also PlantUML plugin into pom and transform your PlantUML drawings into PNG and written into site’s output directory.

However if you want to get the site built during the normal phases instead running mvn site — and for example package the site into a web application, you need to command both PlantUML and site plugins to run during the compile phase. Executions tag is just the perfect way to do that.

 

PlantUML plugin can be run with the following configuration added to plugin configuration.

<executions>
<execution>
<goals>
<goal>generate</goal>
</goals>
<phase>compile</phase>
</execution>
</executions>

 

And site plugin can be run with following:

<executions>
<execution>
<goals>
<goal>site</goal>
</goals>
<phase>compile</phase>
</execution>
</executions>

Configuration can be added to direct output to a specific places:

<configuration>
<outputDirectory>${project.basedir}/target/war-docs-1.0/</outputDirectory>
</configuration>

In the above case we are directing the output to a web application’s directory to be packaged into the application. This way we are able to build and package a web application in singe stroke — and include also related documentation with it.

How cool is that.

Kategoria(t): programming, technology | Jätä kommentti

SublimeText + Markdown Preview + Live Reload = epic markdown writing environment

I’ve been a fan of Sublime Text for some time, but not taken many of it’s features into full use. One of those features I neglected for some time was usage of plugins, which turbocharge already awesome editor.

As I am very fond of Markdown and it’s use as a convenient documentation writing language, the first plugins I wanted to try and use were plugins to preview markdown text while I am writing it. Though the markdown plugin inside IntelliJ idea is great and I like to use it a lot, there are numerous situations where I just want to quickly write and edit some documentation outside the IDE — hence my interest to get this work!

Markdown Preview was installed easily just following the instructions to install the Package Control and then straight from the repository. After installation Markdown Preview commands were available as commands.

By using cmd+shift+P and selecting ’Markdown Preview: Python Markdown: Preview in Browser’ plugin would render my markdown into temporary file and open it in browser.

See download and instructions from here: https://github.com/revolunet/sublimetext-markdown-preview

Functionality is almost perfect straight out of the box.

Only gripe is the need to manually refresh the browser after saves. I know. Truly a first world problem.

Luckily a little help comes from another plugin, LiveReload.

See more here: https://github.com/dz0ny/LiveReload-sublimetext2/tree/devel

I had problem getting the LiveReload plugin first to work properly – as I did not understand that you had to manually enable the LiveReload plugin for specific behaviour. Only after I selected from command palette command to Enable LiveReload plugins and enabled Simple reload things started to work as requested.

See the video above how live reload works and updates the browser every time the document gets saved.

Me likes!

Kategoria(t): technology | Jätä kommentti

Some new posts in finnish blog: Lumia 1020, 3h delivery service from Verkkokauppa.com and admiration for 4k displays

First one:

How Lumia 1020 feels after iPhone

… Verdict. Feels like the best camera with integrated phone.

Verkkokauppa.com offers new fast deliveries from their warehouse to anywhere in Helsinki in 3 hours for 9,90 ( regular pricing will be / can be different in the future ). Future is here.

I did not understand what the fuss with 4K was, until I saw one in real life. Yes please, when the prices come to more rational level for consumers.

4k display for programmers will be HUGE productivity booster.

Kategoria(t): business, life | Jätä kommentti

PlantUML and Markdown for quick documentation

Writing documentation is so much fun.

Though we all always aim to write code that clearly communicates the ideas and intentions of our code, there are still moments where we need to write documentation and describe something to our colleagues. And when we need to do that, what programs should we use so that also our colleagues could update the documentation and the living nature of documentation would be fulfilled?

What has worked in some projects for me, has been the combination of PlantUML and Markdown — with a dash of integration into IDE and maven plugin or a hint of Python script to do transformations into HTML.

PlantUML is extremely unsexy project to provide capability to define UML graphs in text and create pictures from them automatically.

A cool sequence graph like this:

Could be created with a text like below:


@startuml
actor serviceperson
boundary Siebel
participant Cognos
participant MessageBroker
participant "Alfresco Api"
participant Portal
actor Customer

title Sequence diagram describing how different actors interact in Service Report-integration
serviceperson -> Siebel : register report
Cognos -> Siebel : analyse data
Cognos -> Cognos : launch report generation, \n generate files to disk
MessageBroker -> Cognos : Read metadata and files
MessageBroker -> MessageBroker: Transform message
MessageBroker -> "Alfresco Api" : post the file and metadata
"Alfresco Api" -> MessageBroker : respond OK or error \n create new file or \n replace existing file

Portal -> "Alfresco Api" : Search reports
"Alfresco Api" -> Portal : Response listing\n with download links
Portal -> Customer : Present listings
Customer -> Portal : Request download
Portal -> "Alfresco Api": Download file
Portal -> Customer: Stream file to user
@enduml

Fast to write. Fast to understand.

Drive the point home better than with a longer prose or ASCII graphs.

Then what about Markdown? How does that fit into the picture?

Markdown syntax allows you to create really quick formatting to your text and transform that to HTML later on. Once again makes you a bit more agile in writing your thoughts down and describing them to your colleagues.

And the good part?

Most likely your IDE or editor already has some kind of support for these syntaxes, making your work and workflow even more smoother — allowing you to preview your graphs and documents fast.

PlanUml plugin

Markdown plugin

Above examples show plugins in IntelliJ Idea.

Otherwise depending on your workflow you could integrate graph generation and markdown transformation into a maven phase — or do like I do, use Python script to manually generate html versions when needed.

#!/usr/bin/env python
#
# This script transforms markdown and plantuml documents into html-files and png-images
#
# Transformed images are put into html subdirectory
#

import os, sys
from fnmatch import fnmatch

def ensure_dir(f):
d = os.path.dirname(f)
if not os.path.exists(d):
os.makedirs(d)

if len(sys.argv) != 3:
print "Usage:", sys.argv[0], "" , " plantuml.jar path>"
sys.exit()

directory = sys.argv[1]
plantuml = sys.argv[2]

for path, directory, files in os.walk(directory):
for file in files:
if fnmatch(file, "*.md"):
markdown_file = "%s/%s" % (path, file)
html_dir = "%s/%s" % (path, 'html/')
ensure_dir(html_dir)
html_file = "%s%s" % (html_dir, file.replace(".md", ".html"))
os.system("markdown2 %s > %s" % (markdown_file, html_file))

if fnmatch(file, "*.puml"):
puml_file = "%s/%s" % (path, file)
print puml_file
os.system("java -jar %s %s -o html" % (plantuml, puml_file))

Above Python script traverses directory tree you give it to find Markdown files ( *.md ) and PlantUml files ( *.puml ) and creates html subdirectories into directories to store html versions of the text and png versions of graphs.

As a second parameter script requires path to plantuml.jar.

Script should be easy to understand and modify to your own needs.

With Markdown and PlantUml integrated into your coding workflow there should not be any more reasons not to write necessary documentation for your colleagues. And as everything is text based and tightly integrated into the build system & environment – anyone can update, fix and improve that documentation at the same time as they update or refactor the code.

Kategoria(t): programming, Uncategorized | Jätä kommentti

Replacement battery for old 13″ Macbook

Just ordered an OEM replacement battery for my old macbook from Ebay.de for 38 euros. I had noticed that the Macbook had started to behave strangely, complain that it does not have any load in battery and run the fan almost all the time — that did not worry me as much as the bulging in the battery I noticed today.

New battery from Apple would have cost few times more — and would have started to make more sense to actually replace the Macbook with a Raspberry Pi based HTPC. Actually I could have done that already now – but as I don’t have time to do additional hacking projects, I rather just replace the battery for now and continue using the Macbook as a living room music player.

Kategoria(t): Uncategorized | Jätä kommentti