Feeds

Letzte Aktualisierung:
July 03, 2007 09:01 AM
Alle Zeiten sind GMT.

Planet

Planetarium

July 01, 2007

Lars Strojny

Wanted: Large scale consultants

I am wondering whether there is a good consultant/consultant team in Germany which is specialized on attending an enlargement of a currently running, profitable PHP/MySQL-environment with tons of users. I am looking for something like OmniTI in Germany. No babbling, proofed success in the past, able to work with hitherto unknown components.

von nospam@example.com (Lars Strojny) am July 01, 2007 03:50 PM

Dear Lazyweb,

I need a link management application which provides the following features:
  • Multiple users can add links
  • User can rate links by simply selecting out of an integer range
  • Links can be categorized (not tagged)
  • OPML export (respects category hierarchy and rating score)
  • A link consists of an HTML-page, a feed-resource, a description and a category

von nospam@example.com (Lars Strojny) am July 01, 2007 03:08 PM

June 30, 2007

Tim Janik

29.06.2007 YummiYummiGit

Starting with the discontinuation of cogito, i began to wonder about my future git usage patterns. On the one hand, i have become quite used to the convenience of some of the cogito commands, on the other hand i found myself using or looking up git commands every other day. Since the discontinuation, cogito cannot be expected to remedy those work-flow interruptions any time soon, so i actually started to cook up my own small set of convenience wrappers. I’m adding those on demand whenever i need a new source repository command, and i try hard to keep it simple, avoid giving the wrappers any options and keep an eye on them being very shell-completion friendly.

The GPLv3 licensed result is a single shell script plus a handful links for invocation: yyhelp.

For the curious, the prefix ‘yy’ was chosen to allow conflict free shell completion. I’ll quote the yyhelp information here, so people can decide if it’s interesting for them and also get to see the installation instructions. I’m not entirely sure where to take this shallow wrapper in the future, however keeping it simple is really the main incentive behind it. Any deeper logic required should rather be filed as git-core requests. If you want to talk to me about YummiYummiGit, drop me a line via email, or try #git on irc.freenode.net:6667.

	YummiYummiGit                                                     YummiYummiGit

	NAME
		YummiYummiGit - The simplest git wrapper ever, yet convenient

	SYNOPSIS
		yyadd          [FILES…] - add files to git repository
		yybranch    [-f] <branch> - add branch (forcable)
		yybranchdel [-f] <branch> - delete branch (forcable)
		yyChangeLog               - show git log in ChangeLog style
		yycommit       [FILES…] - commit current working tree
		yydiff         [FILES…] - show committable differences in working tree
		yygc                      - repack and prune repository
		yyhelp                    - display yy* help information
		yylsbranches              - list branches
		yylstags                  - list tags
		yypull                    - pull upstream sources
		yypushpull                - push & pull upstream sources
		yyremove       [FILES…] - remove files from git repository
		yyreset                   - reset (revert to HEAD) all files in the tree
		yyrestore      [FILES…] - forcefully recheckout specific files
		yystatus                  - display working tree status
		yytag               <tag> - add tag
		yytagdel            <tag> - delete tag
		yyuncommit                - undo the last commit (must be unpushed)
		yyview                    - browse & navigate the history
		yywarp           <branch> - checkout new branch

	HISTORY
		YummiYummiGit was created as a very shallow wrapper around git-* tool
		option variants, to simplify common cases.
		Depending on programming habits, YummiYummiGit may or may not suit your
		daily needs. It is in any case not meant as a full replacement for the
		git interface (there is e.g. no yyclone) and subject to change.

	INSTALLATION
		To install YummiYummiGit, copy yyhelp into a bin/ directory from $PATH
		and invoke: ./yyhelp –create-aliases

	YummiYummiGit-0.4                                                 YummiYummiGit

von rambokid am June 30, 2007 02:51 AM

June 29, 2007

Tim Janik

28.06.2007 Searchable API Docs

Newly built GLib & Gtk+ API docs are online now. In the process, i fixed a long standing documentation feature request: searchable API docs. This turned out to be the most requested documentation feature at the GNOME booth LinuxTag 2007.

The documentation updates cover Gtk+-2.11.4, so they contain new features like: GtkBuildable, GtkBuilder, GtkScaleButton, GtkVolumeButton and GtkTooltip.

von rambokid am June 29, 2007 02:33 PM

Matthias Warkus

das fenster zum hof

Mein Fenster geht auf den Innenhof des Ortenberg-Centers, das heißt, auf den Lieferanteneingang und die Müllpresse des dort angesiedelten Lidl-Marktes. Man kann dort einige Beobachtungen machen. Über Technik zum Beispiel. Wie morgens mit Ladebordwand und Elektrohubwagen zwei, drei Leute eine ganze Lastwagenladung Waren abladen, ist beeindruckend. Besagter Hubwagen (vulgo Elektroameise) ist ohnehin ein emanzipatorisches Werkzeug sonder gleichen, erlaubt er doch den zerbrechlichsten Angestellten beiderlei Geschlechts, riesige Paletten quasi mit zwei Fingern durch die Gegend zu manövrieren. Jetzt eben kam dann das Abrollcontainerfahrzeug, das den vollen Müllcontainer mitnahm. Abrollcontainer sind eine ziemlich beeindruckende Sache, weil ein einzelner Mensch einen ohne Hilfe ortsfester Einrichtungen auf- und abladen kann. Man braucht nur die entsprechende Ausrüstung auf dem Fahrzeug. Mittlerweile macht deswegen auch jede halbwegs moderne Armee ihre Logistik mit Abrollcontainern und -paletten. Man lernt auch etwas über Verkehrspolitik. Direkt hinter dem Hof, weniger als 200 Meter entfernt, verläuft die Hauptbahn Kassel-Frankfurt (der Hauptbahnhof liegt um die Ecke). Die tägliche Anlieferung einer Wagenladung Lebensmittel und die Abholung des Mülls könnte man eigentlich auch auf der Schiene machen. Man hört, in der Schweiz hätten Supermärkte Gleisanschlüsse. Und man lernt etwas über Armut, oder zumindest über in der Armut gelernte Verhaltensweisen. Denn wenn morgens nach der Anlieferung die Kisten mit dem Brot und dem Gemüse von gestern auf den Hof gestellt werden, sind sofort viele Leute da, die die Waren unter sich aufteilen. Es wird dabei, soweit ich das verstanden habe, ausschließlich Russisch gesprochen.

von mawa am June 29, 2007 01:33 PM

kann.]]>

Ich muss mir immer wieder klarmachen, dass »Hammer To Fall« gar kein Lied über AIDS sein kann.

von mawa am June 29, 2007 11:17 AM

June 28, 2007

Lars Strojny

Jetzt bewerben!

Wir suchen bei Neu.de einen Senior Software Developer (also einen, von dem ich noch was lernen kann) und einige PHP-Entwickler, die ruhig neu im Geschäft sein dürfen, aber wenigstens programmieren können sollten (das mit OOP und sinnvollem Software-Design bringen wir schon bei). Beide Stellen sind auf unserer Job-Seite genauer beschrieben. Ein paar Keywords, die einem Bewerber wenigstens gefallen sollten: Test driven development (PHPUnit), Acceptance tests mit Selenium, objektorientierte Entwicklung in PHP5, Einsatz von Jabber-Technologien, Dojo JavaScript Toolkit, AJAX, Design patterns, UML, APIs (Rest, XMLRPC), JSON. Achso: wir stehen ganz massiv auf Bewerbungen mit aussagekräftigen Referenzen, die dürfen auch ruhig so aussehen, als wollte ein Bewerber ernsthaft bei uns arbeiten.
Benefits sind Kaffee und Vittel for free, beste Musikerziehung im Bereich independent Pop/Rock/Elektro, gut gefülltes Mate-Reservoir, die Abwesenheit einer Kleiderordnung und eine Dart-Scheibe, die bespielt werden will.
Wer noch weitere Fragen hat, darf sich gerne bei mir melden (per Mail oder per Jabber)

