Zum Inhalt springen

Developer-user relationships and its strange curiosities

13. Juni 2010
von kingair6

We love users. They make us all smiles and cheers if they like our program or product. They endorse our project and maybe even contribute to it. They cherish our work and make us feel needed and our work worthwhile. Without them, developing wouldn’t be half the fun.
Yet, we hate them. Users are often stupid, insight-less, negligent, annoying bastards. They make our days horrible by forcing us to build in yet another input check. They make us stretch to ever more high-flying solutions to fulfill their needs, even though we might have seen enough of the framework by the time the alpha was released.
This paradox remains unsolved and riddled in the brains of many a programmer (or developer of anything for that matter). This will be an attempt at trying to understand, why it is exactly that users have this very unique feel about them.
The loving, endorsing user gives us a homey feeling because we have a task to live up to – make that person happy. Help him get along. Helping is nice. Being nice is… well nice, I guess. And while being nice and all, we might find that wicked cool workaround for a tricky programming question that really challenges our minds in the kind of way that makes you want to work all day on it. This type of user might even be the reason we are doing the work we do. They may have brought our minds to the problem they are facing – one that we share but never noticed. Thereby, they support our creativity and imagination, make us innovative thinkers.
The opposite is the evil, mean-faced user writing nasty mails that my first ever alpha 1 was buggy and it’d need 1000 more features to be usable. In giving us the scope of what may lie ahead of us in order live up to our own goals (after all, we want to bring it to a good release!), they make us feel small, incapable and overworked. Seeing you still have to write 100000 lines of code is not exactly a pleasant experience. In trying to fulfill a thank-less user’s feature request, we might reach a boundary which is not easily crossable – in our heads or in our programming capabilities. The framework may run out of solutions, or those left might be so ugly and lengthy we are scared to try them. This is the horrid, negative user, that makes us want to delete the project irreversibly from our HDD.

Without a user, our life were meaningless, with one it can be ever so much harder. Feel it yourself? Comment pls.

Release: gm-notify v0.10.2

6. Mai 2010

here we come to release 0.10.2 after 0.10.1 was available but never really announced because the new features didn’t work very well. So this is more or less a bugfix release with some polished features from 0.10.1 which include:

  • Configurable autorun
  • Usage of the default mail icon
  • It’s possible to ignore the inbox

I wish you a lot of fun with this release – it should update automatically if you added the PPA to your repositories. For instructions about a fresh install visit the gm-notify page.

Release: gm-notify v0.10

21. April 2010

ok – Ladies and Gentlemen, to be true, I’m kind of proud to finally present the new version of gm-notify – and it’s the first which simple works great (at least for me ;-) ).

So, here comes the interesting part – new features:

  • Google Talk Backend: What does that mean?  To cut it short -> Instant/Push-like mail notification
  • Lucid Lynx Support: Complete integration with new indicator-applet features
  • Hide Labels with a count of zero to keep it all tidy
  • moreover it fixes about 30 Bugs

Have a look at the new gm-notify page on this blog for installation instructions. I hope you have fun with this :-)

Gut hinsehen: Die Kirche geht den Bach runter.

24. Februar 2010

