Blog

Ist der Mann noch zu retten?

Im Zuge des Wunsches, bei “terroristischen Attacken” auch Passagiermaschinen von der Bundeswehr abschießen zu lassen, was im letzten Jahr durch das Bundesverfassungsgericht eindeutig als verfassungswidrig (“ein Leben kann nicht mit einem anderen Leben aufgewogen werden”) eingestuft wurde, plant Wolfgang Schäuble und sein treuer Gefährte, Franz-Josef Jung, weitreichende Grundgesetzänderungen:

http://www.spiegel.de/politik/deutschland/0,1518,506507,00.html

Herr Schäuble, wie würde es Ihnen gefallen, wenn wir Sie kurzerhand zum Abschuss freigeben? Ich denke, hierfür würde sich sogar recht bald eine parlamentarische Mehrheit finden…

OpenXML stopped – for now

Microsofts XML-based Office format failed to receive the needed votes for a fast track standardization. However, the differences have been more than marginal: Microsoft received 74% of all qualified votes, whereas 75% would have been sufficient to get it through. The Foundation for a Free Information Infrastructure (FFII) has put out a nice graphic which visualizes the votes:

ISO 29500 Votes Map (2007-09-03)

(There is a textual overview of the results available here.)

Microsoft surely won’t give up the format just now, it is far too important for their business strategies in the next years. And its likely that they try to “fix” at least some of the outstanding issues (you could also say: do even more lobbying) to get the needed 75% in March 2008 for the final voting. Microsoft itself already speaks of “Strong Global Support for Open XML” in their press release on the topic:

“Technical experts around the world have provided invaluable feedback and technical recommendations for evolving the format,” Robertson said. “The high quality of the Open XML format will be improved as a result of this process, and we take seriously our role in working within the Ecma technical committee to address the comments received. We believe that the ISO National Bodies will be pleased with the results.”

Now lets see if we are equally pleased with the results…

Playing around with iLife’s new iMovie

My wife’s new MacBook arrived a couple of weeks ago with the new iLife ’08 suite and since iMovie has been said to receive the greatest overhaul I thought it was time for some serious video editing.

To get raw material in first instance we put our two laptops in two different places in my son’s room, each with another viewport. The built-in iSight cameras did quite a good job – resolution- and color-wise – while the picture was sometimes a bit too dark or too light under some circumstances. A bit annoying was also that its quite hard to move a laptop like a portable video camera if your little son is moving quickly through the room. You have no real way then to determine if the picture is ok since there is no display on the rear of the camera / laptop screen. But hey, if you have no money for a portable one I guess you have to live with those minor issues.

Anyways, after our recording session I copied the video project from my wife’s laptop and fired up iMovie. I noticed then that you have to import iMovie HD projects into iMovie, which took quite a long time for the roughly 25 minutes of raw video we had1. Why on earth did Apple not just simply upgrade the old HD format bundle, but decided to copy around gigabytes of raw camera output?!

After the import was finally done I found myself very pleased with the easy interface of iMovie. Stiching parts of video clips together was as easy as marking a certain video sequence with the mouse in the events view and dragging it into the project view, while adding sound from iTunes, still pictures from iPhoto (with the famous Ken Burns effect) and various transitions. You can also directly record audio and video from the built-in microphone or iSight / connected webcam like in the previous version, normalize and adapt the volume of audio tracks and even do some basic video image processing.

While this makes a good overall picture, I found some things annoying, difficult to accomplish or even impossible (please give me a pointer if it was really just my dumbness ;):

  • The amount of transitions is very limited. If your video should not look too amateurish, you can probably only use two or three (cross-fade, fade to black, fade to white)
  • Its not obvious to change the length of a transition, i.e. you can’t just drag them bigger or smaller like you can do with video clips, and I somehow managed to overlook the context menu item “change duration” in first instance… maybe this was inserted just after I globally edited the project settings and raised the default length from 0.5 seconds to 1 second… I don’t know.
  • The only way I found to create moving text for a short credits section was the pre-defined text template. How do I do horizontally scrolling text there? How do I change the length of the credits display after I set it initially? (It managed to occupate half or everything of the length of the clip on which I dragged it.)
  • I found no way to create some “blackness” on which I could display text like f.e. the credits at the end – am I supposed to create a 1x1px^2 black image, place it into my project and display text on it?
  • There seems to be no way to do advanced audio editing f.e. to adapt the volume of certain parts of a bigger background audio track or fade it in/out at certain positions if the foreground/video audio should be understood better.
  • I dislike the track views which break like text lines if the space is up on the right. They make it kind of hard to select sequences which span multiple lines. Surely Apple’s developers invested quite a lot time to get it “flowing” nicely that way, but I’m not sure if that served the usability very well.