von nospam@example.com (Lars Strojny) am June 28, 2007 10:12 PM

Hendrik Richter

md5-Passwort entschlüsseln

Mich fragte mal jemand, wieso man mit md5 "verschlüsselte" Passwörter nicht wieder entschlüsseln kann. Dies liegt daran, dass md5 eine Einwegfunktion ist, d.h. eine Funktion, die sich nicht umkehren lässt. Es gibt unendlich viele Funktionsargumente, aber nur eine beschränkte (wenn auch sehr große) Anzahl an Funktionswerten bzw. Bildern. md5 verschlüsselt nämlich nicht, er bildet nur eine Prüfsumme.

Klingt vielleicht auf den ersten Blick verwirrend, ist aber eigentlich ganz einfach. Ich versuche im Folgenden, den Sachverhalt mit einem Beispiel zu verdeutlichen. (Mit der Thematik Vertraute finden sicherlich einige Dinge, die im Detail nicht ganz stimmen; für einen ersten Einstieg in die Materie halte ich es jedoch für verschmerzbar, wenn gewisse Details nicht 100%ig auf den realen Fall übertragbar sind.)

Man stelle sich vor, seine Bankkarten-PIN laute 4711 (entspricht dem Passwort eines Benutzers). Damit sich diese bei der Übertragung vom Geldautomat (entspricht dem Eingabeformular im Browser) zum zentralen Bankserver (entspricht dem Server einer Internetseite) nicht abfängen lässt, wird eine md5-Ähnliche Funktion auf die PIN angewandt, beispielsweise quersumme(4711) = 13. Der zentrale Server überprüft nun, ob die übertragene 13 gleich der Quersumme der gespeicherten PIN 4711 ist.

Wenn nun ein böser Bub die Übertragung anzapft und die Prüfsumme 13 abfängt, so ist es ihm möglich, diese Prüfesumme zu verwenden, um an diesem Automaten Geld abzuheben. Es ist ihm jedoch nicht möglich, daraus auf die geheime PIN zu schließen. Diese kann nämlich nicht nur 4711, sondern bspw. auch 9400 oder 1237 lauten. Es ist nicht möglich, aus der Quersumme auf die ursprüngliche Zahl zu schließen!

Ähnlich verhält es sich auch beim md5-Algorithmus, einmal angewandt kann die Eingabe nicht wieder entschlüsselt werden.

Es ist jedoch möglich, md5 zu knacken, bspw. mittels Brute-Force-Angriffs. Dies bedeutet, dass alle möglichen Eingaben durchprobiert werden, bis man Erfolg hat. Man erhält dadurch (nach einer unter Umständen sehr langen Zeit) ein Argument, für das md5 den selben Funktionswert zurück gibt wie beim "korrekten" Passwort. Abhängen vom gewählten Passwort ist die Chance mehr oder weniger klein, dass es sich dabei um das ursprüngliche Passwort handeln. Ohne weitere Informationen (bspw. Kontext-Informationen) ist es jedoch nicht möglich festzustellen, ob das erhaltende Argument tatsächlich das Passwort des Nutzers ist.

Mit einem kleinen Trick kann man die Sicherheit von md5 oder anderer Hashing-Algorithmen wie SHA-1 jedoch erhöhen: mit sogenannten Salts. Dies ist ein für jede Anwendung spezifischer Wert, der zusätzlich zum Argument übergeben wird. Dadurch ist es einem Angreifer, selbst wenn er einen Hash (Funktionswert) oder gar ein mögliches Argument besitzt, nicht möglich, auf mehr als eine Seite zuzugreifen.

Auf mein obiges Beispiels von Geldautomaten bezogen: Stellen wir uns vor, wir haben zwei Geldautomaten, Automat 1 und Automat 2 mit jeweils passendem Server dazu. Gebe ich meine PIN an Automat 1 ein, so berechnet dieser nicht quersumme(PIN), sondern quersumme(PIN+1); Automat 2 analog dazu quersumme(PIN+2). Lautet die PIN 4711, so berechnet Automat 1 quersumme(4712) = 14. Der böse Bub fängt nun die übertragene 14 ab und schließt, den quersumme-Algorithmus vor Augen, auf eine mögliche PIN 1238. Mit dieser versucht er nun, bei Automat 2 Geld abzuheben was jedoch scheitert, denn quersumme(1238+2) = 7, jedoch quersumme(4711+2) = 15. Der Angreifer muss nun also nicht nur Automat 1 belauschen, sondern zusätzlich rausfinden, welchen Salt Automat 1 verwendet, anschließend Automat 2 belauschen, dessen Salt herausfinden und anschließend versuchen, die gesammelten Ergebnisse so zu verwursten, dass er gültige PINs für die Automaten berechnen kann.

Während dies bei der Quersumme noch relativ einfach möglich ist wird es mit zunehmender Komplexität der Algorithmen immer schwieriger.

Je nach Anwendungsfall reicht md5, besser jedoch md5+Salt. Wer mehr Sicherheit benötigt, sollte SHA-1(+Salt) verwenden oder weitere Stufen, bspw. SHA-256(+Salt). 

von hendi am June 28, 2007 06:09 PM

Gerfried Fuchs

Lysistrata

Gestern hatten wir die Premiere des Stücks Lysistrata, in dem ich auch eine Rolle bekleide. Es kann als Erfolg bezeichnet werden – die Leute haben uns gratuliert und oftmals gelacht. Babsi und ich haben sogar einen extra Applaus für unsere Szene bekommen. Ich war ein wenig erstaunt, Bamschabl vom österreichischen Comedy-Duo »Muckenstrunz und Bamschabl« im Puplikum zu sehen. Auch ihm dürfte es zumindest gefallen haben.

Falls ihr noch nicht wisst, was ihr heute oder morgen Abend tut – wir spielen noch zwei weitere Vorstellungen. Es wird in der Scala (nein, nicht die Mailänder sondern die Wiener) auf der Wiedner Hauptstraße 108 gespielt, Beginn ist um 20:00 und der Eintritt ist € 5,— (oder € 3,— für Schüler und Studenten). Wir sehen uns!

June 28, 2007 02:02 PM

Matthias Warkus

Nachtrag: Meine Güte, ich wusste gar

Mein Verstärker ist geliefert! Ich habe ja schon nicht mehr dran geglaubt. Nachtrag: Meine Güte, ich wusste gar nicht mehr, wie schön Musikhören ist. Vor allem, weil ich mit der neuen Anlage jetzt Sachen höre, die ich noch nie gehört habe - irgendwelche Shaker in den Ecken oder so Snaredrum-Rand-Getrommel zum Beispiel. Ich bin völlig beeindruckt. Björn Erik Edvardsen und Günter Nubert, ihr seid meine neuen Helden.

von mawa am June 28, 2007 08:26 AM

June 27, 2007

Matthias Warkus

Unverhofft kommt oft. Wenn alles so klappt, wie es jetzt klappen könnte, werde ich in dem halben Jahr, das mir bis zur Prüfungsanmeldung bleibt, nicht nur nicht nichts zu tun haben, sondern mehr als genug. So viel, dass ich mich am besten gleich morgen früh hinsetze und anfange, weil ich sonst nicht mehr rechtzeitig fertig werde.

von mawa am June 27, 2007 10:31 PM

fein gemacht

Ich habe kaum Zeit gehabt, mich ordentlich darüber aufzuregen, dass mein MacBook große Probleme mit dem Einlesen einiger Audio-CDs hat, da bringt Apple ein Firmware-Update raus und auf einmal geht's. So soll das sein.

von mawa am June 27, 2007 10:22 PM

wichtig ist:

Nicht an der ungerechten Verteilung von nahezu allem verzweifeln, sondern gerade darum umso mehr dafür kämpfen, dass das, was gerechter verteilt werden kann, auch gerechter verteilt wird, auf den Lippen immer ein Lächeln und ein Lied.

von mawa am June 27, 2007 08:52 PM

