Simple text applet for Ubuntu's Unity panel

Since upgrading Debian left me with broken X, I tried to use Ubuntu for couple of days. I have to confess that Unity is a nice piece of software. On Debian I have nice setup with awesome window manager (framework!) that displays line of text on the panel. I wanted to have the same on functionality with Unity. It was not that hard.

Unity Panel

I wrote a small Python program that executes command every 37 seconds, reads that commands output and puts that on the Unity panel. Simple task. The actual output generated by the command is more complicated, since it displays my next calendar entry, near by weather from the Finnish weather service and couple of mailboxes. I am not going to describe its inner logic in detail here. But basically the Python program is the applet

Here is the Python applet.

#!/usr/bin/env python
import sys
import gtk
import appindicator

import subprocess

PING_FREQUENCY = 37 # seconds

class PetteriApplet:
    def __init__(self):
        self.ind = appindicator.Indicator("petteri",
                                           "petteri",
                                           appindicator.CATEGORY_APPLICATION_STATUS)
        self.ind.set_label("petteri")
        self.ind.set_status(appindicator.STATUS_ACTIVE)
        self.ind.set_attention_icon("new-messages-red")

        self.menu_setup()
        self.ind.set_menu(self.menu)

    def menu_setup(self):
        self.menu = gtk.Menu()
        self.quit_item = gtk.MenuItem("Quit")
        self.quit_item.connect("activate", self.quit)
        self.quit_item.show()
        self.menu.append(self.quit_item)

    def main(self):
        self.check_line()
        gtk.timeout_add(PING_FREQUENCY * 1000, self.check_line)
        gtk.main()

    def quit(self, widget):
        sys.exit(0)

    def check_line(self):
        line = subprocess.check_output(["/home/petteri/bin/combine"])
        self.ind.set_label(line.strip())
        return True

if __name__ == "__main__":
    indicator = PetteriApplet()
    indicator.main()

After the Python program was finished I created ~/.config/autostart/petteri-applet.desktop file with the following content:

[Desktop Entry]
Name=Petteri
Comment=Show string in panel
Icon=Petteri
Exec=/home/petteri/bin/petteri-applet
Terminal=false
Type=Application
NoDisplay=true
NotShowIn=KDE;
X-GNOME-Bugzilla-Bugzilla=GNOME
X-GNOME-Bugzilla-Product=NetworkManager
X-GNOME-Bugzilla-Component=general
X-GNOME-Autostart-enabled=true
X-Ubuntu-Gettext-Domain=petteri-applet

The .desktop dictates that every time I start Unity the Python applet (/home/petteri/bin/petteri-applet) will be also started. Works nicely

Categories: Ubuntu, Avoin, Debian, English
Date: 2012-09-30 18:28:48

Nokia N9

Nokia N9 on pitkän odotuksen jälkeen kädessä. Tässä ensifiiliksiä sekä jäähyväiset maailman parhaalle puhelimelle (N900).

N900 on palvellut erittäin hyvin kaksi vuotta. Se on ehdottomasti paras puhelin (vai mikä taskutietokone nyt olikaan) mitä olen koskaan käyttänyt. Silti on tullut aika jättää hyvästit. Miksi? Nokian seuraava Linux-puhelin on vihdoin tullut, eli N9. Se ei missään nimessä ole N900:aa vastaava laite, mutta elämä on lyhyt ja vaihtelu virkistää. Välillä täytyy testata uusia juttuja.

http://23.fi/kuvat/nokiat.jpg

N900 on tarjonnut Linuxin taskussa, vieläpä Debianiin pohjautuvan. Tällaiselle Debian-nörtille se on ollut unelmien täyttymys. Nyt kun on pari päivää ollut käytössä N900:n henkinen seuraaja, niin päätin listata tähän puhelimien eroja sekä tunteita kummastakin.

