Invisible Standards Organization

July 17, 2008 – 10:24

Rob Weir has put up an interesting, yet very sarcastic blog about the future of OOXML. From the article:

[…] Another example of working on autopilot is the ad-hoc working group in SC34 [ISO subcommittee for document description and processing languages] looking at OOXML maintenance. Although it was heralded with much pomp “SC takes control of OOXML”, the fact is SC34 currently can’t even look at OOXML [the final text was still not released], let alone maintain it. They are entirely impotent. But still they will go through the motions and meet next week in London to advise Alex Brown [the convenor at the Ballot Resolution Meeting on OOXML in Geneva in Februrary], who will then take all this advice and later formulate and write up his OOXML maintenance plan for SC34 to vote on.

All the best to them. They voted on OOXML without seeing it. Now they’ll determine how to maintain it without seeing it. Maybe ISO should stand for Invisible Standards Organization? Maybe one of the participants can let me know where can I submit my invisible defect report?

(Source)

He says it is likely that Ecma takes over the maintenance of ISO OOXML, as it would be the best for this “Microsoft-only standard”:

Who is better positioned to clarify exactly how Excel financial functions work, the Microsoft engineer who has access to the Excel source code, or an SC34 representative from Khazakstan?

No strings attached.

Better than grep

July 11, 2008 – 13:32

