This is not a pipe (jj version 2)

My favorite XMPP client has been working really nicely every day for the last couple of years. Since releasing jj version 1, I have added some minor features and fixed bugs.

Here is a list of most important changes for jj version 2:

  • Support for MUC private messages
  • Status information to contact's directory
  • More precise time format for output

Writing status information every time contact's status information changes might use excess amount of disk space. I advice to monitor jj's disk space usage. Biggest status file found from my jj directory was only 1.5M, but there might be a problems with some other setups. There is also option -n to disable status output entirely if needed.

I am using some tools with my jj setup. I will put those to tools directory on the jj source code repository. For now there is only fecho utility. Fecho is a wrapper around echo that prevents blocking if one of jj's fifos does not read the input right away.

Version 2 of jj can be downloaded from jj's home page

For those who are interested the full source code changes of version 2 can be inspected at github.

Categories: Jj, Jabber, English
Date: 2012-11-29 21:23:54

Android 4.2-päivitys

Nexus 7 päivittyi toissa päivänä uusimpaan Android-versioon 4.2. Päivitys toi mukanaan kaksi erittäin kivaa ominaisuutta, sekä liudan pieniä parannuksia.

Käyttäjätilien tuki on varmasti odotetuin uusista ominaisuuksista. Sen toteutus on onnistunut. Androidin tapa pyörittää ohjelmia taustalla on herättänyt paljon keskustelua. Aikaisemmin "multi-tasking"-ominaisuutta on pidetty keskeneräisenä. Oletuksena Androidissa pyörii vain yksi ohjelma. Muut käynnistetyt ohjelmat ovat nukkumassa taustalla. Käyttäjätilien tapauksessa tämä toimii todella hyvin. Kun uusi käyttäjä kirjautuu sisään, jää vanhan käyttäjän ohjelmat taustalle. Kun käyttäjä vaihtuu takaisin, ovat ohjelmat täsmälleen samassa tilassa mihin ne jäivät edellisen käyttäjän kirjautuessa. Näin käyttäjien vaihto on todella näppärää.

Toinen 4.2-version iso ominaisuus on liutusnäppäimistö. Näppäimistöä voi sormella vedellä eri suuntiin ja Android arvaa mitä sanaa käyttäjä yrittää kirjoittaa. Sama idea on Nokiankin puhelimista tutulla Swype-näppäimistöllä. Harmittavasti uusi kirjoitustapa toimii paremmin pienemmillä näytöillä. Nexus 7:ssa näyttö on sen verran suuri, että sormen liuttaminen näppäimistön päästä päähän alkaa nopeasti tympimään.

Muut uudistukset ovat pieniä viilauksia siellä sun täällä. Jotain keskeneräisyyksiä on edelleen jäljellä, mutta mikään ei ole mennyt erityisesti huonompaan suuntaa. Kokonaisuudessaaan Android 4.2-päivitys on ihan onnistunut.

Categories: Android, Nexus7
Date: 2012-11-17 22:51:52

ANSI colors in Python

It is nice to have colors in modern Linux shell. Colors in bash scripts are quite common, but coloring Python script output is just as easy. Colors in shell are done with ANSI escape codes. Here is an example code snippet on how to get started with ANSI colors in Python.

#!/usr/bin/python
import sys

ansi_red = '\033[91m'
ansi_yellow = '\033[93m'
ansi_end = '\033[0m'

def apply_color(msg, color):
    if sys.stdout.isatty():
        return "%s%s%s" % (color, msg, ansi_end)
    return msg

def apply_red(msg):
    return apply_color(msg, ansi_red)

def apply_yellow(msg):
    return apply_color(msg, ansi_yellow)

print "%s roses and %s submarine." % (apply_red("Red"), apply_yellow("yellow"))

Function apply_color does some minor sanity checking, so that when redirecting output to file it will not insert the ANSI escape codes there.

Date: 2012-11-01 21:27:51