Endlich, könnte man meinen. Die Meldungen in der deutschen Presse bezüglich der beiden großen christlichen Kirchen in Deutschland häufen sich und es macht den Anschein als könne es die modernisierte Version des Unterganges wie er in der Bibel beschrieben wurde sein. Eine kurze Skizze der letzten beiden Tage:

  1. die Bischofskonferenz der Katholiken entschuldigt sich offiziell für die Missbrauchsfälle in den Schulen der „Jesuiten“ … oh ja, Jesus Nachfolge findet sich bestimmt darin, Kindern beim Masturbieren zu zusehen. Weiter so, Patres.
  2. Bischof Mixa ist der Meinung, die „Sexuelle Revolution“ (die er im übrigen scheinbar nur von außen beurteilen kann) sei mitverantwortlich für die Misshandlungen von Schutzbefohlenen. Witzig – wäre das Thema nicht so ernst für die Betroffenen. UPDATE: Herr Mixa, das war’s dann wohl. Fare well, bigotter Hetzer. Offensichtlich hat ’68 auch Schuld daran, dass Geld für Bischofsringe und Autos ausgegeben werden.
  3. in Düsseldorfer Gerichtssälen werden die Kreuze abgehangen.
  4. Frau Käßmann, Chef Bischöfin (oder sowas) der Evanglischen Kirche in Deutschland fährt betrunken über eine Ampel. Oke. Ganz einfach: oke. Das passiert. Wenigstens hat sie keinen Anspruch auf Unfehlbarkeit wie andere  Kirchenchefs. Demnach gilt: Irren ist menschlich, denn wenn jeder, der einmal mit mehr als 1,1 Promille Auto gefahren ist (was man trotzdem natürlich unterlassen sollte) seinen Job schwungvoll verliert… ich sehe die Arbeitslosenzahlen weit oben.
  5. Nach dem Druck der hohen Lobbyisten und „Vertretern“ der Kirche stellt Käßmann ihren Posten zur Verfügung.
  6. Abt des Klosters Ettal stellt seinen Posten frei. Oops, auch mal durch den Spion geguckt?
  7. UPDATE: Britisches Außenministerium schlägt vor, Papst sollte Abtreibungsklinik einweihen oder eine Homo-Ehe segnen. Spaßig wäre es.

Wenn das so weiter geht kommt in wenigen Wochen der  Straßenaufstand der Misshandelten in Berlin, eine Woche später lässt Friedrich Wilhelm … ach ne, Zollitsch heißt er,  verkünden: „Die Katholische Kirche geht nun im Atheismus auf“ und Käßmann trinkt noch ein Gläschen. Vielleicht sind wir wirklich an dem Punkt fundamentaler Neuorientierung im spirituellen Bereich. Übrigens, Geo schrieb zuletzt von einem neuen Dalai Lama.

UPDATE 2: The unbelievable – new gm-notify version out in the near future?

22. Februar 2010
von Alex

well guys, I promised it many times, and I tried it many times: Writing a new backend for gm-notify which works more reliably than the current one. But every darned time, when I was almost finished,  there was some freaking sort of bug which prevented everything from working flawlessly.

But now I just pushed a new version onto Launchpad which features a new google-talk backend – so we don’t need a CheckInterval any more :-) If you want to go ahead and do some alpha testing (yes, it’s not feature complete and there are many known bugs) – here are the instructions:

sudo apt-get install python-twisted-mail python-twisted-words
sudo apt-get install python-indicate python-gnome2 bzr
bzr branch lp:gm-notify
cd gm-notify
sudo cp data/gm-notify.desktop /usr/share/applications/
python gm-notify-config.py
python gm-notify.py

When configuring your credentials please make sure to use your complete mail address with the correct extension (the correct address is displayed in the header line of the google homepage if you’re logged in).

Known Bugs:

  • When applying config settings there is an error – ignore it ;-)
  • Credential checking is not very useful and correctly working
  • sound does not work

if you find more bugs I would be glad if you could report them here as a comment :-) And now happy testing – so that I might push it to a final during the next weekend :-P

UPDATE 1: You’ll find revision 41 on Launchpad which now has a much more stable connection handling… The gm-notify process itself should work perfectly – please let me know if not. Config will be done in the near future so we can release :-) . To update your already obtained copy go into its directory and type those two commands – have fun:

bzr pull
bzr update

UPDATE 2: Released :) See http://bleedingpaper.com/2010/04/21/release-gm-notify-v0-10/

Alex

Dieser Imperialismus… welcher denn noch?

21. Februar 2010

Hört man sich in der gymnasialen Oberstufe Schüleraussagen oder Referate an so klingt dies in der Regel wie folgt: „Dieser Imperialismus war schlecht.“ Abgesehen von der inhaltlichen Subjektivität dieser Aussage ist die Ausdrucksweise mindestens genauso diffus.

