I have been catching up on my python programming the last week. Even more so, I have been catching up on GUI programming with PyQt4. I haven’t programmed anything graphical since maybe early 2005, so beginning again was a bit of a chock. I have spent two days on a “New beginning” with python and Qt, and it is actually starting to shape up.

My first app was a small chatt client for an even smaller chat server I programmed earlier this week (it just delivers messages between the connected peers, and it has buggy-as-hell groupchat capabilities). Needles to say I encountered many small problems – and of course a couple of huge ones as well.

Out of nowhere I started getting some really weird “XRender Bad glyphset 152″ output in my app, and All I was doing was appending UTF-8 text to a QTextEdit. Seems I overlooked a small thing:

You cannot access and change Widgets created in another thread. From what I remember from using GTK, and previous versions of Qt this has always been. (Qt was a bit better back then, though). You just cannot in any way modify the GUI from another thread.

Anyways: the way to get around this is of course to use signals and slots.

Another small promlem I kept getting was that a QTextEdit always got me ascii text when I converted  the QString to a pyhton string. I fiddled around with some various str.encode() and str.decode() before I found the QString.toUtf8(). That did the job.

I thought I would make this a small pyqt series with a bit of information about the problems I have had. People seemed to appreciate my lite info-thingie about how to get knemo running in KDE4.1, and perhaps someone might find this page through google. While googling for some pyqt stuff.

The resources I have found valuable are:

The Qt C++ reference – requires some aptness in understanding c++
ZetCode – Really not that great as a reference, but it helps the beginner in grokking the basics
Rempt’s book – Quite outdated, but still a great read. (can be downloaded with HTTRack)
Infopage on pyqt4 – not very explaining, but a good read.

EDIT: also found the Qt reference convertet to python:
http://www.riverbankcomputing.co.uk/static/Docs/PyQt4/html/classes.html

And now, a screenshot of my editor, just to impress my brother:

dogshit

Valspråk

januari 17, 2009

Mitt tidigare valspråk var tråkigt nog identiskt med Svenska Akademiens valspråk “Snille och smak”. Nu är den tiden över. Jag kände att det inte riktigt passade i tiden, men med tanke på att det valspråket har några hundra år på nacken är det rätt imponerande. Nu är den tiden förbi dock. Mitt nya valspråk är:

“Mot oändligheten, tills vidare”

Mitt nyårslöfte

januari 10, 2009

Trots att jag på tolvslaget mådde skit och hade livsångest så hann jag ändå ge ett nyårslöfte: Jag ska bli en lite sämre människa. Det är så tråkigt och så nittiotal att bli bättre. Jag går en annan väg.

Då menar jag dock såklart inte rent medmänskligt, utan ur duktighetssynpunkt. Nu när jag skriver detta är målet uppnått (och det ska tangeras!) genom att jag en enkel fredag struntat i att öva och gått ut och umgåtts och druckit öl. Imorn kommer jag må dåligt då jag för tillfälligt är salongsberusad, och det känns fantastiskt!

Det är laddat med dopaminersättare (kaffe) och huvudvärkstabletter inför morgondagen. Jag måste faktiskt säga att det blev trevligt. Råkade ta en lite ostrategisk plats då jag hamnade mellan två som (om jag förstått saker rätt) borde suttit bredvid varandra. Åh. om man ändå kunnat gå och bli förälskad.

Kände mig lite tråkig, men det har nog lite med att jag inte umgåtts med folk på riktigt på närmare sju månader. Lite ringrostig får man vara. God natt.

duktighet

januari 8, 2009

Jag känner det ibland. Jag stressar lite för mycket, övar lite för mycket och glömmer bort att umgås. När jag sedan kommer hem tänker jag på skalor, stycken och intonation. Kort sagt: jag är en sjukligt duktig fagottist.

Så plötsligt så stannar man upp och känner att man glömt sig själv nånstans i mellanspelet. Och inte bara har man glömt sig själv, man har också glömt varför det är kul att hålla på. Man gör det man ska, inget mer.

Jag gör så rätt ofta om jag ska vara ärlig – Identifierar mig lite för mycket med att spela fagott så att övningen inte längre är ett medel eller en process,utan något man gör utan att ifrågasätta. Utan att fråga sig själv nånting alls