N9 ensivaikutelma on ristiriitainen. Ulkoisesti puhelin on ihan törkeen siisti. Se näyttää hyvältä sekä sopii käteen. Ohjelmisto on sen sijaan vähän huteran tuntuinen. Mikään ei ole suoraan huonoa, mutta aika monesta paikasta paistaa sellainen pieni viimeistelyn puute. Välillä ohjelma ei toimi heti näppäilyn jälkeen (esim. asetusvalikko), tai sitten jotain pitää vaan tökkiä useasti ennen kuin lähtee päälle (esim. viestin kirjoittamisessa virtuaalinäppiksen esiin saaminen). Näiltä osin softapuoli on kuitenkin N900-käyttäjälle tuttua. Nokia varmaan korjaa pikkuvirheitä tulevissa ohjelmistopäivityksissään. N9:ssä on sovelluskehittäjän tila, joka lisää terminaalin ohjelmavalikkoon, sekä käynnistää ssh-palvelimen puhelimeen. Alkuräpellyksen jälkeen loppuilta menikin ssh:lla pöytäkoneelta puhelinta räplätessä. Konepellin alla N9:ssä on samanlainen Linux-ympäristö kuin N900:ssa.

Lopulta N9 tuntuu ihan erilaiselta kuin N900. Ei paremmalta tai huonommalta. Ajattelin kuitenkin käyttää vain yhtä puhelinta, joten tässä pieni vertailulista parin päivän käyttökokemusten perusteella:

N9:ssä parempaa

  • Pienempi
  • Näytönsäästäjässä kello ja ilmoitukset
  • Kuvaaminen ja gallerian käyttö huomattavasti jouhevampaa
  • Tosi siisti "design" softien ulkonäössä
  • Musaohjelma (last.fm-tuki harmittavasti vielä uupuu)
  • Puhelimen SSH-palveli toimii paremmin
  • Terminaaliohjelma
  • Sähköpostiohjelma
  • Puhelintoiminnot

N900:ssa parempaa

  • Näppis
  • Ohjelmien sulkeminen ja vaihtaminen helpompaa
  • Opera mobile -webbiselain pesee N9:n oletusselaimen
  • Viestit-näkymä parempi
  • Joitain terminaaliohjelmia helpompi käyttää (esim. mutt)

Pienistä puutteista huolimatta N9:ä käyttää todella mielellään. Parin vuoden N900-käytön jälkeen tuntuu se pirteältä ja uudelta, mutta silti etäisesti tutulta.

Categories: Avoin, Jabber, Debian, N900, N9
Date: 2011-10-14 22:42:43

Lenovo ThinkPad x201i

Pöytäkone oli temppuillut jo pidemmän aikaan. Yksi ongelmallinen komponentti oli SSD-levy, jota en ollut jaksanut päivittää. Hetken hintojen ja komponenttejen vertailun jälkeen päätin, etten jaksa päivittää pöytäkonetta, sillä se olisi taas johtanut kaikkien komponenttejen uusimiseen. Kokemusta oli erinomaisesta Lenovon x61s läppäristä. Lueskelin netistä, että x201i on sen jatkaja, erona on vain laajakuvanäyttö. Suurimmassa osassa ThinkPadeissa on Intelin komponentteja, joihin on yleensä hyvä Linux-tuki. Linux-käyttäjänä tämä on iso ostokriteeri.

Lenovon x-sarjalaiset ovat aika hyvissä hinnoissa, mutta yllätyksenä sopuhinnalla sai halpismallin x201i:stä. Speksit: i3-370M 2048MB 320GB. Ihan tarpeeksi hyvät mulle. Käyttötarkoitus: nettisurffiminen, musan kuuntelu, viestittely ja koodaus. Vähän pelotti mainoskuvissa näkynyt jenkkityylinen pieni Enter-näppäin. Huojennukseksi suominäppiksellä varustetussa versiossa Enter on normaalin kokoinen. Ensivaikutelma oli pienehkö pettymys. x201i on paljon isompi kuin x61s, jos olisin tämän tilatessa tiennyt, niin olisin varmaan jostain kaivanut uuden x61s:n. Typerä laajakuvanäyttö leventää läppäriä tosi paljon. Lisäksi näytön ympärillä on surureunat ja näytön laatu ei ole lähelläkään x61s:n näyttöä. Suurin pettymys on kuitenkin VGA-portin tai Intelin HD graphics näytönohjaimen laatu. Kun kuva on ulkoisessa näytössä on signallissa aina välillä pientä viivettä. Normaalissa käytössä sitä ei huomaan, mutta esim. liikkuvaa kuvaa ei voi oikein katsoa. Samaa ongelmaa ei ole x61s:ssä.