If you’re a programmer and you’re using a command line heavily, you’ve certainly come across a big nuisance in the usage of GNU’s grep utility: The verbosity you need to exclude files from being searched, such as backup files (*~ or *#) or any kind of vcs inventory stupidity like .svn or .cvs. (Did I mention earlier that this is one of the many reasons why I hate svn and cvs with a passion - for the fact that they clutter my workspace with this crap?)

Anyways, with grep you usually end up with something like that:

$ grep -R myterm | grep -v ‘\.svn’ | grep -v ‘~:’

or, to speed up your searches a bit and let grep not even crawl things you don’t like to see anyways:

$ grep -R myterm `find . -type f | grep -v ‘\.svn’ | grep -v ‘~:’`

Anybody else thinks that this syntax is just hilarious and totally overkill? So I looked at grep’s manpage for some kind of .greprc which I could define in my homedir and in which I could set all the things I want to exclude, but apparently no such file is acknowledged by grep.

Finally I did a Google search for “grep ignore svn directories” and found ack - a Perl tool which resolves this and other problems with grep. My personal feature highlights:

  • You can use real Perl regular expressions (no grep -r stuff needed)
  • -A, -B and -C options work just like I know them from grep
  • Output is highlighted with terminal colors and very much cleaned up in comparison with grep
  • There are predefined sets of file extensions to search, i.e. ack --php foo will search all php files (php3, php4, php, aso.) for foo, also with an option to exclude these sets with f.e --noperl

So I’m more than satisfied with this - if I would have only found this earlier! This saves my day!

Oh, I think I forgot to mention one absolute killer feature of ack - to quote the author:

Command name is 25% fewer characters to type! Save days of free-time! Heck, it’s 50% shorter compared to grep -r.

Go, get it while its hot!

7228

July 3, 2008 – 14:54

Remember this number - 7228.

This is the total amount of pages the final ISO version of Office Open XML (OOXML) will have - spread over four parts.

If I put this number in perspective with Microsoft’s recent effor to “save our trees” (Link, IE-only…), I’m not sure if I should be laughing or crying…

280slides

June 18, 2008 – 23:36

My boss Thomas came home from San Francisco today where he attended the annual WWDC, Apple’s Worldwide Developers Conference, and he brought some interesting infos and stuff along (Snow Leopard Alpha install party, anyone?)

I haven’t had the chance to have a longer chat with him yet, but one thing he was totally awesome about was when he attended in this indie developer track the other day. I forgot what he told me it was entitled, but basically it was about a young startup company which “just” created a Powerpoint / iWork Keynote equivalent which completly runs inside your browser… you find it here:

http://www.280slides.com

Back yet?

Have you noticed the overall responsive UI? Have you seen the semi-transparent tool windows with their soft drop shadows? Have you tried to insert a shape via drag’n'drop and changed its size and form? And of course you noticed how the little preview pages on the left instantly updated when you changed somewhat in your main slide, haven’t you?

As a normal Joe you’d probably say “hey, decent application, very nice!” - as a developer of any kind you should by now just simply blown away…

A bit of explanation follows.

What you’ve just seen was a completly new web framework user interface built on top of a completly new web programming language named Objective-J built on top of plain, old Javascript 1.x. One of the founders of 280 North, Francisco Ryan Tolmasky, apparently loved his Objective-C for desktop development of Mac OS X applications so much, that he decided to create a version for any browser (the underlying Javascript can be found here for the interested).

Ok, now, nice, somebody invented a new script language on top of Javascript - now what? Shouldn’t this be painfully slow? What’s the point?

As you’ve seen it is not at all slow, I guess with Firefox 3 and newer versions of Safari / Webkit it should get even faster. And the point behind this is that if the foundation stands as-is, its just a matter of time to reproduce all the core functionalities of the Cocoa Frameworks - those programming libraries which are already used for all these fancy Mac OS X applications (not to forget the iPhone / iPod touch applications and the native Windows versions of iTunes and Safari). What if you could write a Objective-C application in the future - and with minimal changes to its rendering source code - just publish it as a web application running in everyone’s browser?!

Wow, now this is very cool…

Of course there are similar efforts of creating “rich internet applications”, most of them need some kind of browser plugin or runtime (Flash, Adobe Air, Silverlight, to name a few) and some are install-free (basically everything what Google has created, like Docs and Spreadsheets, the calendar app, GMail, …). While widgets on the former usually look very decent and maybe even adapt to your local style setting, pure web-based javascript apps often look like outlaws - or at least do not provide all the widgets you’re used to if you’re developing desktop applications. With whatever drives 280slides, we might see the best of both worlds - widgets which look and feel like the widgets in desktop applications and widgets which are completly install-free.

The guy(s) behind 280North promised to release Objective-J (and hopefully the Frameworks on top of it) soon under objective-j.org and I’m very very excited to see more of it.

One last anecdote Thomas told me today - Francisco Ryan Tolmasky was asked during the presentation of 280slides what he did before he founded his company, i.e. he was asked for his background. Imagine a young guy standing in front of the audience, probably aged under 25, answering “Well, I’ve worked for Apple on the iPhone version 1, but after that had been finished, I decided to leave the company. What was left for me there anyways, doing it again for iPhone 2 was not appealing after all…”

Oh my god.

Compromise a coffee machine

June 18, 2008 – 12:22

Just found via heise: The Jura F90 Coffee machine’s connectivity kit which “enables [the communication] with the Internet, via a PC [to] download parameters to configure [the] espresso machine to your own personal taste” seems to have some security problems:

The connectivity kit uses the connectivity of the PC it is running on to connect the coffee machine to the internet. This allows a remote coffee machine “engineer” to diagnose any problems and to remotely do a preliminary service.

Best yet, the software allows a remote attacker to gain access to the Windows XP system it is running on at the level of the user.

(Source)

So next time your coffee is too strong or too weak - look out for nearby hackers!

Depressed and angry on a daily basis

June 9, 2008 – 23:34

There is a lot discussion currently going on if or if not the Peak oil (the maximum capacity in oil extraction) has been reached yet - of course caused by the sky-rocketing oil prices in these days. But even if our daily lifes pretty much depend on oil, which we use for heating, cooking, driving or plastics like toys and packaging (and the list goes on almost endlessly), we should be aware and even fear other “peaks” much more in my opinion: the upcoming peak of food, caused by a peak of drinking water.

A very interesting and well-written article on this topic has been published in the German net magazine Telepolis, called “Peak Food, Peak Water” (English version via Google translate), upon which I stumbled today:

One of the most powerful players in the global financial system, the investment bank Goldman Sachs, introduced the Top Five Risks during its risk assessment of future developments conference and invited several experts which all warned for a huge and catastrophic water shortage.

[One of them] Donald Kennedy [a Stanford biology professor and former chief editor of Nature] spoke of a climate change, initiated by an accelerating spiral of extreme droughts which alternate with “psychotic and excessive rainfalls”. The consequences are already visible: “There are already 800 million people who live with food insecurity. They can not grow enough food, or they can not afford it. This is a seismic shift in the economy,” Kennedy alerted. Goldman Sachs has even estimated that by 2025 a full third of the world’s population will have no access to “adequate drinking water”.

So with a global water problem we also get a global food problem, because agriculture demands up to 70% of the global water ressources.

In this year I certainly have no problem to acknowledge the water shortage: We’ve had a pretty warm and dry winter in Germany and after some rain in April, May started out very hot and again very dry. I’m not a meteorologist, but I bet the past six weeks or so have been the most waterless weeks for this season in a couple of years. When I go out with my little boy and my dog I see all this grass in the parks around my home withered and dead which usually was not the case before July or August in a “normal” year.

Now most people around here just enjoy the weather and don’t think about it much. But somehow I’m more in touch with the nature (after all I have a gardener background) - I feel for the plants and animals which suffer from a drought like this - and I tend to imaginate (I would say realistic, my wife would say pessimistic) agendas how the next couple of years will look like - for us, for our area, for Germany and for the rest of the world. And I get very much depressed and angry even if I follow the daily news and recognize how less the world’s biggest leaders do to solve the world’s biggest challenges, the global climate change. My wife usually tells me then that I should stay away from the news if they make me depressed or angry, but this is no solution for me either…

The stated Telepolis article now again contains one particular section which again makes me wonder what on earth should happen before people start to act and do the right things:

The “proposed solutions”, which have been hatched during this conference by one of the most influential U.S. investment banks, sound like the a declaration of bankruptcy of the late, capital-dominated economic advisers. Goldman Sachs said water to the “oil of the next century” and recommended that all investors should heavily invest in this resource, especially in the “high tech” sector of the industry. The product ‘water’ will offer “enormous rewards for investors who know how to play during the upcoming investment boom.”

No comment.

Little Nickname Science

May 26, 2008 – 22:00

Its not that I’m a newbie, but sometimes I just feel that way. People start and talk in acronyms on IRC, and then it comes out that these acronyms stand for apparently famous people in the Free Software world I should know…

Lets start with an easy one: rms.

Yeah, that was easy. If you come across this nick in an IRC channel, make sure you don’t talk about the advantages of proprietary software, Richard Matthew Stallman may just jump at you and bash you with a big club.

Now, who might be esr?

Actually I learned about his nick not too long ago. He stumbled into the #monotone channel on OFTC last December and asked about the backgrounds of the monotone project. He prepared a paper of modern revision control systems at that time (I only have a dead link where it used to reside), but I guess most people will rather know him from one particular essay anyways, “The Cathedral and the Bazaar”: Eric S. Raymond.

Now, if esr is Eric S. Raymond, who might be rse?

If you’re working with web servers, and here in particular with the one from the Apache Foundation, you probably know of this one swiss army knife ™ which solves all your redirecting / load balancing / other weird use case problems - mod_rewrite! But actually, the person I’m talking about, is also highly popular for being the main author / founder of other popular Open Source software project, like OpenSSL, OpenPKG or RPM5: Ralf S. Engelschall. If you catch him somewhere and you’re using his software on a daily basis (like I do), do not forget to praise him ;).