Anyways, here is the result of the work. Please be gentle if you vote on it 😉

1 You ask why I recorded in the older iMovie HD, and not directly in iMovie? Well, the first time I tried to fire up iMovie, Quicksilver gave me an error similar to “wrong version of Quartz composer installed” so I thought – at first – my iMovie installation was broken somehow and decided to go for the older iMovie HD to record the video, just to find out a little later that Quicksilver was the real issue and not iMovie…

OpenXML: A journey through the blogosphere

Whoever thought that Microsoft would not be up to every trick to push their document format, should read some of these blog postings. To quote one of the blog, in which a blogger writes about the standardization process in Portugal:

Let me remark the fact that representatives of Sun and IBM [obviously against OOXML] didn’t attend to [a decision meeting] because there were no chairs for them. […] Microsoft alone wasted three seats. ASSOFT wasted two more, business partners of Microsoft wasted a few more spots. [There were a total of 30 seats]

[…]
The President, Microsoft representative, tried to shut me up twice. At the second attempt I accomplished my promise of speaking louder if I had to in order to be heard, refusing to be cut off.

Nothing more to say here.

And I was pointed to another excellent blog post which outlines the technical difficulties to actually modify OOXML Excel documents outside of the Office 2007 suite. An eye opener, in my opinion.

Leipziger Ortsgruppe des AK-Vorratsdatenspeicherung gegründet!

Nach dem initialen Treffen gestern Abend einiger Mitglieder des Chaostreffs und einer Vertreterin der Leipziger Kamera ist nun offiziell der AKVL gegründet. Die Wiki-Seite des AKVL fasst die Beschlüsse und das weitere Vorgehen für die nächsten Wochen zusammen. Falls sich noch Mitstreiter finden sollten, sind sie natürlich herzlich eingeladen, sich an den Aktivitäten zu beteiligen!

Konzentriert werden soll sich nun vor allem auf die Mobilmachung im Vorfeld des 22. September, an dem vom AK Vorrat in Berlin die Demonstration “Freiheit statt Angst”. Hierzu sind verschiedene Aktionen geplant. Näheres erfahrt Ihr auf der bereits genannten Wiki-Seite.

guitone 0.6.4 released

This is mainly a compatibility release so that guitone 0.6.x keeps working with newer monotone versions like the recently released 0.36. There are no new features or bug fixes included.

Please note that it won’t be possible to use monotone 0.34 or monotone 0.35 with this version of guitone due to a incompatible change in the monotone interface. Use guitone 0.6.3 or earlier for that purpose.

Grab your copy of guitone 0.6.4 here.

The work on 0.7 still goes slowly after having decided to completly redo the internals with QThread support. However I’m always open for help ;).

Microsoft’s Office Open XML an ISO standard? Hell, no!

I’m sure most of the techies out there already know about the effort of Microsoft to push their XML-based file format “Office Open XML” (OOXML in short) of the Office 2007 Suite as open standard. The problem with it is though, that the whole format description is way too bloated (more than 7000 pages; ODF not even has 1000), doesn’t honor other, existing ISO standards (f.e. date and time formats in ISO 8601) and is spicked with references to proprietary attributes like “useWord97LineBreakRules” or “autoSpaceLikeWord95”.

To make a long story short, if people were enthusiastic in first place on Microsoft’s step towards an open, XML-based format, away from the proprietary binary format they used earlier versions, this enthusiasm soon ebbed away when it became obvious that the whole action is just window-dressing. In its current state, OOXML will not allow any third-party software developer to fully support the format, because of all the undefined holes in it. Rob Weir, a software architect from IBM, gives a good insight of what this format is actually about in his personal blog, if you like to read on.