Zum Kern des Problems: „dieser“, „diese“ und „dies“ sind Demonstrativpronomen. Demonstrare (lat.) heißt zu Deutsch „zeigen“ oder „darstellen“. Demnach ist die reguläre Verwendung „dieser Baum“ häufig verbunden mit einem Fingerzeig auf das „demonstrierte“ Objekt. Wenn ich „diesen Baum“ anspreche, meine ich einen bestimmten, einen spezifischen. Das offensichtliche Problem welches am eingangs aufgeführten Beispielsatz auffällt ist: Wenn „dieser Imperialismus“ schlecht war, war dann der andere gut? Hoppla… es gibt eigentlich ja nur einen Imperialismus, denn es ist ein Überbegriff… schade. Bei „diesem Baum“, besteht das Problem nicht, es gibt ja noch „andere Bäume“ – „andere Imperialismen“ zu finden dürfte noch dem gewieftesten Historiker schwer fallen (okey, man kann von „dieser Ausprägung des Imperialismus“ sprechen – da gibts dann wieder mehrere).

Die Aussage „dieser … öhm… Imperialismus, dass war … ähm… damals …“ lässt also ein zentrales Problem in unserem Schulsystem offensichtlich werden. Der Schüler redet von einem zentralen Begriff der Geschichte des 18 – 20 Jahrhunderst, aber so recht etwas damit anfangen kann er nicht. Er bleibt vage: „dieser, jener, welcher Imperialismus, von dem ich eigentlich keine Ahnung habe“. Hätte er Wissen könnte er sich wie folgt ausdrücken: „Der Imperialismus war eine Wendung der Geschichte die für viele Völker negative Folgen hatte.“ (nochmal zur Veranschaulichung das Gegenbeispiel: „Dieser … öhm … Imperialismus war… öhm… schlecht.“).

Aber mit vagen Laberausdrücken ist es leider in den Wortmeldungen der Schüler heute nicht getan. Powerpoint oder PDF-Präsentationen (schick aus LaTeX gerendert ;) ) sollen gelehrt werden. Mediale Unterstützung des gesprochenen Wortes ist hochgelobt und gut – eigentlich. Die häufig gesehene Ausprägung einer Präsentation mit groben 20 Bulletpoints je Slide a 5 Zeilen Text lässt mich diese Aussage revidieren wollen. Ich mag keinen Roman auf einer schlechten Beamerprojektion lesen müssen, ich möchte Stichworte zu dem gesagten. Auch das Ablesen des Referenten (oder ist „Sprecher“ da nicht schon das bessere Wort) der Folie unterstützt die Rezeption nicht mehr positiv. Ein lustiges Bild, markante Worte und eigenständiger Ausdruck des Redners wären mit tausendmal lieber als jedes noch so unwichtige Detail auf der Folie nachlesen zu können. Bis der Redner nämlich fertig ist, die Folie abzulesen, habe ich sie schon 2 mal durchstöbert und bin mental längst wieder im Sleep-Mode, aus dem eine monotone Lesestimme mich mit „Dieser ‘Phänotyp’ ist ein Wort für…“ nicht mehr zu erwecken mag und ich so zwangsweise den Rest des sowieso langweiligen Vortrags verschlafe. Bitte macht so etwas nicht. Es ist Qual für die Leser – vermutlich genauso wie diese emphatisch unsachliche Abhandlung über die Qualen des Schulalltags ;) Danke fürs Lesen.

UPDATE: Nach neuesten Erkenntnissen gehört das dem Kurs abgewandte Ablesen einer PowerPoint von der Wand ohne das Hinzufügen von Details auch zu schlechtem Vortragsstil. Bitte, frei sprechen, wenn Notizen dann nicht ablesen, PowerPoints in Stichpunkten die als Suplement dienen. Danke.

Awesome WM on big/small screen