Now the last, pretty hard one for me at least, I just learned today: Who’s famous for his nick drh?

I felt pretty stupid when I learned about his nick; after all I’m using his software on a daily basis as well - indirectly at least. He’s the author of SQLite (monotone’s database backend), the creator of CVSTrac (the inspiration for the nowadays widely used Trac project) and he has of course, like the other people I introduced here, his own wikipedia entry. I’m speaking of D. Richard Hipp.

So this was my Little Nickname Science. If you’ve similar anecdotes I’d love to hear them!

guitone 0.8 released - spring time is hacking time!

May 25, 2008 – 22:08

guitone 0.8 has been released today. Major improvements happened under the hood, the outstanding changes are:

  • guitone is now licensed under GNU GPL Version 3 or later. Please note that you’re now only allowed to legally distribute binaries which you’ve built with Qt 4.3.4 or later, since earlier versions of Qt are GPLv2-only
  • new “driver” interface to call certain dialogs of guitone from the outside, which should help for all sorts of integration wishes ondifferent platforms. A “TortoiseMonotone” project has already been kicked off at the last summit - currently residing on the net.venge.monotone.tortoise branch - and this project is still looking for help from people which are fluent in Python and / or the Windows API
  • numerous improvement in workspace handling (faster, prettier, more configurable, yatta, yatta…)
  • for a full list of changes check the NEWS file