Now since ISO standardization seems to be a global process where every country must cast a vote, it seems that Microsoft has done a good job lobbying for their format in many of them (f.e. Australia, which is said to vote positive), while having a hard time in others: Yesterday was announced, that Microsoft failed to get the needed 9 votes in the USA, which is a very good signal. The deadline, however, is September 2nd, 2007. Until then, a lot of stuff can happen. There is a petition going on on noooxml.org, which has been signed by more than 33.000 people already. I’d strongly encourage you to sign that as well, and, if you get the chance, write your local ISO standards body to vote against OOXML in your country. For Germany this is the “Deutsches Institut für Normung” , in short DIN, which seems to review the format since May this year already.

Lets see where Germany and the other, yet undecided countries, are heading. Its already a farce that OOXML made it through ECMA and is now a standard after ECMA-376 (though the process leading to this is highly debatable).

However, what disappoints me the most as of now is, that Apple voted “Yes” in the aforementioned US ballot. I was always thinking, Job’s company is a bit smarter than the rest and not just follow the leader, but I guess business considerations were more important in this particular case. If Apple looses Microsoft as developer on the Mac, they loose the Mac Office Suite and also one important selling factor in business environments: Compatibility with Microsoft Office.

Pussies. They could do better. And they partially did better already, by launching the new iWork ’08 with Office Open XML support now, before Office for Mac 2008 arrives in January next year – now if they’d just include ODF support as well…

EDIT 2007-08-22: It seems that the German standards body voted PRO Office OpenXML (German source) – imho a very sad day. I hope the other countries will not follow Microsofts approach equally blind.

No longer a Carpet Crawler

Since August 1st, when my son Vincent (13½ months old) decided to take his first own steps without holding the hand of mommy or daddy, the times have been very exciting. Its very cute to see how his skills evolve from day to day, and while he usually felt more safe in the past by crawling around, today was the first day on which he actually walked more than he crawled! He even managed to stand up all alone several times – man, I’m just a happy dad! Here are some obligatory “evidence” pictures:

My son Vincent (2007-08-11)

My son Vincent (2007-08-11)

For all the relatives and other interested people we’ve set up a webpage solely dedicated to Vincent’s pictures – though the titles and comments are in German, the photos should speak for themselves ;).

“Freiheit statt Angst”-Demo in Berlin

Der Arbeitskreis Vorratsdatenspeicherung (kurz AK Vorrat) macht Mobil!

Der Arbeitskreis ist gegen die geplante Einführung der Aufzeichnung und Speicherung von Telekommunikations-Verbindungsdaten (Handy, Internet) aller Bundesbürger zum Zwecke der Abwehr und Aufklärung von Straftaten (mehr Informationen hierzu auf der Webseite).

Aus diesem Grund findet am 22. September 2007 ab 14:30 in Berlin eine Demo unter dem Motto “Freiheit statt Angst” statt (Infos), zu der ebenfalls einige Mitglieder des Chaostreffs Leipzig anwesend sein werden.

Der Chaostreff Leipzig, zu dessen Mitgliedern ich seit kurzem gehöre, plant die Gründung einer lokalen Ortsgruppe des Arbeitskreises Vorratsdatenspeicherung. Wir möchten auf diesen Weg die weitere Aufklärung in der Bevölkerung in Leipzig durch Aktionen und Demonstrationen weiter vorantreiben, neue Mitstreiter gewinnen und politisch etwas bewegen – kampflos möchte niemand von uns in “1984” landen!

Wenn Du Lust hast, mit zur Demo zu kommen oder generell an unserer Ortsgruppe Interesse hast, melde Dich! Du kannst uns jederzeit per IRC kontaktieren (mein Nick ist tommyd) – E-Mail funktioniert natürlich auch.

Taking appcasts to the next level

Appcasts are RSS feeds which make use of the <enclosure> tag which links to a binary file (usually a software package) somewhere on the internet. Sparkle, a library drop-in for Objective-C/Cocoa Mac OS X development, implements and expands this format to use it as transport description for application updates. With this, Sparkle makes it possible to automatically trigger application updates in a well-defined, consistent way. It downloads, unpacks and replaces the original binary and afterwards restarts the updated application.

I’m sure most of the Mac users out there have already seen it; many popular programs support self-updates through appcasts and Sparkle (hell, even guitone has an appcast after I managed to hack Sparkle support into this Qt project), it makes the whole process of updating non-Apple applications on a Mac so much easier and fun. With the advent of AppFresh, which aggregates all the registered appcasts from all locally installed applications and then updates them all-at-once, appcasts become an interesting idea for software distribution at a larger scale.