Det är farligt att mata sin duktiga sida för mycket. Den blir för stor, och till slut kan man inte förhålla sig till en uppgift utan duktighetens infallsvinkel. Är det inte där nånstans ens arbete förlorar sin själ?

Han tog rådet bokstavligt. “Le inte, men visa tänderna” hade hon sagt. Vad kunde man läsa ur det? Han bestämde sig för att testa på någon, men det fanns inte en människa så långt ögat såg. Eller vänta! Där! En man stod i ett gathörn längre bort, nonchalant rökande en morot.

Han ansträngde sig till sitt yttersta för att se normal ut, men inom honom bubblade förväntningarna som brinnande frityrolja. Ungefär tio meter ifrån morotsmannen skred han till verket. Blicken fixerad på mannens ögon och läpparna smakfullt tillbakadragna.

Under en kort sekund ramlade ett perplext uttryck över mannens ansikte. KATASTROF! Förlust. Ett misslyckande i det att vara människa! Men sekunden, som varade ymnigt, tog slut och mannens ansikte mjuknade. Läpparna drogs tillbaka och visade morotens hela blast. What a blast!

Uppmuntrad av segern gick han vidare och bemötte Stockholm med sina tänder. Vissa beakade nihilistiskt inte alls hans närmanden, men känslosvallet efter sådana bemötanden blev mindre och mindre då den överrumplade majoriteten faktiskt grinade tillbaka.

Det hela fortskred väldigt fint: Han visade tänderna för gubbar på parkbänkar, röda gubbar, kvinnliga gubbar, barngubbar, gravida gubbar, sega gubbar och andra gubbar.

När dagen sedan avlidit gick han hem. Lite tryggare i hur han skulle mota allmänheten.

visa_tanderna

Note to self: typing games

januari 4, 2009

http://play.typeracer.com/
http://www.ryanheise.com/typing-test/

Jag har suttit litegrand och tänkt på hur man kan förbättra svdvorak. Hur bra det är känns så kan det ju alltid bli bättre.

Det mest självklara man kan göra är att ändra byta plats på i och u samt d och h. Både i/u och h/d skrivs med samma finger, men det är h och u (de ovanligare i kombinationen) som ligger under pekfingret. Mysko.

Därefter kan man byta plats på a och o då a är vanligare än o, och således borde ligga under ett starkare finger.

Det är nu redigeringar börjar bli lite problematiska, då de också påverkar stavelser. Man vill ju gärna inte skriva två efterföljande bokstäver med samma finger. Något borde kunna göras åt bokstäverna CRL uppe till höger. Man kanske kan byta plats på c och l, men då blir ctrl+c obekvämare. Det kan man sedan kanske lösa med att göra en rokad med någon av bokstäverna qjkx nere till vänster. Det borde leda till att man kanske får något fler enfingersstavelser, men då bara med typ tl och sc (istället för sl, notera).

Det hela tål att tänkas på. Att man sedan kanske kan flytta ner R eller L istället för H kan nog bidra ännu mer.

Jag ska fundera lite, sen kommer jag nog med ett förslag på en layout.

Min första python-app

december 31, 2008

Ni kan hitta den påCLI-apps.

Det är ett litet script som är tänkt att användas med KDE4.1-plasmoiden Command-watch.

Hello world. I decided to take up my crappy python knowleage recently, and my second script was a small password generator. In the script I had the following:

import random
print(random.randint(0, 16))

It failed miserably with a “TypeError: ‘module’ object is not callable”, even though it was perfectly valid code. It worked fine in the interactive python shell, but not when running the file. After a bit of googling i found that python prioritizes the current folder files before the regular modules, and my file was called random.py. Thus my script included itself and tried to access the random object – failing miserably.

So in todays life lesson we learned to not use filenames that are also present in the python stdlib.

Vegetarianismen och jag

november 8, 2008

Jag har alltid sagt att jag inte är tillräckligt principfast för att bli en gräsätare. That has changed. Jag har nu bestämt mig för att gradvis trappa ner på all köttkonsumption utom leverpastej. Leverpastej är nämligen kanske det enda som jag känner att jag längtar efter. Varför jag tagit detta beslut vet jag inte riktigt, men eftersom jag helt enkelt inte tycker att mat är gott så spelar det ju ingen roll vad jag äter. Det är lätt att göra ett statement om man helt enkelt inte tycker att det spelar någon roll på det personliga planet.

En positiv bieffekt blir ju att jag får ha sex med djur.