You can download guitone at the usual location, a win32 installer (yes, we’ll have one!) should follow shortly.

Digital Standards Organization

May 13, 2008 – 17:46

Via the NoOOXML mailing list:

When one thinks of international human rights, one thinks of The Hague - home of the International Court of Justice and the International Criminal Court, and the situs of an increasing number of Tribunals chartered to redress the assaults on human dignity that inexcusably continue to plague this planet. It is therefore appropriate that The Hague has been chosen to witness yet another pronouncement in defense of human rights. That pronouncement has been titled The Hague Declaration by the new international group, called the Digital Standards Organization (”Digistan,” for short), that crafted it. In this blog entry, I’ll talk about what the Declaration is all about, and what it is intended to achieve.

(Source)

Go to www.digistan.org for more information and sign The Hague Declaration.

ISO failed horribly last time to achieve what Digistan now goes after, lets just hope they get the creditbility and acceptance throughout the community and public they need to move on.

Hide Qt GUI applications from the Mac OS X dock and menu

May 7, 2008 – 14:56

Starting with Qt 4.4 which was released a few days ago Qt now honors the

<key>LSUIElement</key>
<string>1</string>

setting in the Info.plist file of the application bundle. This is particularily useful to create bundled application which should not pop up in the global dock or menu, f.e. daemons which run in the background or applications like Quicksilver which are only accessible via a global key stroke or an icon in systray area of the menu bar.

Now, with guitone I recently had the problem that I wanted exactly this mode under OSX in its new “driver” mode, which lets you automate / script the access to internal dialogs (check the nvm.guitone.app-driver branch for more information), but it should not interfere with the “standalone” mode, i.e. the dock icon and menu bar should be of course shown there.

One way of accomplishing that would have been to create a separate binary just for this usage and only set the setting in this property list. However, even without knowing much of OSX’ Carbon API, I came up with a better solution, inspired by what Qt does itself deep inside qapplication_mac.cpp if it stumbles upon the LSUIElement entry:

GuitoneStandalone::GuitoneStandalone(int & argc, char** argv)
: GuitoneCore(argc, argv),
{
#ifdef Q_WS_MACX
ProcessSerialNumber psn;
if (GetCurrentProcess(&psn) == noErr)
{
TransformProcessType(&psn,
kProcessTransformToForegroundApplication);
}
#endif
...
}

This unconditionally transforms such a background application to a foreground application with a dock icon and menu bar. So all I had to do was to check my calling arguments if the driver interface should be used and if not, create the correct QApplication instance which brings the application to the foreground. Nice!

Now I only have to fix this one, very weird behaviour of QMetaMethod::invokeMethod which does not accept my argument list… grumbles