Murray Cumming

Self-Improvement Projects

In a month or so, I should have more time. There’s a couple of things I want to do.

  • Buy a Playstation 3 and get a clue again about how kids use technology now. I doubt that anything has really changed in the last ten years, compared to Quake and Unreal, but there’s a chance, and I don’t want to become outmoded.
  • Get the latest edition of Thinking In Java and play with Google’s Web Toolkit. It might be what I need to implement the Glom web UI. Nobody else is doing that so I might as well try it slowly.

von murrayc am June 27, 2007 04:32 PM

Benjamin Otte

new macbook

So my cute little iBook decided to die last week. Since the conference season is about to come in full swing, I needed a laptop, and I needed it now. Long story short: no one in the 12″ 1000 Euro segment comes even close to Apple. I really looked, because I’m only a fan of hot pants when I don’t have them. (Yes, that was a bad pun on the Macbook getting hot.) But even the Toshiba U200 is not a real contender. Anyway, I installed Ubuntu Gutsy on my shiny new 2nd generation Macbook in the hope it’d just work and here’s the good, the bad and the ugly about it:

The good
All hardware is supported and supported pretty well. Everything has a featureful driver. There’s also a lot of people caring about this machine. I can find blog or forum posts about almost every issue. Try to find out anything about that Toshiba machine and you’re lost. A big thank you for the work done by the Ubuntu laptop testing team in helping me decide and know potential problems in advance.

The bad
This is the stuff I managed to fix that didn’t work out of the box. First thing of note is the driver for the Intel graphic card. Compiz refuses to work (I blame Gutsy) and it still needs the 915resolution utility to correctly identify the correct resolution. This somehow shattered my dream of flawless Intel drivers. ;) And the Ubuntu installation doesn’t install the DRI GL libraries. Shouldn’t that be done by default? The second thing that didn’t work out of the box was wireless. I had to build a current Madwifi snapshot to make it work. But after doing so, it haven’t had any issues. The third issue is the touchpad. The Apple touchpad is one of the best inventions since sliced bread. Unfortunately, I only knew that because I used in in OS X for 20 minutes. The default configuration on X is bad, since it disables all the awesome features. Fortunately, there’s the synclient tool to reenable them. The driver could also need some tweaks here and there (in particular for detecting scrolling). But after that, multi-finger operations are just too good to not get used to immediately.

The ugly
This is the stuff I couldn’t make work. Luckily it’s all software issues, so I have hopes. Number one: Suspend doesn’t work. Boy, is a notebook without suspend useless. Especially because startup still takes ages (go blizzard, go hughsie!). It just doesn’t resume anymore. And hibernate doesn’t work either. It just shows a blinking cursor forever. The brightness controls don’t work either and I was too lazy to install desrt’s hack. I’d prefer to have it fixed properly. And last but not least, the volume controls for the sound card get totally mixed up. This seems to be a problem with the drivers, since even alsamixer labels the sliders wrong.

Short summary: Ubuntu on a Macbook is still an experience and quite a bit away from “just works”. Looks like I need to play “find the sweet kernel” with it for a while. Other than that, it’s awesome.

June 27, 2007 09:06 AM

June 26, 2007

Lars Strojny

Liebes Internet,

wo kann ich denn in Köln diese unglaublich lässigen Sneakers kaufen?

Update
Eine Stunde lang durch Köln gelaufen und niemand hat diese Schuhe. Hallo liebe Sneakers-Dealer, vielleicht weniger Ballerina-Schühchen, weiße Mini-Treter mit rosa Swooshes, »the nth revision of good ol' chucks«, sondern einfach mal ein paar aktuelle, schicke Schuhe. Danke.

von nospam@example.com (Lars Strojny) am June 26, 2007 07:47 PM

Sven Herzberg

Neulich im Internet…

Joomla! oder: die Quadratur der GPL, oder: warum ich seit geraumer Zeit keinen GPL-Code mehr schreibe. Mit der LGPL wäre das nicht passiert und LGPL-Code lässt sich beliebig von einer Anwendung in eine LGPL-Bibliothek migrieren, ohne dass man den Cruft von alten Contributors ausräumen muss…

Also nochmal: Leute, denkt nach bevor ihr euch eure Lizenz aussucht.

von Herzi (nospam@example.com) am June 26, 2007 01:06 PM

Lars Strojny

Easy friend-finding for social retarded

Found an XSS-injection on Qype which has enabled a user to inject malicious JavaScript into his profile in order to automatically become a friend of every visitor. As Qype is implemented in Rails they are using Prototype as a JavaScript library which made it pretty easy to implement a fitting exploit:
"><script>new Ajax.Request('/contact/create?to_user_id=16992', {method: 'post'})</script>

Qype has fixed the issue.

von nospam@example.com (Lars Strojny) am June 26, 2007 08:50 AM

June 25, 2007

Matthias Warkus

sehr schwer).]]>

Das neue Zimmer wird zusehends wohnlicher. Heute war ich in Frankfurt-Nieder-Eschbach bei Ikea und habe noch eine Decken- und eine Tischlampe gekauft. Leider ist mir eine der drei höllenstarken Ikea-Energiesparlampen anscheinend auf dem Weg kaputt gegangen, und Leuchtmittel sind bekanntlich vom Umtausch ausgeschlossen. Also beim Elektromarkt noch eine nachgekauft, natürlich gibt es da nur Markenprodukte und nicht die Billiglampen wie bei Ikea. Als Ergebnis habe ich jetzt zwei verschiedene Lichtfarben aus derselben Leuchte, eigentlich auch nicht schlecht. Ich könnte ja behaupten, es sei Absicht. Ich drehe immer noch Däumchen, was den Verstärker angeht, und ich finde immer noch Unmengen von Reißzwecken, Nägeln und Stecknadeln des Vormieters in Wänden und Decke. Ansonsten bin ich fast komplett - mir fehlen nur noch ein Mülleimer (ich hätte gerne einen zweigeteilten, ist das so schwer?) und ein Mauspad (da ein geschmackvolles zu finden, auf dem eine Lasermaus funktioniert, scheint sehr schwer).

von mawa am June 25, 2007 08:04 PM

Sven Herzberg

Approaching the nineth circle of hell

Dear Lazyweb,

today I had a problem debugging a GTK+ module (libatk-bridge.so). It threw a warning which looked like it was coming from my application:

** (criawips:26563): WARNING **: failure: no device event controller found.


By using grep I realized pretty quickly that the message didn't come from my application. The gdb was at least able to tell me where the meesage came from (after breaking on g_log):

(gdb) bt
#0 IA__g_log (log_domain=0x0, log_level=G_LOG_LEVEL_WARNING,
format=0xb6bde62c "failure: no device event controller found.\n") at gmessages.c:516
#1 0xb6bdc0f8 in ?? () from /usr/lib/gtk-2.0/modules/libatk-bridge.so
#2 0x00000000 in ?? ()
(gdb)


And then I thought »Hey, nice, let's install debug symbols«. I installed at-spi-dbgsym (Ubuntu ddeb). But now I have this problem: gdb doesn't load the symbols from the debug.so (/usr/lib/debug/usr/lib/gtk-2.0/modules/libatk-bridge.so). How do I tell gdb to do? Please don't just mention a command like "sharedlibrary" (because I already tried that). The documentation is a bit poor on this and I think more people are interested in debugging GTK+ modules.

von Herzi (nospam@example.com) am June 25, 2007 01:51 PM

June 24, 2007

Matthias Warkus

realsatire

»Der Börne-Preis wurde Broder von "Focus"-Chef Helmut Markwort als alleinigem Juror zugesprochen.« Man könnte meinen, das sei von der Titanic-Seite, nicht von spiegel.de

von mawa am June 24, 2007 08:57 PM

Ich werde immer formvollendeter in meinem Bürokratendasein. Soeben habe ich beschlossen, mir eine Umfüllgabel zu kaufen, etwas, was wohl nur in wenigen Privathaushalten vorkommt.