Vasemmalla x201i, oikealla x61s

Debianin Netinstall toimi aivan ongelmitta, siis jopa kaikki "läppäriominasuudet". Kaiken hyödyn irtiottaminen Intelin näytönohjaimesta vaati kuitenkin aikamoista säätämistä. Kernel sekä liuta muita komponentteja vaati päivittämistä. Lopputulos oli kuitenkin vaapi-kiihdytetty mplayer.

Loppuen lopuksi läppäri on kyllä tosi kiva, kevyt ja tarpeeksi pieni, vaikkei kuitenkaan yhtä pieni kuin x61s. Tehot riittävät hyvin omaan käyttöön, mutta VGA-ulostulon sijaan olis saanut olla joku nykyaisempi tekniikka. Isoin asia on tietysti se, että Linux-käytössä x201i toimii hyvin.

Categories: Debian, Avoin
Date: 2011-01-08 22:02:05

Jabberin ääni-ja videopuhelut Empathy-pikaviestimellä

Nokia N900 tukee suoraan puhelimesta Jabber-puheluita ja Jabber-videopuheluita, joten oli aika testailla miten puhelut toimivat muiden ohjelmien kanssa. Tällä hetkellä Jingle-tuki, joka on siis Jabberin VOIP-teknologia, on jo aika monessa Jabber-ohjelmassa. Nopean tutkimisen jälkeen kuitenkin selvisi, että valmis tuki ääni-sekä videopuheluille Linuxissa on vain Pidginissä, Empathyssä ja Coccinellassa. Muissa ohjelmissa Jingle on vasta kehitysversiossa. Esimerkiksi lempparipikaviestimessäni Gajimissa tukea vielä kovasti kehitellään. Päätin testailla Empathyllä, sillä se tuntuu olevan kovassa huudossa nykyään, on jopa päätynyt Ubuntun ja Gnomen viralliseksi pikaviestimeksi.

Ensin täytyi tietysti hommata web-kamera. Logitechin C200 maksoi verkkokauppa.comissa 19,90 ja netin mukaan se toimii suoraan Linuxissa. Sen kävin hakemassa. Kamera toimikin suoraan ilman mitään ajurien metsästämistä tai muunlaista säätämistä. C200:ssa on sisäänrakennuttu mikrofoni, jonka käyttöönotto olikin sitten hieman haasteellisempaa. Mutta ensin vähän Empathysta ja sen ongelmista.

Empathy 2.30.1

Empathy on Gajimin kaltainen pikaviestin. Se mainostaa tukevansa eri protokollia, mutta ainoastaan Jabber kiinnosti tällä kertaa. Gajimiin tai Psihin verrattuna Empathy on aika pelkistetty, jopa hieman ankean näköinen. Empathy ei myöskään ole täysin itsenäinen ohjelma, vaan tarvitsee kaikenmoista lisäkilkettä toimiakseen. Tästä johtuen sen käyttöönotto ei sujunut täysin ongelmitta.