Now, GNU/Linux users will probably laugh at me when I tell them from this “superior” technique, because appcasting is a well-known technique in the free software world: A software update (if not automatically triggered) is usually done in the background by modern Linux distributions through yum or apt, with full support for version and dependency checking, mirror localisation and much more. Interestingly, these software distribution systems never made the jump to other operating systems – and yes, I know of MacPorts and Fink, but both are different story, because they distribute mostly GNU software.

There is one thing which distinguishs appcasts from GNU/Linux distribution systems, and this is rooted in the way software is developed on both platforms. GNU/Linux software projects usually just provide the sources, which are then build for the specific distribution and platform by so-called packagers. These packagers have not necessarily anything to do with the actual project. Because there are so many distros out there, a software gets quite a lot repackaged, even if some of these packages basically serve the same platform and architecture.

Mac OS X software (and Windows software as well) is usually distributed directly in binary form, ready to use for the defined platform. The “packager” role is here an internal role of the software creator and the distribution – if not done through the software creators home page – usually happens via big download sites like macupdate.com, cnet.com and others. All these websites are isolated “applications”, meaning that they use different internal data formats, are usually closed and don’t work together in most cases.

So, the new hype, not only in content creation branch, is syndication. And that is exactly what appcasts are about: Based on RSS 2.0 they provide a general format to describe software updates. Platforms like iusethis.com use the feed and provide additional services, f.e. a global “usage counter” for a particular software package. However the problem with the current appcast format pushed by Sparkle is, that it is itself an isolated application, because it can only provide “some package with some version to download somewhere” and includes no information about other platforms, architectures or download locations. This may be ok as long as you either have different appcasts for all these different platforms or only target one platform (in case of Sparkle Mac OS X).

But what if you create an application which should run on all major platforms? You certainly want to provide your users the same look’n’feel and features on all these platforms, and this is where my proposal drops in. My aim is to create a cross-platform format for software updates which is suitable to distribute update information for any platform through one single stream of information. Based on this format people could create those kind of library drop ins like Sparkle not only for Mac OS X, but for multi platform toolkits like Qt, wxWidgets, even for .NET. Software developers would then simply add those in their projects, provide the syndicated format on a webserver, and are done.

So again, what are the advantages here?

  • Based on the specification, an application update would “feel” the same on every platform, maybe with slightly differences between the different toolkit implementations
  • The syndicated format, which extends RSS 2.0, could serve as common content feed in any feedreader and, at the same time, transport the needed update information for the application drop ins
  • The feeds are decentralized published; the power is taken back to the software creator as he determines how he publishes his software
  • Other services similar to iusethis.com could arise which would provide social functionality around software updates, caching, mirroring and more

Of course the whole proposal would probably make most sense for Windows and Mac OS X software creators, since, as I already mentioned, distribution in the GNU/Linux world happens quite differently (and these people usually don’t like to build binaries themselves, they let packagers from the different distros do this work). But why should efforts like AutoPackage not be supported, if they’re interested? And I think commercial Linux software distributors would be interested in that as well, just because it would strengthen their relationship with their customers quite a lot.

What follows is a quick effort how such a format could look like. It currently doesn’t contain the RSS part, because I think you all know how this would look alike, I plan to put one <software> node into each <item> which would then stand for an invididual software release. Below the software node, the following tree would be expanded (which should be mostly self-explanatory):


  2.2.3
  
    
      
        source
        application/x-compressed
        2928399933
        012346789ABCDEF012346789ABCDEF
      
      manual
      
        
        
      
    
    
      
        binary
        application/octet-stream
        2928399933
        012346789ABCDEF012346789ABCDEF
      
      app-replace
      
        
        
      
    
    
      
        binary
        application/octet-stream
        2928399933
        012346789ABCDEF012346789ABCDEF
      
      installer
      
        
        
      
    
  

Of course some concepts are stolen from Sparkle (f.e. hashs to check the data integrity of downloaded files), and one could put a lot more stuff in this. I once thought about adding support for “upgrade paths” into it, f.e. if a user skips a couple of versions, he should be notified if his current installation can be updated (using binary patches) or has to be upgraded (which requires a full installation), but I think bandwidth is cheap nowadays and it would make a first shot of this format and its implementation far too complex.

So, this is it, what do you think? I’d love to hear your feedback! I’m in contact with the developers of AppFresh and they signalled interest as well. Stay tuned for more news in the future!