von mawa am June 24, 2007 07:04 PM

Christian Kellner

Vanitas

Codelbog testpost, der gleich wieder verschwindet! ;-)

June 24, 2007 05:07 PM

June 22, 2007

Benjamin Otte

Guadec accomodation

Dear interweb, I was gonna share a room with Mathias Hasselmann at the Etap hotel for Guadec. However, I’m gonna stay from 14th to 22nd and he’s gonna leave at the 19th already, which leaves us 3 days with a room that’s half-empty. Do you know people that have a similar problem, so we could get rid of two half-empty rooms? If so, please mail me or contact me on IRC.

June 22, 2007 01:09 PM

June 20, 2007

Sven Herzberg

UMTS, T-Mobile und das Lenovo Thinkpad X60s

Thomas wollte, dass ich nochmal was zum Thema UMTS blogge, damit er dann meine Erkenntnisse nurnoch umsetzen muss. Seit ich mit der Spielerei angefangen habe, hat sich in der Linux-Welt auch schon wieder einiges getan: das eingebaute UMTS-Modem muss mittlerweile nicht mehr über das Modul usbserial angesteuert werden, sondern kann jetzt durch das Modul sierra betrieben werden, das dann bei den meisten Distributionen auch automatisch geladen wird.

Ist das Modul geladen, stehen entsprechende serielle USB-Schnittstellen zur Verfügung (/dev/ttyUSB0), über die dann mit dem Gerät kommuniziert werden kann.

Da ich persönlich nicht allzuviel davon halte, Passwörter u.ä. auf dem Rechner zu speichern, habe ich die USIM
immernoch mit dem Pin-Schutz versehen, der dann mit einem einfachen »echo 'AT+CPIN=4711' > /dev/ttyUSB0« bis zum nächsten Reboot aufgehoben werden kann.

Ansonsten ist das Arbeiten mit dem UMTS-Modem eine Leichtigkeit, einfach folgende PPP- und hat-Konfigurationen
installieren und alles wird gut:

## start of /etc/ppp/peers/umts ##

/dev/ttyUSB0
460800
defaultroute
usepeerdns
noauth
debug
user "t-mobile"

connect "/usr/sbin/chat -v -f /etc/chatscripts/umts"
## end of /etc/ppp/peers/umts ##


## start of /etc/chatscripts/umts ##
TIMEOUT 10

# abortstring
ABORT BUSY
ABORT VOICE
ABORT 'NO DIALTONE'
ABORT 'NO DIAL TONE'
ABORT 'NO ANSWER'
ABORT '+CPIN: SIM PIN'
ABORT DELAYED

# modeminit
"" 'ATZ'

SAY 'Checking pin lock\n'
"" "AT+CPIN?"

SAY 'Setting APN\n'
OK 'AT+CGDCONT=1,"IP","internet.t-mobile"'

# ispnumber
ABORT 'NO CARRIER'
#OK 'ATD*99***1#'
OK 'ATD*99*1#'
# ispconnect
CONNECT \d

## end of /etc/chatscripts/umts ##

von Herzi (nospam@example.com) am June 20, 2007 07:11 PM

Lars Strojny

XSS holes on dapper.net

Dapper is a web service which provides webservice creation on the fly. You can create your own APIs, feed etc. by just meshing selected areas from different websites. It is pretty similiar to Yahoo Pipes. Switch/Twitch already pointed out, that dapper completely breaks the same origin policy, which is the basic security concept for rich web applications (it is partly broken by Flash anyway, but this is written on another sheet of paper). But even worse, dapper itself was vulnarable against XSS injections which I found out two weeks ago. The vendor replied quickly and fixed the issues I had demonstrated. The combination of breaking the same origin policy and vulnarabilities on dapper is pretty dangerous. Hopefully the developers really know that they are playing with fire.

von nospam@example.com (Lars Strojny) am June 20, 2007 06:40 PM

June 18, 2007

Murray Cumming

Ubuntu on Thinkpad X61s?

After a couple of weeks of working away from home, I have a renewed hatred for the back-twisting weight of my cheap Acer laptop. I’m thinking of getting a Thinkpad X61s with Intel on-board graphics. But the X61 models are quite new, and I can’t find reports from people who have installed Ubuntu on them.

Or is there anything even lighter that’s easy to find? It’s rather annoying that there’s no IBM/Lenova online shop in Germany, and that the dealer prices seem to be twice the U.S. dollar price for the same models.

von murrayc am June 18, 2007 11:26 AM

Openismus at GUADEC

I’ve registered, booked rooms, and booked my flight for GNOME’s GUADEC conference in Birmingham. Four of us from Openismus will be there: Myself, Daniel Elstner and Christian Kellner for the core days, and Johannes Schmid will be there for both the core days and after-hours days. We are staying in the Etap hotel.

von murrayc am June 18, 2007 11:16 AM

June 15, 2007

Gerfried Fuchs

Xing mal wieder witzig

Bin mir nicht sicher, ob ihr euch an meinen Blog-Eintrag über Xing erinnert. Wie auch immer, es ist schon wieder etwas interessantes passiert, das ich nicht für mich behalten möchte. Ich hab mir die englische Version ebenfalls angesehen, und dort steht Gender und nicht Sex. Daher hab ich angesucht, dass es meinem Gender entspricht, ich will sie ja nicht belügen. Ich habe den Unterschied in der Wortwahl auch im Kommentarfeld hinterlassen, da diese Änderungen vom Team genehmigt werden müssen.

Ratet einmal, es wurde natürlich abgelehnt. Mit einer Antwort-Vorlage, die als möglichen Grund aufführt, dass es »nicht unseren AGB bzw. Vorgaben« entspricht. Der interessanteste Teil der Antwort war aber die erste Zeile:

Sehr geehrte Frau Fuchs,

Offenbar war die Änderung zumindest in Teilen des Systems möglich. ;)

Ich hab dann später eine Support-Anfrage geschickt, ob es möglich wäre, eine Nicht-Vorlangen-Antwort zu bekommen, warum es abgelehnt wurde, inklusive erneut den Links zu Wikipedia. Ich war dann etwas erstaunt, dass es doch akzeptiert und geändert wurde. Aber es gab erneut etwas witziges in der Mail, und wieder in der ersten Zeile davon:

Dear Mr Fuchs,

<comment /> :)

June 15, 2007 01:04 PM

June 14, 2007

Sven Herzberg

Zwei Idioten ein Gedanke

Diskussion zum Thema Windows-Porting:
(15:31:40) Philipp Kerling: brauch ich auch noch perl :S
(15:32:13) Sven Herzberg: perl kannst du von activestate kriegen
(15:32:16) Philipp Kerling: ich weiß
(15:32:32) Philipp Kerling: bin doch perl-frickler ;-)
(15:32:36) Sven Herzberg: (das hat vor 8 jahren schon funktioniert)
(15:32:45) Philipp Kerling: weiß ich auch
(15:32:51) Philipp Kerling: ich könnte auch die offizielle CPAN-binary nehmen
(15:33:03) Philipp Kerling: aber activeperl is da schon einfacher
(15:33:09) Sven Herzberg: aber activestate hat diesen schicken installer und die coolen icons und so...
(15:33:13) Sven Herzberg: eben
(15:33:13) Philipp Kerling: eben

von Herzi (nospam@example.com) am June 14, 2007 06:00 PM

CCC in a geometry application

Canek Peláez Valdés is creating a nice geometry application (english) based upon the CCC canvas library. There's even a really interesting flash demo (english) that demonstrates some of the ideas for the application.

He's blogging a lot right now, which might be a pretty nice addition for Planet GNOME Hispano.

von Herzi (nospam@example.com) am June 14, 2007 05:59 PM

Ach ja…

»Lobe keinen Dienstleister, solange der Vertrag noch läuft.«