Empathy versio, jonka kanssa tappelin oli 2.30.1. En käytä Gnomea enkä käyttänyt tätä ennen myöskään NetworkManageria, mutta ilman niitä Empathy ei suostunut toimimaan. Varsinkin NetworkManager-ongelma oli varsin vaikea löytää. Empathy tutkii NetworkManagerilta, onko nettiyhteys käynnissä. Jos nettiyhteyttä ei NetworkManagerin kautta löydy, niin Empathy ei yhdistä nettiin. Ongelma korjaantuu, kun korjaa /etc/NetworkManager/nm-system-settings.conf -tiedostosta NetworkManagerin ohjaamaan normaalia nettiyhteyttä.

/etc/NetworkManager/nm-system-settings.conf

[ifupdown]
managed=true

Tietysti vielä hämäävämpää oli, että NetworkManager oletuksena ohjaa langattomia yhteyksiä, muttei langallisia. Tästä seurasi, että Empathy toimi aina kun wlan-yhteys oli päällä, muttei koskaan, kun ethernet-piuha oli kiinni. Näin ainakin Debianissa. Tästä on avattu bugiraporttikin, josta löytyy lisätietoa ongelmasta.

Seuraavaksi tuli vastaan mikrofoniongelma. Koneessa näkyy webbikameran kytkemisen jälkeen kaksi äänikorttia. Toinen on emolevyn ja toinen web-kameran. Näistä pitäisi pystyä valita siten, että web-kameran äänikortista käytetään mikrofonia ja emolevyn äänikortista normaalia äänen ulostuloa. Tämä ei tuntunut olevan mahdollista alsamikseristä, eikä oikein mistään muustakaan sovelluksesta. Siis pysyvien asetusten tekeminen. Ongelma löytyi vielä hieman hassusti. Koneen käynnistyessä käyttöjärjestelmä välillä käytti web-kameran mikrofonia ja välillä emolevyn. Ihan ensimmäisellä ihmettelyllä en ongelmaa löytänyt, vaan vaati se useampia koneen uudelleen käynnistämisiä.

Ratkaisuna mikrofoniongelmaan oli ladata äänikorttien ajurit tietyssä järjestyksessä /etc/modprobe.d/alsa-base.conf -tiedostossa ja tehdä /etc/asound.conf, jossa määritellään mitä korttia käytetään ulostuloon ja mitä kaappaukseen.

/etc/modprobe.d/alsa-base.conf

options snd_hda_intel index=0
options snd_usb_audio index=1
/etc/asound.conf

pcm.!default {
        type asym
        playback.pcm {
                type plug
                slave.pcm "hw:0,0"
        }
        capture.pcm {
                type plug
                slave.pcm "hw:1,0"
        }
}

Lopputulos jätti vielä hieman parantamisen varaa, sillä vaikka äänikortit toimivatkin halutulla tavalla, mikseri ei. Esimerkiksi, jos puhuu videopuhelua ja haluan katsoa samalla youtubesta video-pätkän, niin puhelu estää videopätkän äänet. Tähän vielä kun löytyisi ratkaisu, niin kokonaisuus olisi toimiva Tähän löytyikin lopulta ratkaisu käyttämällä ohjelmallista miksausta (dmix) playback-äänikorissa.

        playback.pcm {
                type plug
		slave.pcm "dmix"
        }

Kun Empathyn asentamisen alkuvaikeudet olivat ratkottu, toimivat N900 ja Empathy hyvin yhteen. Kuva ja ääni välittyy mainiosti.

Jingle-videokeskustelu Sinin kanssa

Vaikka välillä Jabberin hidas kehittyminen onkin ihmetyttänyt, niin Jinglen video-ja äänipuhelut ovat aivan mahtavia. Seuraavaksi Jabber-yhteisöllä näyttäisi olevan suunnittelupöydällä Jingle-ryhmävideokeskustelut. Vaikuttaa aika mielenkiintoiselta. Voi vain kuvitella miten satojen IRC-käyttäjien kanavat siirtyvät tulevaisuudessa ryhmävideokeskusteihin, joissa kaikki pälättävät taukoamatta yhtäaikaa.

Categories: Jabber, Debian, Avoin, N900
Date: 2010-06-03 14:03:42