21. Januar 2010
von kingair6

To get back after some time, a report on a new discovery: Awesome Window Manager for X. One (meaning, me) just gets bored ever so often with the look of Compiz/Metacity/Beryl… whatever. I just go and get a new theme every now and then, when I am content with one, I might stick with it for a month or two – New Wave I found THAT good, or Mac4Lin. However, now after close to two years of life in the Linux world, using Gnome without exception, I got bored of the feel of the standard Gnome desktop too. Sad as it is, I began searching for a satisfying solution to this problem.
The result was Awesome WM, a window manager belonging in the category of „tiling“ WMs. It spreads windows across the whole screen in order to utilize the whole screen.
This makes it especially suitable for large displays. My 22 inch LCD is really put to its use with three rows of windows: Pidgin plus a message window, one, two, three terminals, maybe Rythmbox and Firefox somewhere. My second monitor, an old 17 inch flat screen is also managed separately. This means, the „view“, so to speak, can be arranged for each monitor accordingly. Awesome, even though being a tiling WM can also do regular floating windows, arrange them by „spiral“ or „Z“ or maxmimize a window at two strokes on the keyboard.
Also, it features 9 virtual desktops that are not really virtual desktops but „tags“. Tags are assigned to each programm (one can contain multiple tags) and when a tag is selected the so tagged programms are shown arranged in whatever view the tag is set to. Each monitor also has individual taggs – quite comfortable and flexibel to use.
Best by far is the usability via keyboard. By default, the „Windows“ Key, also called „Super“ or „Mod4″ is the action key which, combined with some shortcuts, gives you full controll over your screen – great for people who type a lot and don’t want to be bothered by their mouse. Developing is just so much fun in Awesome!
Now the disclaimer: Awesome is not for nOObs. Why? Cause it does not feature nice GUIs to configure its behaviour. It can be scripted very flexibely in Lua via a config file but ONLY via this config file. The awesome menu is not necesserily a A+ in usability, but who needs a menu when via Mod4 + R you can run any command as we were used to via Alt + F2.
Installation is simple on Debian based systems – its in the repos. For Fedora it’s more of a demanding process since it does not come via yum – however, there are RPMs available.

Enjoy trying it, i can strongly recommend it!

Acer 1820PT endlich da?

16. November 2009

Hallo zusammen,

normalerweise ist es ja nicht die Art von diesem Blog über neue Hardware zu berichten, aber in diesem Fall muss ich einfach mal von meinem neuen Traum-Notebook, dem Acer 1820PT berichten, dass nun (endlich!) so langsam in die Shops dieses Internets wandert und vorbestellt werden kann mit einer angegebenen Lieferdauer von 2-3 Wochen ;)

Was ist daran so toll? Nunja: Multitouch, Convertible, „echter“ Core 2 Duo, 4GB RAM, Bluetooth – an sich alles was das Herz begehrt – und das noch zu einem „Netbookartigen“ Preis von 600€. Ich warte sehr gespannt und werde es mir bei Erscheinen garantiert schnell zulegen :)

Alex

„Swine Flu“ – H1N1 is getting back at us

10. November 2009