Hätte ich mich mal dran gehalten. HanseNet war toll (bis zu meinem Umzug im Juni), aber weil ich ja jetzt das Gesamtpaket der T-Com haben möchte, wollte ich im Oktober dann endgültig weg von HanseNet (vor allem, weil sie einige Dinge - mein Telefon und DSL - einfach nicht dauerhaft bieten konnten). Also fix gekündigt zum 31. November (fristgerecht telefonisch am 28./29.10.) und der Dinge harren die da kommen sollten.

Also bei der T-Com den neuen Anschluss beantragt und natürlich die Rufnummernportierung. Aber um mir zu zeigen, dass sie richtig cool sind, hatte ich dann von HanseNet einen Brief vom 29.11. bekommen. In diesem haben sie mir dann die Kündigung zum 31.11. bestätigt und dass ich doch bitte bis 7 Tage vorher die Portierung eingeleitet haben muss (Lüge).

(Dass HanseNet mir später für den Zeitraum 1.12. bis 30.12. noch Grundgebühr in Rechnung gestellt hat, übergehe ich mal wohlwollend hier.)

Nun ja, gestern teilte mir die Telekom-Frau am Telefon mit, dass HanseNet die Nummer nicht 'rausgeben will. Ich also heute bei HanseNet angerufen und den Jungs mal ein bisschen eingeheizt. Und dann erzählt mir der Typ eine absolut geniale Geschichte:

»Wenn man einen Vertrag kündigt, soll man sich bei dem anderen Anbieter melden und den das regeln lassen. Tut man das nicht, kann eine Rufnummernportierung von HanseNet nicht erfolgen.«

Bitte was? Eine Kündigung von mir (die von mir kam) ist was anderes als eine Kündigung von mir (die von der T-Com kommt)? Die Jungs bei HanseNet haben sie echt nicht mehr alle.

von Herzi (nospam@example.com) am June 14, 2007 05:55 PM

StudiVZ

Habe ich bisherigen Anfragen aus meinem Umfeld »Warum bist du nicht beim StudiVZ dabei?« immer nur antworten können, dass ich nicht sehe, was mir diese Anmeldung bringen sollte, hat mir der Blog-Eintrag von Tim doch endlich mal ein paar triftige Gründe liefern können:

Also von nun an gilt also folgendes: keine Daten an Datensammler (was ja ohnehin schon galt), die ihr System nicht auf die Reihe kriegen und nebenbei versuchen ihr angeschlagenes Image durch ein paar Lügen aufzubessern.

Auch bei Heise gibt's da eine hübsche Übersicht über das ach-so-tolle StudiVZ.

von Herzi (nospam@example.com) am June 14, 2007 05:52 PM

June 13, 2007

Lars Strojny

Convert an array of strings into an array of integers

The traditional way:
$array = array('0', '1', '2');
foreach ($array as $key => $var) {
    $array[$key] = (int)$var;
}
The nice way:
$array = array('0', '1', '2');
array_walk(&$array,
    create_function('&$value', '$value = (int)$value;');
);
Update: Another nice version with array_map():
$array = array('0', '1', '2');
$array = array_map(
    create_function('$value', 'return (int)$value;'),
    $array
);

von nospam@example.com (Lars Strojny) am June 13, 2007 02:39 PM

Tim Janik

13.06.2007 Back Online

I just got back online after a full week of DSL-outage due to the Deutsche Telekom Strike. If you are awaiting response via email or bugzilla from me, please be patient, I’m doing my best to catch up. Feel free to poke me about urgent issues via IRC/IM though, or drop me a reminder if you haven’t heard back from me in another week.

von rambokid am June 13, 2007 12:55 AM

June 10, 2007

Benjamin Otte

How to do tests

Since quite some people have asked how to do tests for Swfdec, here’s a short Howto. You need:

  • Ming for creating the test files. You probably want a 0.4.0 beta, and not the packages found in distros.
  • A Flash debug player. I use the Windows debug player via wine.

You need to configure the debug player to provide debug output. Create the file ~/.wine/dosdevices/c:/windows/profiles/$USERNAME/mm.cfg and have its contents be (you might need Windows-style CRLF line feeds, not sure):

ErrorReportingEnable=1
TraceOutputFileEnable=1

Now for every Flash file you run with the debug player, a text file will be created that contains trace output and other interesting warnings. It will be at
~/.wine/dosdevices/c:/windows/profiles/$USERNAME/Application Data/Macromedia/Flash Player/Logs/flashlog.txt. I have softlinked that file to flash.log.

Now we need to write a test. Have a look at the test/trace/ subdirectory and the included *.as and *.c files to learn about those tests. The directory also contains a README file, that might give some hints. I’ll focus on the as files here. So let’s assume, we really want to know if NaN == NaN, we’ll write a small test file nan.as:

// makeswf -v 7 -s 200x150 -r 1 -o nan.swf nan.as

// Add a nice description here, so we have an idea what this test is about when it fails.
trace ("Check if NaN == NaN");
trace (NaN == NaN);

// This quits Adobe's Flash player, so we don't have to close it automatically.
loadMovie ("FSCommand:quit", "");

Now compile and run it:

makeswf -v 7 -s 200x150 -r 1 -o nan.swf nan.as && 
wine sa_flashplayer_9_debug.exe nan.swf && 
cp flash.log nan.swf.trace && 
perl -pi -e 's/\r\n$/\n/;' nan.swf.trace;

As you can see, the debug output was copied to the right filename and line feeds were adapted already. Now just copy the files into Swfdec’s test/trace directory and see if Swfdec handles it correctly by running ./trace nan.swf. If it doesn’t, it’ll print the diff between the trace file and the output of Swfdec. And you can go looking at the code to determine who’s at fault. Or write the next test. :)

June 10, 2007 08:10 PM

Lars Strojny

PHPIDS 0.2 tarballs done

We are proud to roll out the 0.2 tarballs for PHPIDS 0.2. This version could be considered relativly solid and we recommend to update. Please take a look at our site for more information.

von nospam@example.com (Lars Strojny) am June 10, 2007 06:43 PM

Magical PHP

Tobias Schlitt on »Doing Magic with PHP«. A great overview but I do not agree with the property part of it.
(I found this __set(), __get()-magic pretty unintuitive and unreadable. If I want to learn the API of a Zend Framework class, I just read the source, if I need to learn the API of an ezComponent, I'm forced to read the documentation, which is in fact pretty good. I prefer setters and getters over virtual properties.)

von nospam@example.com (Lars Strojny) am June 10, 2007 11:19 AM

Sven Herzberg

CeBIT 2007

I'm leaving to Hamburg today to spend the next week at Hanover. Linux New Media was so kind to offer a booth to the German GNOME community. Josh will also be there the whole time, MacSlow and maybe others will join us for the weekend.



So, if you're going to spend some time in Hanover this week, you can come by, talk about GNOME, GNOME development, Maemo, N770, N800. There will be a GNOME love wall and two talks on Sunday.

von Herzi (nospam@example.com) am June 10, 2007 09:28 AM

June 09, 2007

Benjamin Otte

Dear Google

Dear Google, why do you think I’m too stupid to watch movies and need a GoogleVideoPlayer.exe? You seem to be able to hand me the file just fine when running on Linux.

Or have you guys recently realized that Linux users are smarter?

June 09, 2007 08:08 PM

June 07, 2007

Benjamin Otte

What’s up?

Lots of people keep asking this, so here is the authoritative answer to the question “What’s been happening to Swfdec in the last months?”

The bad news is that there haven’t been many new features. At least nothing that would be very visible. The good news is that this is about to change soon. I’ve been spending most of my time understanding the inner workings of Flash’s script engine and reimplementing it in a brand-new script engine for Swfdec. I’ve thrown away about 70% of the glue code to make objects scriptable. Making scriptable objects is now extremely easy. This should speed up coding immensely, both for me and for new contributors.

The biggest issue so far when making Flash files work has been finding subtle bugs. Swfdec is very good at complaining about missing features to stderr (see my last blog), but other things are more subtle. For example: is NaN == NaN? Sure, if you tested it, you know the answer, but if you just coded it, you’ll probably get it wrong. And finding such a problem inside huge 16.000 lines of code (that’s the size of the Google Video Flash plugin) is very hard. So I’ve been looking for ways to find these issues earlier. I hope it works out.

I’ve also developed a habit of writing a test when I’m not sure about a feature, which has helped a great deal. The testsuite has increased from 90 tests to almost 200 tests and there’s another 150-200 tests lying around waiting to be cleaned up and committed.

So, in short, for the user, nothing new to show. For developers, lots of exciting new stuff has landed. If you are a developer, today is a good day to start. Grab the code, head into #swfdec and start hacking. The hard work behind the scenes is done, now it’s time for features.

June 07, 2007 09:08 PM

What's up?

Lots of people keep asking this, so here is the authoritative answer to the question "What's been happening to Swfdec in the last months?"

The bad news is that there haven't been many new features. At least nothing that would be very visible. The good news is that this is about to change soon. I've been spending most of my time understanding the inner workings of Flash's script engine and reimplementing it in a brand-new script engine for Swfdec. I've thrown away about 70% of the glue code to make objects scriptable. Making scriptable objects is now extremely easy. This should speed up coding immensely, both for me and for new contributors.

The biggest issue so far when making Flash files work has been finding subtle bugs. Swfdec is very good at complaining about missing features to stderr (see my last blog), but other things are more subtle. For example: is NaN == NaN? Sure, if you tested it, you know the answer, but if you just coded it, you'll probably get it wrong. And finding such a problem inside huge 16.000 lines of code (that's the size of the Google Video Flash plugin) is very hard. So I've been looking for ways to find these issues earlier. I hope it works out.

