280slides

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

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

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

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!

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

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

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

LSUIElement
1

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*

montone hackery

As promised a few days ago I’m writing a few words on the Monotone Summit which took place in Wuppertal from 28th of April to 4th of May 2008. I could only attend for five days because my train left already on early saturday morning, and I almost managed to get too late to it – must have been the absence of sleep, but lets tell the story from the start.

Before I arrived in Wuppertal on monday noon my feelings were a bit mixed about the event. On the one hand I had not attended anything like this before in my life, on the other hand I was completly puzzled what should actually happen there, because virtually no conversations or communication about possible topics happened on the mailing list beforehand. Given the fact that only seven people attended our little summit (me included) and none of the core hackers managed to ship over from the US, I was also unsure if it would actually become a success. Last but not least I was not sure if there was actually so much I could do for the project, being only a casual contributor who most of the time fixes UI / frontend bugs or works on the automation interface.

So after about five and a half hours train riding I found my way to the W-tec building and to the summit room we’ve been invited to use for the whole week. The ice broke pretty fast. Thomas Moschny, Dan Carosone and Lapo Luchini arrived earlier and were already discussing and working on different topics. Our hosts, Christof Petig and Siegfried Herbold, were also there and provided us with everything we needed (well, you know a programmer is satisfied if he gets coffein and occasionally something to eat :-)). Richard Levitte arrived later at the same day after getting horribly lost while navigating to W-tec by car. I must admit that I wouldn’t have done any better as a Swede in Germany.

Since our little crowd contained at least two interface gurus (Thomas Moschny, who is the author of TracMonotone and me obviously, the guitone guy), one of the main topics were improvements in the automation interface. We had and still have the strong belief that with a better, more complete interface it gets easier to connect monotone to all kinds of other software, thus increasing the uses and the amount of users over time.

Dan’s and Christof’s first topic was cvssync, which should help projects which are still stuck on CVS to get into touch with distributed version control much easier, by providing tools to push and pull contents from a CVS repository to and from monotone.

Lapo created a new grammar for selectors with the help of ANTLR which also led to many discussions during the summit (most of these discussions were lead by Dan :)).

On wednesday or thursday Lapo, Richard and Dan started on moving our existing, completly spammed MoinMoin wiki installation over to ikiwiki. The nice thing about ikiwiki is that it provides many different backends to version control systems, so our new wiki (temporary URL here) actually has a fully blown history, merge support and can be edited just from our local command lines – neat! My task later was to make it look a bit prettier and similar to what our front page looks like – easy, given the fact that I don’t do much else on my daily job…

Beside working on the automation interface (here especially ticker support for commands which need those, like f.e. push, pull and sync) I did some work on guitone. Lapo gave me input for the file diff dialog (which now displays correct line numbers).

Christof and me also started on thursday working on a TortoiseMonotone version. Christof stole some code from TortoiseHg (which astounded us is completly written in Python!) and wrapped his head around the Windows API, while I started the work on making interfacing with guitone possible, in particular preparing guitone on the other side to make it run mainwindow-less on request. This was actually pretty easy thanks to the fact that I introduced the dialogmanager wrappers in 0.7, so main windows and dialogs were only roughly coupled together.

(Lapo, Dan, Christof, Thomas M. and Siegfried [from left])

More stuff will probably fall out within the next versions of monotone and guitone, when more work and polishing is done on the projects which just started at the summit, so don’t expect that everything is already in place the next time you pull the development head of either project.

In the end these five days have been a great time for me, because I finally met some of the people I only knew from IRC or the mailing list and I got the strong feeling that the monotone community – despite of all the competition it has to face – is still alive and keen on working on this great software.

Christof was an awesome and gentle host for Richard and me during the time – we’ve had our own little appartment in his house and he managed to spend a lot of time during the summit for us even though he has a wife and two kids which obviously needed some care as well. This was not always easy, given the fact that our usual day started on 9:30am and ended between 12am and 2am in the morning. I guess he needs a vacation after this “vacation” – so Christof let me repeat my invitation: If you ever want to go east and visit Leipzig, you’re very welcome here!

(Richard and me)

Perverted Logic / Monotone Summit

If you like to have a laugh today, read this. Found via Rob Weir’s blog.


The Monotone Summit goes on and its quite fun to meet and work with all the people I just know from IRC or the mailing list. I mostly worked on automation stuff so far and improved some things in guitone. A longer blog entry with other impressions (and maybe some pictures) will follow within the next days…

The full story what has happened in Norway

Steve Pepper, the former chairman of the Norwegian mirror committee SC34, tells his version of the story which led to the YES vote on OOXML:

[…] at this point, the “rules” were changed. The VP asserted that “Ecma has clearly made steps in the right direction.” The most important thing now was to ensure that OOXML came under ISO’s control so that it could be “further improved”. However, the committee was not allowed to discuss this.

The VP thereupon declared that there was no consensus, so the decision would be taken by Standard Norway.

Halfway through the proceedings, a committee member had asked for (and received) assurance that the Chairman would take part in the final decision, as he had for the DIS vote back in August. It now transpired that the BRM participants had also been invited to stay behind. 23 people were therefore dismissed and we were down to seven. In addition to Standard Norway’s three, there were four “experts”: Microsoft Norway’s chief lobbyist, a guy from StatoilHydro (national oil company; big MS Office user), a K185 old-timer, and me. In one fell swoop the balance of forces had changed from 80/20 to 50/50 and the remaining experts discussed back and forth for 20 minutes or so without reaching any agreement.

The VP thereupon declared that there was still no consensus, so the decision would be taken by Standard Norway.

The experts were dismissed and the VP asked the opinion of the Secretary (who said “Yes”) and the JTC1 rep (who said “No”).

The VP thereupon declared that there was still no consensus, so the decision would be taken by him.

And his decision was to vote Yes.

(read the full story)

After leading the committee for over 13 years, Pepper recently stepped down from his position to protest against the this farce.