The Situation Room – not with Wolf Blitzer but a regular student. What’s happening out there with that funny virus that nobody seems to take serious but is obviously enjoying itself?
The situation: A school of roughly 1000 students in Germany – a regular high school, grades 5 through 13, is close to being shut down by this funky flu! Allegedly (take this by its literal meaning – I have no official prove for these statements), about 30% of Year 8 are our of school, 25% of Year 9, some folks from Year 11 and 12 plus an adittional confirmed four from the graduation form 13. Additionally, some 3-5 teachers are ill with the virus. If you add these numbers up and are, like me, a fatalist, you could end up with as many as 10% of the whole school being ill. Call this extreme or not – some people are still not thinking about being vaccinated and continuously pose a threat to society by providing themselves as viable hosts for a virus which is due for a mutation. How I get to these bold statements? Here it is:
First things first – the virus. A virus is a, by most definitions, non-living thing composed of a phospholipid or protein outer layer with some DNA or RNA in it, maybe even some enzymes or ribosomes. What makes it unique are the receptor proteins which might be attached to its outer shell. Those are like a name – on a cellular basis. How does a virus work? It infects your cells by injecting its genetic material into them and makes them into zombies, creating more of the same type of virus. To do so, it the cell replicates the DNA or RNA of the virus many times to put it into the newly created viruses. In this process – as always if you try to copy something (ever stood in front of one of these Xerox beasts???), mistakes happen now and then. BOOM! DAMN! How did that happen? A mutation occurred right on the spot. Nothing spectacular, if it were not to make the virus more lethal or more virulent, which could eventually happen, becoming even more probable as more people become infected and more viruses are created.
All further reasoning is based on this process. If viruses could become more dangerous by mutation and mutation happens more often as more people are infected, the consequence of more infected people is a higher chance for H1N1 to become really deadly – like the black death or funky things such as that. Continuing along these lines, people are far less likely to become infected if they have received a dose of vaccine, thus, they are less likely to contribute to making the illness more serious. Therefore, obviously, getting vaccinated is an act of civil responsibility since it tries to inhibit H1N1 to become a killer baby virus. In turn, not being vaccinated is plain naive, unless you have serious reasons like being pregnant or having problems with the vaccine.
To get back to the situation at our school. Many a person is missing these days. Even those not ill at all are avoiding the place to simply avoid infection – and they are still not closing for seven days! „OH no, you didnt say that?“ Well actually I did just state that closing school would serve a good purpose. Those already ill could get better and not be spreading the virus, latent infections would not cause any spread and anyone getting the virus from somewhere else would stay out early enough so as to not spread it further. Problem is: exams and the loom and gloom of our Abi – graduation- exams in April is omnipresent these days for 13th graders. However, a week of missed lessons will most likely not kill our grade and as an appropriate reaction to a pandemic as we are experiencing now, Duesseldorf might even consider postponing the exams?
Why am I so bothered about all this? One week ago, nobody was infected. Now, its probably around 100 people in 1000. Its funny how classes get more and more empty, how friends are just not there and leave brief IMs: „Oink oink – it got me“. Won’t anybody act?

Django Syslog Middleware

9. November 2009
von kingair6

Hi Folks,

for some time, Alex and I have been working on a simple Book Rating system for school, which, of course, was developed using Django. It sits on a PostgeSQL database and authenticates users against an LDAP which the school runs – pretty neat. However, for reasons of time and safety we do not fancy setting up a webserver to get mails every time an error occurs (still quite frequently according to the users). What to do? Apache Error logs are not very meaningful, since all they say is „Provide a 404 Template“:.. aint gonna do that! The shortest way around was simply writing up a Middleware, which, upon error, would write request and exception to the syslog – sorry Windows users, YOU can not use it. Aside I figured it’d be neat to also have a full fledged output file right in app, even though Alex didn’t like the idea too much, granted, the syslog thing IS cooler. So I ended up implementing that funky solution which nobody ever seemed to have thought of (????). Here’s the code:

from syslog import *
import time
class SyslogOutput:
    def process_exception(self, request, exception):
        # Compile the string for the exception in the format: "Variable: Value" so as to make it readable
        request_string = ""
        filename='/var/www/django/log/%s_error.csv'%(time.strftime('%y-%m-%d-%H-%M-%s'))
        txt = file(filename, 'w')
        for item in dir(request):
            value = getattr(request, item)
            request_string += "%s:  %s\n"%(item, value)
            request_string += "\n\Exception: %s"%(exception)
        syslog (LOG_DEBUG, request_string)
        txt.writelines("Exception: %s"%(request_string))
        txt.close()
        return None

If you find it helpful or have any contributions to improve the behavior, please feel free to comment! Hope this helps some folks getting the logs they want.