I've also developed a habit of writing a test when I'm not sure about a feature, which has helped a great deal. The testsuite has increased from 90 tests to almost 200 tests and there's another 150-200 tests lying around waiting to be cleaned up and committed.

So, in short, for the user, nothing new to show. For developers, lots of exciting new stuff has landed. If you are a developer, today is a good day to start. Grab the code, head into #swfdec and start hacking. The hard work behind the scenes is done, now it's time for features.

June 07, 2007 07:07 AM

June 05, 2007

Lars Strojny

The worker design pattern

I want to provide you a pattern I which I thought about a lot in the last days. Comments are appreciated.

Problem

  1. You have a small object which is data and large set of operations which could be performed to that object
  2. You want to keep the object's method list small
  3. The operations can be done in different ways, including different implementations
  4. Your small object only knows how to read and save itself from the data abstraction layer
  5. You want to batch process a number of small objects

Solution

  1. You have a worker interface which defines the accessor API for the worker and how to add subjects
  2. You can have multiple workers per subject
  3. Your worker does the transformation, your subject is transformed
  4. Your subject is kept light weight

Example

Your ImageBinary object represents the image binary including height and width (metadata is decoupled). You perform various operations on this object like resizing, cropping, scaling.
$image1 = new ImageBinary(array('id' => 1));
$image2 = new ImageBinary(array('id' => 2));
$image3 = new ImageBinary(array('id' => 3));

$worker = new ImageWorker;
$worker->add($image1);
$worker->add($image2);
$worker->add($image3);
$worker->rotate(90);

Related patterns

Manager, Adapter

von nospam@example.com (Lars Strojny) am June 05, 2007 11:24 PM

June 04, 2007

Tim Janik

04.06.2007 LinuxTag

As announced by Hallski, Sven, Mitch and me went to LinuxTag 2007 and operated the Imendio and GNOME booths. As usual, Sven did a great job nurturing random users approaching the booth, together with Mathias Hasselmann and Michael Köchling. I put more focus on the amazingly large program of the conference, of which I’ll give a short roundup here.

The Xen keynote was on Wednesday. Xen 3.0 comes with some interesting new features, it’ll introduce IO virtualization and supports new virtuallization technologies from Intel and AMD. One important lesson I took away from that session is that using virtualization aware drivers on the guest OS can boost performance from roughly 10% using generic virtualization techniques, to more than 90% of the ideal performance throughput (native host OS performance).
-
This day, there was also the ZODB3 talk. This is an object database which can be used completely independently from Zope, it provides a very nice interface in python to implement hierarchical object tree persistence, has ACID transactions with rollbacks and allows for doomed transactions. At the lower level it uses a stable subset of python’s pickle and supports multiple storage backends.

Thursday had a Linux forum where Thomas Gleixner discussed recent realtime work in the kernel. The low latency and preemption patches that went into the kernel over the 2.6.x series brought a number of positive side effects such as general responsiveness improvements on loaded systems and new debugging mechanisms. From the new debugging facilities and raised threading issue awareness amongst kernel developers, a good 1200 patches containing bug fixes and cleanups resulted. And development in this are has not come to a halt, current/future work includes getting rid of idle-state interrupts that do nothing by having a tick-less kernel that only wakes up every once in a while when actual work is due and cleaning up general jiffie dependent code in the kernel. Now what’s left to hope is that distributors get their act together and enable the low-latency preemption patches for their desktop kernels. The patches work, they are stable, and they provide a much better user experience. E.g. if you experience sluggish system behavior during crypto filesystem IO, or experience drop outs with your sound system/server, don’t blame it on the kernel people, blame it on your distribution not allowing time slice preemption.
-
The other talk I attended was held by Matthias Hopf about the Compiz+Beryl merger. The resulting effects he presented excited the crowd as usual, and then he talked some about ongoing developments like input event transformation. After the talk we had some more personal chatter about using the 32bit XRGB visual to add alpha channels to XWindows, and future X extensions to allow applications to notify the server about when to issue EXT_texture_from_pixmap (needed for flicker free composite support).

On Friday, Lennart gave a very good presentation on the state of PulseAudio. He described how it solves the vast majority of audio use cases and can in combination with libsydney finally put an end to the never-ending lack of a portable and usable audio API. Beyond the talk, Lennart and I used every spare minute during the LinuxTag days to discuss libsydneys new API. All in all, it looks like a suitable candidate to replace (or continue) the effort Stefan and I started with CSL (we later suspended the project assuming PortAudio would fulfil the role) to make sound backends transparent.
-
After lunch, Quim Gil presented present and future of the Maemo platform. The points I personally found most notable are:
* libhildon2 is going to become an upstream community project, using Gnome infrastructure like bugzilla, with Nokia providing the core developers.
* Future platform updates (applications and OS) should be possible via APT, so flashing becomes a secondary upgrade method.
* Nokia is currently collecting feature requests for the Maemo platform. They’ll be integrated into Nokias platform plans where possible, so if you have any input to provide, state it here: Maemo Roadmap Page.
* The Maemo versioning scheme now uses alphabetical letters to indicate versioning progress. The current/upcoming versions are:
- [B]ora: current platform (3.x);
- [C]hinook: next platform (4.x) based on Gtk+-2.10, comes with SDKs before launch;
- [D]iabolo: intended to keep API/ABI from here on, unless upstream also breaks;
- [E]lephanta: SBox2 might be available at this time.
* Nokia tries to open up as much of the Maemo platform as possible and they will try to reduce dependencies between opened software and closed platform components in the future. The reason that some programs stay closed anyway are: a) missing legal clearance or licensing for some code portions - opening up code in one division of the company might affect legal claims (IP) on closed components developed and supported in another division); b) code may be subject to hardware vendor NDAs.
* Nokia will embrace attempts such as getting Maemo to run on different hardware in the future, or running non-Maemo software on the N770/N800.
* Nokia intends to introduce abstraction layers for hardware specifics (N770 vs. N800 vs. future devices) where possible.
-
The closing talk for this day was the Gimp presentation by Simon Budig, titled “Pimp My Gimp”. Simon presenting new Gimp features has become somewhat of a LinuxTag tradition over the years, and as usual new Gimp features managed to excite the crowd, even though we also had the usual glitches like a perfectly tested new clone-tool refusing to work on stage. ;-)

Saturday morning started with a vivid presentation on DBus by Marcel Holtmann. Though no stunning new features were presented, he did a good job on introducing the overall architecture and getting the audience hooked up for DBus applications with his presentation and some simple example code.
-
After noon, there was a big podium discussion on preventive data mining of personalized records, currently planned to be realized in upcoming laws by the German government. While the forum was quite interesting and definitely necessary to have at a conference like this, the discussion didn’t present surprisingly new findings for anyone following matters already. The discussion was great however, mostly because of the strong involvement of a rather large audience. It was pointed out that there is a massive lack of public awareness for the incredible data mining hunger of the government organizations and certain big companies, and that this is one of the topics that are rather uneasy to educate the majority of the democratic republic on.
-
Later during the day, Jono Bacon gave his obligatory Ubuntu talk about how Ubuntu cares about user experience and about growing the community. Personally, I still feel that more involvement from Canonical in genuine upstream development such as e.g. the Gtk+ project would be better in the long run for both Canonical and the upstream eco systems.
-
Finally, there was the Open Source Press talk which started out on how CopyLeft used to be the natural state for information exchange since the beginning of mankind, until publishers came into existence in the 16th century and invented CopyRight restrictions to preserve their investments in terms of hardware and human resources. It then was suggested that in a completely networked future computer age, we’ll be back to a pure CopyLeft situation. The presenter didn’t really seem to apply his findings though, when in the second half of the session he assumed that all mass-digestible texts must be edited by publishers and thus unconditionally require copyright laws. He also didn’t want to acknowledge that books existed which are sold and published online or that large amounts of interesting text (>= 500 pages) could possibly be written by non-publishers. While this presentation showed that publishers do recognize and ponder about open content these days, it also made clear that they still have a lot to learn.

As a closing note, I’d like to say a big Thank You to the LinuxTag Orga-Team. All throughout the four days there was an exceptionally good program in five presentation rooms, with up to four additional forum presentations distributed across the booth areas. From our perspective overall event organization went pretty well, this also resonated in German media.

von rambokid am June 04, 2007 09:28 PM

June 03, 2007

Matthias Warkus

geht ja gut los

Rostock war wohl ein ganz netter Vorgeschmack darauf, was die Linksfaschisten uns zum G8-Gipfel bescheren wollen. Vielleicht doch keine so schlechte Idee mit dem Zaun. Ansonsten ist mein Computer jetzt aus der Reparatur, Colloquy und Adium sind bereits wieder installiert, die lange Funkstille ist somit vorbei. Ich habe die Schlüssel der neuen Wohnung und ziehe die Tage ein.

von mawa am June 03, 2007 12:51 PM

June 02, 2007

Benjamin Otte

How to make SWF files work

So someone recently asked me how to hack on Swfdec. And since that might be interesting to others, I thought I'd blog about it. One thing to note: All the action these days is in the "as" branch, which will become Swfdec 0.5 in the near future.

So the first thing I do is download the file I want to make work. Surprisingly, the Swfdec Mozilla plugin allows downloading Flash files from its properties dialog, which you can get to by right-clicking on the playing file.

Now I play the file with the little application (in Swfdec's git checkout) player/swfplay inside a terminal. It will spew out debugging information. A lot of this debugging information will be about missing features. So I start at the top and implement all those missing features, most of the time by writing accompanying tests. (How to easily write good tests is a post as big as this, so I'll leave that out for now. Poke me to write it if you care.)

Here's a few of the more common messages and what to do about it:

SWFDEC: ERROR: swfdec_script.c(198): validate_action: no function for  36 0x24 CloneSprite in v6
This means a bytecode isn't implemented yet. The bytecode interpreter is in libswfdec/swfdec_as_interpret.c - just add the function there that does the right thing.
SWFDEC: ERROR: swfdec_as_interpret.c(678): swfdec_action_call_method: no function named createEmptyMovieClip
An Actionscript function isn't implemented. First I figure out what object it belongs to and what it does by looking at Brajeshwar's excellent Actionscript reference. Then I implement it. Note that a lot of function have really weird effects if called with unexpected parameters. So it really helps to write tests here.
SWFDEC: WARN : swfdec_as_interpret.c(1316): swfdec_action_new_object: Sound is not a constructor
It looks like an object isn't implemented at all. So I do the same thing as above. I implement it, then run player/swfplay to see which functions on the object are used and implement those.

If I managed to implement all the functions that needed to be implemented and it still doesn't work, then the hard work starts. That's where I launch player/swfdebug and step through the code looking if what it does is sane. Swfdebug is a nice little tools for debugging Flash files that unfortunately is a little crashy and accumulates features as I need them. There's also some tools in the test/ directory that help understanding particular Flash files, in particular test/dump that dumps information about the static content of a file (run with -v for maximum output) or test/swfdec-extract that can extract contents of Flash files to png or svg and I think it even extracts audio these days.

And when I'm finally done doing all this, I have one more file to play with. And most of the time I also know 3 more places that need serious refactoring...

June 02, 2007 09:09 AM

June 01, 2007

Matthias Warkus

wir fahren nach berlin

Vorgestern und gestern war ich nach zwei Jahren Pause mal wieder auf dem LinuxTag, wegen Rechnerschaden leider ohne Paper und daher auch ohne Hotelübernachtung, außerdem ohne Bildschirmdemo und mit einem angeblich "depressiven" Vortrag. Vielleicht hat mich das Philosophiestudium zu grüblerisch gemacht. Es zeichnet sich aber ab, dass ich in nächster Zeit wieder etwas mehr mit GNOME zu tun haben werde. Wenn ja, wird es hier stehen. Was mich beeindruckt hat, ist wie so oft, dass Leute, die anzusprechen ich mich früher kaum getraut habe, weil sie so wichtige Stellungen in der Freie-Software-Gemeinde haben, ganz lockere und nette Menschen sind. Nervend und seltsam sind eigentlich nur die Leute, die nicht programmieren und statt dessen Politik machen, wie zum Beispiel Eric S. Raymond, die alte Spaßgranate. Die LinuxNacht gestern war übrigens exzellent, seit 2004 scheinen die Macher echt gelernt zu haben. Das Büffet war sagenhaft, die Getränke ausreichend und frei, und der Ort selber, das Kreuzberger Umspannwerk, sehr sehr schön. Gewohnt habe ich übrigens bei Eva, die ich damit zum ersten Mal seit Kanada wieder getroffen habe. Wiedersehensfreude ist eine sehr schöne Freude. Man hört, mein Rechner sei jetzt repariert. Morgen geht's nach Frankfurt, das Teil abholen.

von mawa am June 01, 2007 08:14 AM

May 30, 2007

Lars Strojny

Dieses Jahr wird elektronisch

Alles fing mit Röyksopp an: auf einmal fand ich Elektro-Pop sei wieder eine richtig gute Idee und habe man lange genug nicht richtig gehört. Ließ mich durch Kai von CSS begeistern, Caro empfohl The Blow inkl. Konzert. Dann hatte ich ein paar Retro-Wochen, hörte mal wieder Turntablerocker, landete bei Peaches und ließ mich sogleich wieder abservieren. Heute akute Prodigy-Sucht ausgebrochen, nach dem letzten Knarf Rellöm-Album und seiner Reminiszenz an eben jene The Prodigy und ihr »Out of Space« fast schon zwingend. Trotzdem musikalischen Bauernhofurlaub mit Kaiser Chiefs und Maximo Park (beide Alben sollte man sich anhören) genossen. Zu Maximo Park und Kaiser Chiefs vielleicht bald mehr.

von nospam@example.com (Lars Strojny) am May 30, 2007 07:39 PM

May 29, 2007

Benjamin Otte

browser plugins...

Zack has a long blog about browser plugins. And he advocates going the XEmbed route. Originally I wrote this as a comment, but I think more people should know about the mess that is called browser plugins.

Swfdec used to be an out-of-process plugin. That plugin had all the nice features he mentions, but utterly fails for other things:

  • translucency. If you use an X window for embedding as in XEmbed, you suddenly need Composite support to be able to do it.
  • z-order. It's absolutely fine to pop up a DIV on top of any plugin. If you go the X-Window route, you're in for quite a ride since suddenly you have to create an X-Window for (at least) every DIV.
  • Input events. You know when you use the mouse wheel on top of an embedded Flash animation and it doesn't scroll? Or when you press Ctrl-T to open a new tab and none opens because the plugin has keyboard focus? Those.
So how would I solve the current mess? I would go the same route every other application with plugins goes. I'd write one plugin for every application. There's really no need to have shared plugins. Noone wants to run Rhythmbox plugins in Amarok or Konq plugins in Nautilus. If every browser had its own plugin system, suddenly Swfdec could use all the nice APIs of the browser. It could integrate its properties with the Konq properties dialog. It could share common properties ("run animations [x] always [ ] once [ ] never", "sound [ ] enabled [x] disabled"), it could react to events (like ESC stopping animations). And there'll probably be lots more I'm missing.

I can imagine two reasons why browsers didn't go that route. The first is closed source plugins. Adobe ships Flash only for Moz plugins. So everyone tries to add support for that one plugin. And the second reason is that there really isn't a huge demand for plugins. There's really only Flash and Video players. Integrate those two natively and you don't even need plugin support at all.

Oh, and one final note. Please stop bringing up the "misbehaving plugins" argument. It's the reason for so much braindead code trying to cope with "misbehaving" stuff. If some code is broken, fix the broken code, don't try to work around it. It feels like advocating to render every tab out-of-process, because then one page crashing doesn't kill the browser...

May 29, 2007 10:06 PM

Matthias Warkus

wenn man zuviel zeit hat, oder zuwenig antrieb, oder beides

Ich staune selber darüber, aber wenn ich nachrechne, habe ich über die vergangenen Tage zirka fünf Brutto-Zeitstunden "Ladykracher" gesehen und fand das meiste gar nicht schlecht. Dass Anke Engelke einen Waschbrettbauch hat, ist allerdings nicht erstaunlich, sondern nur konsequent, wenn auch mir bisher unbekannt. Hatte die nicht auch mal ein Kind? Ich kann mich ja zu der Generation zählen, die sie noch aus dem Radio kennt. Wikipedia verrät mir, dass sie in Montréal geboren ist, wo ich ja auch schon mal war, und schon Fernsehen gemacht hat, bevor es mich gab. Was man so alles erfährt.

von mawa am May 29, 2007 04:17 PM

zur spon-wgt-berichterstattung:

Kein Mensch kann ernsthaft, dauerhaft und unumkehrbar Sklave sein wollen. Wer meint das zu wollen, hat ein Problem, auf jeden Fall aber Unrecht. Das gilt. Und wenn sich die BDSM-Lobbyisten auf den Kopf stellen.

von mawa am May 29, 2007 02:37 PM

da hilft auch sich bewegen nichts

Die Chancen, dass ich es tatsächlich noch zum nächsten Termin schaffe, mich zum Magisterprüfungsverfahren zu melden, sind verschwindend gering geworden. Mein Zeugnis aus Québec ist immer noch nicht da, und ich weiß mittlerweile warum; es gibt da ein administratives Problem, und zwar, weil ich mich auf jemanden verlassen habe, etwas während meiner Abwesenheit für mich zu tun, was derjenige natürlich vergessen hat. Ich hasse Sprüche der Sorte "Was man nicht selber macht ...", aber hier drängen sie sich auf. Letztlich bin ich irgendwie selber Schuld. Außerdem ist der Meldetermin nicht so wirklich Ende Juni, wie mitgeteilt, sondern der 20./21. Juni. Das, was bis dahin noch gemacht sein müsste, schaffe ich und die anderen Beteiligten auf keinen Fall. Womit verbringe ich jetzt das halbe Jahr bis zum nächsten Meldetermin? Mit Däumchendrehen? Naja. Vielleicht ergibt sich irgend etwas Unverhofftes und es klappt doch noch. Ach so: Das Prüfungsbüro meines Fachbereichs ist seit jeher nur drei Tage in der Woche von 9 bis 12 Uhr geöffnet. Da das ganz eindeutig zuviel ist, wurden jetzt bis weit in den Juli hinein regelmäßige Dienstbesprechungen angesetzt, die alle 14 Tage eine der Sprechstunden um eine Stunde verkürzen. Gut gemacht.

von mawa am May 29, 2007 09:32 AM

May 27, 2007

Sven Neumann

pimp my gimp

Pimp my GIMP is the title of a talk that Simon Budig is going to give next Friday at LinuxTag in Berlin.

If anyone wants to see this talk, or any of the many other interesting talks at LinuxTag, and needs a ticket, drop me a mail with subject linuxtag at sven at gimp dot org. I still have a bunch of e-tickets to give away to GIMP fanboys and fangirls.

von neo am May 27, 2007 08:23 PM

Lars Strojny

Travis - The Boy With No Name

Travis ist ja klassische Fahrstuhlmusik. Läuft so runter, kann man hören, muss man aber nicht. Eben Phil Collins für Leute mit Geschmacksdünkel. Ganz in dem Stil ist auch das neue Album »The Boy With No Name« gehalten. Es läuft so runter, ist süffig, ohne große Überraschungen. Ein Gin Tonic eben. Schmeckt überall gleich mittelmäßig, kann man aber gut trinken und sich darauf verlassen, dass er - nunja - wie immer schmeckt. Travis würde zur Kohl-Ära und seinem »Keine Experimente«-Diktum passen. Nun ist die aber vorbei, Travis hingegen machen weiter Musik. »The Boy With No Name« ist eine langweilige und irrelevante Platte, die ich trotzdem gut hören kann. Sie ist komplett frei von Überraschungen, ein Track wie der andere. Es gibt keine Perlen und keine Enttäuschungen. Gitarre, Vocals, Bass und Drums mischen einen schönen Brei der so klingt, als habe man ihn schon immer gehört. Es gibt - selten genug - kein Stück, dass man empfehlen kann.
Anspruchsvoll ist das nicht, unglaublich schlecht aber auch nicht. Eine der wenigen Platten, bei denen es vollkommen gleichgültig ist, ob man sie hört oder nicht. Innovativ ist aber durchaus anders. Naja, hört sie euch an - oder auch nicht.

[ Disclaimer: mp3.de hat gerade ja die Republik mit Werbeplakaten für das Album zugeklebt. mp3.de ist unsere Partner-Company. Ich schreibe aber über das Album weil es mir gefällt. ]

von nospam@example.com (Lars Strojny) am May 27, 2007 04:59 PM

May 25, 2007

Matthias Warkus

ich glotz tv

Erste Erfahrungen mit dem deutschen Fernsehen nach der Rückkehr: Dass es im ZDF irgendwann mal Werbung für rezeptfreie Medikamente mit spezieller Indikation bei Demenz geben würde, hätte man vor ein paar Jahren noch jedem Kabarettisten als klasse Pointe durchgehen lassen. Zu spät, die Realität hat die Satire eingeholt. Bei Galileo auf Pro7 wird derzeit glutamatfrei asiatisch gekocht, dafür aber mit Sojasauce. Man muss sich das so vorstellen wie diese Vollwertkuchen, in die kein Zucker reinkommt, dafür aber ein Pfund reiner Bienenhonig.

von mawa am May 25, 2007 06:24 PM

na dann

Die Daten auf meinem MacBook sind unwiderruflich im Eimer. Das ist jetzt klar.

von mawa am May 25, 2007 10:36 AM

May 24, 2007

Hendrik Richter

KTM-Motorrad-Tour durch Peru

Kirsten bloggt jetzt auch, und zwar über ihre Motorrad-Tour durch Peru. Dabei kann sie mit spektakulären Bildern prahlen. Hier mal ein kleiner Vorgeschmack, der hoffentlich Lust auf mehr macht. Lohnt sich, wirklich!



 

von hendi am May 24, 2007 07:28 PM