Archive for the ‘Uncategorized’ Category

Exchanging a hard drive with Ubuntu LiveCD and gparted, disk image created with dd

Thursday, February 4th, 2010

The S.M.A.R.T. monitor has been warning about imminent failure of the hard drive in my mother’s laptop, so it was time to exchange it. Since it is running Ubuntu Linux (version 9.10, Karmic Koala), I was looking for ways to create an image of the old hard disk and transfer it to the new hard disk.

My initial googling didn’t immediately yield definite results, even though I found some comments mentioning “dd”. Therefore I wanted to quickly summarize the steps I have taken in case anybody else looks for something similar.

While I found forum threads recommending a variety of tools, they were usually several years old. Therefore I wasn’t sure if the recommended tools are still state of the art. Also I preferred a disk image over using the recovery mechanisms of the backup software (sbackup or rsync), as I wasn’t 100% sure if permissions and everything would work out OK on a fresh install of Ubuntu (probably, but a disk image just seemed cleaner).

Then I found this blog article about copying a disk with dd and decided to stick with it. Other than in that article, since I didn’t have a way to connect the new hd without installing it in the notebook, I first copied the image to another external hd. Then I exchanged the internal disk and copied the image back onto the new internal disk.

To do the copying, first boot the notebook from the Ubuntu CD (”Ubuntu LiveCD”), to run Ubuntu from the CD and not from the internal hd. That way, the conents of the hd don’t change during the copy process. Booted into Ubuntu LiveCD, I quickly changed the keyboard layout in the settings -> keyboard menu (it defaults to US layout, but I have German). Then I mounted the external USB disk by selecting it in “Places” (or clicking on it in Nautilus, the Ubuntu file explorer).

Then open a shell, and create an image of the internal hd by executing

sudo dd if=/dev/sda of=/media/name_of_external_disk/image_name

The sudo might be optional, in my case I needed it because the external hd was only writable for root. If the external hd doesn’t have a name yet, you can assign one with GParted or Disk Utility (I forgot which).

This might take a while, depending on the size of the internal hd. The resulting image will be as big as the capacity of the internal hd. dd will copy the whole hd, no matter how much of it is used or not. Also dd does not give any progress reports, so just be patient.

As the article I linked to mentioned, it might be a good idea to check with
sudo fdisk -l /dev/sda that /dev/sda is the right hd (I recognized it because of the size).

Now, power down and exchange the internal hd, then boot up with the Ubuntu LiveCD again. Again, change the keyboard layout (if necessary) and mount the external hd. (I actually rebooted once because at the first time there was a hickup mounting the external hd. After the reboot it worked).

Then write the disk image back using

sudo dd if=/media/name_of_external_disk/image_name of=/dev/sda

(again, checking that sda is the right target with fdisk might be good).

If the new disk is the same size as the old one, that’s it. Otherwise, the partitions on the hd can be resized with GParted to make them use the whole disk. GParted can be started from the Ubuntu Administration Menu.

I had only one problem: the hd had a “normal” partition containting the main file system, followed by an extended partition that contained the swap partition. Somehow I couldn’t move the extended partition or the swap partition, and therefore I could not resize the main partition either. Eventually I figured that I should first resize the extended partition to fill all the remaining space. Then I could move the swap partition (which is inside the extended partition) to the end of the available space. That done I resized the external partition again to only be as big as the swap partition. After that I could finally resize the main partition to use all the remaining space (OK, except for 8MB that were left over because of alignment with the hd’s “Cylinders”, not sure if that was necessary or not). Before resizing/moving the swap partition it might be necessary to select “swapoff” for that partition on gparted, if the Ubuntu Live system has decided to use that swap space.

That’s it - again a scarily long text to describe a simple procedure.

A downside might be that it copies the whole disk, not just the used parts. Also there has to be enough space left on the external disk. Not sure if copying less could be achieved with some dd magic. I am pretty sure one could just copy individual partitions with dd, but not sure how to copy the disks partition table, master boot record and what not then.

Impressions from the iPhone Tech Talk in Berlin (kind of)

Tuesday, November 11th, 2008

The bad news is, Apple needlessly slapped a “confidential” sign across the tech talk today, so nobody is allowed to write anything about it or post any pictures.

I think I can nevertheless write some thoughts I took away, without giving away anything about the content of the sessions. So what I write might have been inspired by the lectures, or by something completely unrelated, like surfing a web site or talking to people.

Some things to know first: I left early because I got bored, so I missed roughly the last two lectures. Also, I don’t have an iPhone myself yet, and my friends would perhaps even describe me as an Apple hater. I really don’t like Apple’s restrictive policies, and I don’t even like OS X, but that is a story for another post. The iPhone is nice enough to make me overlook the general flaws of Apple. For one thing, I gave up on mobile games development with Java because it became too tedious to support all the available devices. The iPhone is one device (OK, strictly speaking three: old iPhone, iPhone 3G and iPod touch) that has sold several million times, making it possible to develop useful applications targeted at one device only. And Apple really got a lot of things right, I don’t think any other phone comes close in usability.

If I don’t have an iPhone yet, it is because I don’t like the conditions of the T-Mobile Germany contracts. Specifically the UMTS bandwidth limitation seems silly, since the iPhone makes it possible to surf normal web sites. So I would expect the T-Mobile bandwidth to be consumed rather quickly.

Without a doubt, a lot of fun can be had with the iPhone, and a lot of fun applications already exist.

What follows is mostly me venting my frustration about having to use Objective-C. I had to say it somewhere… It is not the only thing I took away from the tech talk, but it was a tech talk after all, so you can guess about the main topics. I had a nice idea for a possible iPhone app while dozing in the lecture, and I also met some nice people, so going there was not all in vain. Oh, and I got a T-Shirt, too.

Objective-C, the strange beast

My main gripe, however, is the programming language. Most people I talked to say that it is not so bad, but my programmer instincts make me shy away from Objective C for several reasons. Granted, most of them probably sound like nitpicking and my objections might make me seem petty. But I have become a programmer out of laziness, and so I absolutely can’t stand it if a programming language is making me do stuff that isn’t necessary.

Header files (Shudder!!!)

Objective-C seems to be a strange beast: on the one hand it apparently is “fully dynamic” (Apple speech), meaning among other things that methods are not statically linked at compile time. On the other hand it borrows from C and C++, with ugly pointers cluttering the code, but much, much worse, forcing you to write header files for your classes.

I am not a language designer, but for the life of me, I can not get these two aspects combined in my head (dynamic linking and header files) - either one feature seems to make the other one pointless. Dynamic means you can modify classes at runtime, so what is the point of the header files?

I have programmed in languages without header files for 10 years now, so I can confidently say that there is no excuse for header files. I think they only exists because of the laziness of the developer of the compiler. But then again, those guys had several years to improve their compiler. What is up with that?

For the non-programmers: a header file basically means that I have to program every object and method in my program twice. Once to tell the compiler that it exists, and once to actually implement it.

It is certainly not difficult, but just as certainly it is not fun. For someone with my condition it becomes very difficult to do because I generally have a very hard time doing things that I see no point in doing.

No garbage collection

Another gripe is that Objective-C for the iPhone does not have garbage collection, so the developer has to take care of erasing objects by himself. Curiously, many people I talked to seemed to agree that this makes sense for a mobile device, because resources are so limited. Well, it seems the recommended maximum memory consumption for an iPhone app is 25MB. I have developed games for mobile phones in Java that had only 800KB available as runtime memory, with garbage collection. No problem whatsoever. A slightly more plausible explanation: garbage collection usually runs in a background thread, and having that thread constantly running might consume more energy. But honestly, I don’t believe it, that is just a weak excuse.

Also, you don’t even manage memory directly in Objective-C, but you have to manually take care of the reference counters. This makes even less sense to me, because I don’t think that is what makes garbage collection difficult. Rather, I would expect counting the references to be compiled into the executable. There might even be garbage collection going on in Objective-C, something still has to free the memory when the reference count has reached zero, after all. Again, this just reeks of laziness on behalf of the developers of the compiler.

Maybe inserting the reference counting into the executable would inflate the memory footprint marginally, but honestly, these days the size of the code is never the problem. Most memory is consumed by the data, for instance images that are being loaded by the application.

Hungarian Notation (Shudder!!!)

One more unbearable thing I have seen in code snippets from Apple: it seems it is customary in Objective-C to use the useless kind of hungarian notation. That means it is customary to call a widget UIWidget instead of Widget, because it belongs to the UI. Joel On Software has the ultimate essay on hungarian notation and how it should be done, mandatory reading for every programmer in my opinion.

Again, this might sound like a non-issue, but it makes me feel almost like the heroine of William Gibson’s “Pattern Recognition” upon seeing the Michelin Man: it is almost as if I am psychologically allergic to this ugliness and extremely bad taste. It sounds innocent if you see just one line, but imagine thousands of lines of code littered with hungarian notation. It is unreadable, unless you train your brain to just not notice it. But why should I have to do this to my brain?

More ugliness

I have mentioned the pointers, something I also haven’t seen in years. Going back to using pointers makes me feel like coding in the stoneage, and they also look ugly. In the same category as the header files fall the interfaces (forgot their real name, but they work exactly like the interfaces in Java). I see no need for them in a dynamic language, so please don’t make me use them. At least possibly one really can get away with not using them, I don’t know for sure.

Hope in the form of alternative programming languages?

Which brings me back to my original gripes with Apple. Is there hope of relief in the form of alternative programming languages coming to the iPhone eventually? Apple certainly hasn’t leaked any plans, and worse, they officially outlaw interpreters of programming languages. The reason is clear: with an interpreter of another programming language (for example a Java virtual machine), people could circumvent the Apple AppStore and get applications from other sources.

This alone does not prevent other languages, though, at least I don’t think it does. I think it would still be legal to use an interpreter just for one’s own application, without exposing it to other applications. Or one could use another language that compiles to Objective-C. One such language seems to be Objective-J. Still, I think the rule against interpreted languages at least slowed development efforts for alternative programming languages for the iPhone.

There are rumors that there will be an adapted (=restricted) version of Flash eventually, but it is not yet clear if it will be possible to write iPhone applications with it, or if it will just enable web sites.

I have found a Lua bridge to Objective-C, but it doesn’t sound as if the iPhone is supported so far.

Personally I still have some hopes for Javascript. There already is a Javascript interpreter in the iPhone, coming with Safari, that can also be instantiated from within an iPhone application. I don’t know yet how much one can interface with the usual iPhone features from Javascript, and if it is possible to run Javascript without actually displaying the WebView (Safari/WebKit). Most people I talk to about this are of the opinion that one should write iPhone Apps in Objective-C to get to use all the fancy features, but I am not fully convinced yet. I hope at least for some apps on can get away with Javascript (obviously not if you are writing a 3d game), so it might be sufficient to get one’s feet wet in iPhone development. Even just to be able to write some parts of the application in JavaScript would be a relief.

Meanwhile, I keep hopes for finding alternative languages for iPhone development. Please let me know if you find any. I probably won’t use Objective-J, though, because it seems too proprietary for my taste. If I learn a new programming language, I want it to be as universally useful as possible.

Ultimately it is the end product that matters, of course. I have programmed in the Linden Scripting Language for Second Life before, which is the crappiest language I have ever seen. Nevertheless it was fun, because the things you could achieve with it were so much fun. Probably it will be the same with iPhone development. Once I really get started and get to see results on the phone, Objective-C won’t feel so painful anymore. Still, I wish there were other options. Options makes me remember: I have also heard people say that XCode is not all that great either, and apparently it is not so easy to use alternatives. Too bad.

Community Camp 2008 in Berlin

Sunday, November 2nd, 2008

Thanks to the Deutsche Bahn, who cancelled my trains to Munich that I wanted to take this weekend, I got to attend the community camp 2008 in Berlin instead. Basically, the community camp was like a Barcamp, but with a special focus on (online) communities. (Of course I also got to attend it thanks to the organizers who made it happen in the first place - a big thanks in their direction, it was great!).

It has been over for almost five hours now, but somehow I feel like I can’t think clearly at the moment. Since I can’t do any other work, I’ll try to gather some impressions from my notes and jot them down for the blog. Andreas has also written about the last session we attended, mobile communities.

I’ll try to be briefer than with my Barcamp Leipzig recollections. The main effect of barcamps on me is to fill me with all sorts of ideas, that might not even be directly related to the sessions I attended.

A/B testing for websites

The first session I attended was about the site relaunch of friendscout24 and how the used A/B testing to increase their conversion rate of new users by 10%. It was interesting to see an example of applied A/B testing. They used a tool called “Optimus” (apparently not exactly cheap) to automatically test variations of images, texts and structure of their start page. Optimus automatically finds the best combination. For example, allegedly the image on the start page did not make much of a different (variations like blond woman, dark haired woman, couples, romance, etc.) in Germany, but a huge difference in Italy.

It got me thinking about ways to integrate A/B testing into existing web frameworks like Ruby On Rails. It is a bit of a pity to have to resort to an external tool, if you know in advance that you’ll need it anyway. Maybe a lot of time and effort could be saved by integrating the possibility of A/B-Testing from the beginning.

Tchibo Ideas

The next session I attended was a presentation by the Tchibo Ideas page, an attempt at crowdsourcing ideas for new products that Tchibo could produce and sell. This interests me greatly, because there is hardly a product that I am fully satisfied with. I constantly wonder about processes that would enable “common people” to affect the products they can buy. I find it very frustrating to own a faulty product and not be able to do anything about it (sadly, the odds that the producer will listen to my complaints are very slim).

Personally, I have great hopes for Rapid Prototyping in the future, which means that hopefully people can produce the things they want in the form of Open Source Hardware. Open Source Hardware means that everybody can change the things they annoy him. It already works for Software - personally I am a Linux user because in many ways it supersedes other operating systems. But for non-programmers, it is still too difficult to change anything about Linux, so it is more tailored towards geeks (oversimplified - actually Linux is already very good for non-geeks, too). So it is very interesting how to make it easier for everybody to improve the products they use by themselves.

But I disgress - to my disappointment (but also relief, because it means I can still become a pioneer in that area), Tchibo doesn’t offer any special tools for ideas shaping. They offer the basic features you would expect: people can propose “problems” and “solutions”, that can be rated by the community. Similiar things were already seen at Cambrian House among others (famous examples include Dell’s ideastorm or Ubuntu brainstorm).

Usually I am very wary concerning creativity competitions where you might end up giving away your idea for a couple of hundred € (I think the most you can win at Tchibo is 10000€), because I fear the other party might make a whole lot more money from my idea. However, Tchibo seemed surprisingly fair - I am not sure if the option still exists if you submit an idea the normal way, but you can also opt to submit your idea to Tchibo privately first, in which case they evaluate it and secure all kinds of rights for you. They might end up producing your idea and giving you a share, which is the way it should be.

Also, it might be worth considering that even if your idea is potentially worth a lot of money, if you were never going to realise the idea, a couple of hundred bucks might still be better than nothing.

Also Tchibo wants to include the designers in their marketing campaign, that is, their picture might be on the final products and so on. Of course I can’t vouch for them (check out their terms for yourself), but it really sounded as if they were genuinely trying to be fair. I signed up for their service, even though reception in bloggerland was mostly bad - I think a lot of prejudice against Tchibo, but who knows.

A bit disappointing: most “problems” and “inventions” on Tchibo Ideas so far are really unattractive, for example when I checked yesterday somebody proposed a device for cutting spaghetti. For me, such a device is an abomination. There is already so much useless crap in our world, that I think we are doing a better deed by reducing the clutter in our households than by adding to it with luxury junk. On the other hand, maybe I should really get some of those clips for washing socks, because I truly hate sorting socks. (I plan to build a Lego Robot for doing that one of these days, but who knows when I’ll find the time - the clips are an easier solution).

I had to leave early on Saturday, so I missed out on a couple of sessions and the party. Although that reminds me, one big inspiration from the community camp and also the recent Barcamp Berlin: BEAN BAGS! They had bean bags (provided by CrownCrow), and it was a good reminder about how comfortable they are. I must get one eventually (Andreas recommends checking out the bean bags from Muji).

Support for communities, example “wer-weiss-was.de”

Impressive track record, apparently wer-weiss-was.de have been operating for 12 years now. To put that into perspective, according to Wikipedia the Mosaik browser by Netscape was released on October 13, 1994, marking the beginnings of the usable internet.

Anyway, they told some stories about their experiences with maintaining and supporting a community. I took away the recommendation of a tool called “OTRS” as an open source ticketing system, and got the idea to use Amazon’s Mechanical Turk for some moderation task (for example checking the safety of uploaded images). A lot of discussion was about the volunteering moderators. A recommendation for reading was A Group Is It’s Own Worst Enemy, but I haven’t read it myself yet. Another thing that might be worth considering is Slashdot’s fully automated moderating system, that assigns moderator powers and meta-moderator powers semi-randomly to it’s users. It might be too complicated for non-geeks, though.

Weltverbesserer-Communities (safe-the-world communities)

Next up was a session about communities that want to help making the world a better place. Again I have a special interest in that, not only because I would like to help make the world a better place, but also because I have proposed such a project at the StartupWeekend Hamburg last year: Debug The World. I would still be interested in doing that one of these days…

Unfortunately the session left me a bit unsatisfied. I jotted down a lot of links to existing “save the world” communities, but learned little about their inner workings. Ideology was a topic, but again little was learned on how to keep the ideologies on a site in check.

I felt reminded of a recent sociological experiment that showed how it was completely random what piece of music would become a hit, if users get to see other users preferences (Update: found article describing it, among other things, search for Salganik). The same could happen with a newly launched “save the world” site: the ideology of the first users might repel other users, so you are stuck with the ideology of the first users.

Ultimately I guess if you launch such a site, you have your own ideals, and will try to steer your community into that direction. I would not want fascists to use my tools to plan for their own idea of a better world, for example.

I am currently too lazy to copy all the links that came up in the session, so I can only hope sombody will eventually update the Community Camp Wiki. The speaker was working for Utopia.de, and I think two founders of Weltretter.org were in the audience sharing some interesting experiences. I wish them luck with their efforts…

Managing friends in social networks

PaulinePauline hosted a session about managing one’s friends in social communities. From the subject, I was hoping for something else: how to find new friends in social networks. Sometimes there are interesting web projects that I can not use for lack of participating friends. I have written about Twitter, another example would be Google Reader. I am curious about the sharing of blog articles among friends that Google Reader provides, but I can not benefit from it because I don’t know anybody else who uses it.

Pauline was talking about another problem, though: how to maintain your friends lists across social networks, and do’s and don’ts of the friend search in such networks. A major gripe is seeing immediately who you are already friends with in search results, but also being able to check out somebody’s profile from within the search results without having to leave the results list.

A nice touch is to use special information, for example “people that have many friends in common with you” or “people who have attended the same events as you”.

Discussion also touched possible solutions to the multi-account problem. Some networks already offer to import your friends from other networks. It seems quite feasible to attempt to copy someone’s friends from Twitter, for example, as many people show their real name in their Twitter profile. Another nice touch is to just assume a user is using the same username everywhere.

On the other hand, admitting to knowing too much about a user might creep them out. For example, it is possible to discover a users rough location by analyzing their IP address, but showing a user “people online near you”, many might be shocked that their location is known.

Another nice touch: Facebook for example tells you to connect a new user with some friends, if you invited them to the network. That way, the new users have an easier start.

I also had the idea for a service that registers your username on all new social networks. A problem could be that people could use the service to squat on usernames (like domain name squatting).

Mobile Communities

The last session I attended was the second part of a session that started the day before (which I had missed) about mobile internet and mobile communities.

Some tidbits: automatically logging one’s status might lead to a couple of problems. For one thing, if you suddenly stop logging (for example your location), it might arouse suspicion (jealous spouse). But even though, for example I would be a bit confused if I saw a friend was visiting my city and didn’t even call me. Or somebody is online at ICQ and doesn’t chat with you. Another interesting aspect: people like to start conversations from trivial things (like bad weather). If you already automatically log all trivial things automatically, you might take away some possible conversation starters. For example, you might not call a friend to say “hi, I am in Berlin” if your phone has already automatically logged the fact.

Qype was mentioned as a solution for discovering cafes nearby while on the road, but I am not sure if it can also filter for individual taste, which would be more community like.

I am interested in seeing product ratings on the go (for example by photographing a barcode of the product with my phone), and Kooaba was mentioned as an image recognition technology that might even make barcodes unnecessary. I was also shown BdSave$, which is apparently a product ratings app for the iPhone.

Talking about “augmented reality” was also interesting, Google Earth already recognises if you hold your iPhone vertically and switches to a horizontal viel of the location around you. So in the mountains, it might really be possible to see names above the summits of the mountains around you. And presumably, soon this technology combined with Google Street View will allow for advertising in the augmented real world.

That’s it for now…

Barcamp Leipzig (part 2)

Thursday, May 8th, 2008

continuing from Barcamp Leipzig (part 1)

Storytelling for Companies

I have difficulties to recount what I learned from Till’s presentation, although it gave a lot of food for thought. The subject is a bit hard to grasp for non-marketeers, though, and towards the end the main thread got somewhat drowned in too many off-topic comments from the audience. So we actually only got to see the first few slides of the presentation.

The basic idea (as I understood it) is to present your company in a way that appeals to audiences (especially journalists). Several classic motives of storytelling come to mind as a template. A popular example is “David against Goliath”. If you are a startup, chances are good that the story would apply to you. So rather than proclaiming “we have the best product”, you could tell the story of how you were dissatisfied with the status quo and decided to try to improve the situation against all odds. If you ever walked across an IT business fair like the Systems in Munich or the CeBIT, you might know what this is about. There are so many companies who sound exactly alike - “we solve all your problems, and we have the best products” - but it is never clear what they actually do. A very frustrating sight.

It really is hard to recount, because I think it will only become clear once you try it. I haven’t tried it, but I can imagine what it could be like. As Till and commentators said, often the story takes on a life on it’s own. People start to muse about possible continuations for the story, and you yourself start to fit yourself into the story.

A lot of the off-topic comments were from the “Alternate Reality Gaming” crowd, in my opinion they missed the point a bit, because that was not the kind of storytelling Till had in mind. I could be wrong, though. Eventually, they decided to hold their own session for Alternate Reality Games, which I also attended.

This marked the end of the sessions for Saturday. In the evening there was also a party for barcamp attendees, but since Andreas and I first went home to see my girl-friend, we arrived there only late, and we also didn’t stay long. I felt I had already exhausted my capacity for socializing for the day, so that there was not much point to being at the party.

Sunday unfortunately I had to leave quite early to catch my train, but I got to see two more sessions.

Alternate Reality Games

Alternate Reality Games are games in which a team of puppet masters sets up fake clues and circumstances in the real world, to allow players to play in an alternate reality. For example, apparently recently some people received parcels with mysterious contents, without ever having signed up for a game or ordered anything. Those inclined could start deciphering the clues and presumably stumble across the generated story. An early example was Majestic a game that would communicate with the players by phone, among other things.

I am not sure how big the marketing impact of these games is, as I never stumbled across them before, but usually communities form around solving the game. At the moment The Lost Ring appears to be a bigger ARG, sponsored by McDonalds (other links are listed on the barcamp leipzig page). It also has a german branch - apparently the story is that around the world several people woke up without memories, and the goal of the players is to help them on their way. One of those people is located in Germany. As an example for actions the presenter mentioned to meet for sports with that person (ie go running), or try to talk to him to cheer him up and so on. I find it hard to imagine - how can the person go running with hundreds of players? But of course it is interesting in a way. A younger me would probably have gotten excited about it, but at the moment I felt that “normal” reality is interesting enough and I don’t really need to get involved.

Apparently there are also grassroots movements of people trying to organize non-commercial ARGs, but often they underestimate the effort that goes into them, and they fail. Thing to remember.

AntMe

Tom from AntMe seems to be a genuinely nice guy, and to be honest, I envy him a little. I have always been interested in Artificial Life, but industry jobs in that area were rare. With AntMe, Tom seems to have found a way to make money with Artificial Life, Game Programming and getting girls interested in Computer Science. Of course he had to sell his soul to Microsoft to do that, but it seems a small price to pay.

But slowly from the beginning: AntMe is a programming game, in which you program ants to harvest sugar and fruits as fast as possible, all the time evading the hungry, ant-eating bugs. You can write programs to control the ants and upload them, to be rated in the Highscores list. There is also a multiplayer modus where you compete directly with other ant colonies.

That is just great, fantastic, especially as apparently Non-Programmers actually seem to get it and enjoy it. The ants are programmed in C#, which explains the Microsoft endorsement (basically, I guess they pay the bills and salaries): they use it to win people over to C#, possibly even make C# the first programming language they ever learn. It sounded as if AntMe also visits job fairs, girls-days and the like to present the ants and get people interested in programming. A few days ago apparently there was something like a “girls-in-science day”, so Tom got to present the ants in front of a large audience of teenage girls, who actually liked it. I can’t really get over this - it is even more amazing than earning a living with Artificial Life programming ;-)

The game itself is very nicely done, with cute 3d graphics. I was sceptic at first because the ants seem to know a few tricks that real ants don’t, but once you see them running diligently across the screen, you can’t help but like them. Tom also had lots of stories about the ways the AntMe community managed to outwit the programmers of the simulation. For example they created a kind GPS system which allows ants to go to absolute coordinates, something they were never meant to be able to do. I was also interested in the “Ticket Ants”, which seem to be among the most successful AntMe competitors: if a sugar heap is found, they calculate exactly how many ants are needed to carry it away, and create tickets for the task. Idle ants then start accepting the tickets and getting to work - you can’t get much more efficient than that. I am interested because I wonder if “logistics” can really perform better than nature - it seems for the virtual ants the answer is yes, but of course real ants face other constraints (they don’t have a centralized server, for example).

Sadly, my aversion against C# is too great, so that for the time being I probably won’t join in the fun. But who knows. I understand the reasons for it being C#, and for some people it definitely is a suitable language (like if you know you will always stay on the Windows Operating System). Actually, as a Java developer I used to be interested in C#, but now I think it is not different enough from Java to warrant the effort of learning it for me, and I want to move to dynamic languages anyway.

Barcamp Leipzig (part 1)

Thursday, May 8th, 2008

Last weekend I went to the Barcamp Leipzig. Location, weather and the attending people were brilliant, so it was a weekend well spent. Barcamps are also called “unconferences”, as they are conferences without a plan. There is no predefined schedule, instead, anybody from the audience can declare to give a talk or host a session on any topic they fancy. Most sessions are about computer stuff, but it is not mandatory. For example, at the barcamp munich there were also sessions on magic tricks and night photography. Many people decide to host sessions without having prepared very much, but it usually works well, because it ends up more being a discussion with the attendees of the session, rather than a frontal lecture.

There is always something that puzzles me about events like that, which is the way I, and maybe most others, socialize. Why do I talk with some people, but not with others? Usually in the beginning I talk to a lot of people, and nearing the end I hardly approach anybody new. It wasn’t that extreme this time, but there were still some people that I have never spoken to over the whole conference. Last year I went to a one week workshop in Amsterdam, and there were people I never talked to once. What I wonder: are the people I talk to the right ones, and if so, how did I know? Not to be misunderstood, I didn’t meet anybody I didn’t like at the barcamp, but there might be people that have the same interests and would really click with me, becoming co-founders for the next startup, and I might not even have talked to them. In any case, if anybody reads this: I am happy to hear from you, even if we didn’t exchange contact information.

This question gave me an idea for another project: analyze social graphs available on the internet to see how people socialized at barcamps. For example, there is a twitter account for the barcamp leipzig, and it seems most attendees who also use twitter decided to follow it. Now I could look a these people’s friends lists on twitter before and after the barcamp. If they became followers of each other shortly after the barcamp, they probably met at the barcamp. Then I could analyze their tweeds to determine their interests and similarities (maybe some other social network would be more suitable, for example Xing lets people list more specific interests than twitter).

Finally, a brief overview of the sessions I went to see:

Genetic Algorithms

Kennon decided to use slides from his lecture notes to give an overview of genetic algorithms. There was nothing new for me, but it was nice to meet somebody else who has the same interests. Also, the barcamp organization inspired a good area of application for the GAs: it would be nice to arrange the session slots in such a way that as few people as possible miss sessions they would have liked to attend. Maybe one of these days I’ll try to implement that for fun.

Open Street Map

I have known about open street map before, and I have high hopes for it: it is the attempt to generate maps from GPS data that is submitted by volunteers. Similar to wikipedia, everybody is allowed to edit the maps, but some geeky equipment helps. Somehow I had never given it a closer look, but the enthusiasm of the two presenters Claudius and Nathanael was infectious. Clearly, they were having a lot of fun scouting for uncharted terrain to close the gaps in the open map. For example, if they were driving somewhere and see an uncharted road, they would make a brief detour to collect the data for OSM. To me, it sounds as good a motivator as any other to go outside. Also, as I descibed in my article about GeoTags, I have become interested in maps recently, and having freely available data would be great.

I hope to contribute to Open Street Map in the future, unfortunately at the moment I don’t have a capable device. Actually walking routes with a GPD logger is not the only way to contribute, though. For example, Open Street Map apparently was the first online map to provide maps of Bagdad, which had been transferred from satellite images by volunteers.
It was great to see how quickly OSM is growing - you can watch the expansion of charted terrain over time.

Innovationsmanagement

This talk ended up being more of a brainstorming session than a lecture. Scout24, the employer of the speaker (Cindy Beer), is apparently wondering how to ensure ongoing innovation in their company. One strategy could be to look at ongoing “megatrends” and think about what needs they could produce in the future. Examples for megatrends being mentioned were the aging of society and the increasing use of mobile internet. For me, there was no “new megatrend” that I hadn’t heard of before. It would have been interesting to hear what scout24 thinks are the important trends for them, but the presentation did not get to that point because of the discussions with the audience.

Another problem is how to manage the innovation. For example, one approach would be to create a dedicated “innovation team” within the company. This could result in all the other teams becoming “uninnovation teams”, though. They might decidedly not innovate, or even worse, if any other team would innovate, the innovation team could feel threatened and try to undermine the other innovating teams.
Incentives are another problem. At least I feel that I would not like to give my best ideas to a company that I was employed for. If the company would make millions from my idea and I would get nothing but my paltry salary, I would feel cheated. So some kind of reward scheme seems necessary. It is not always obvious how to quantify the value of an idea, though. Not every idea translates directly to revenue for the company. If a team in the company is responsible for evaluating the value of an idea, the “innovation team” problem kicks in again. What if you have a great idea, but for some reason, the evaluation team doesn’t like it? O2 had a system like that - I think it was still better than having no means for employees to give input on new ideas at all.

For me that discussion reminded me about “prediction markets”, which are apparently successfully used by some companies. The idea is to create a market similar to the stock market, but people can bid on ideas with virtual money. That way, the evaluation of the idea happens through crowd wisdom, instead of single individuals. A public example is Yahoo! tech buzz, but some companies also use such tools internally.

Another point that was raised that to look for new ideas, one should not only think about problems that look for solutions. Sometimes just going for something fun works, too. I am not sure I am convinced: making something fun also solves a problem, the boredom or loneliness of people. But maybe only looking at everything as a problem really is cropping too many thoughts.

Twitter for Corporations

Twitter continues to boggle the minds of everyone, even the people who use it on a regular basis. Since I am a fairly new Twitter user, I was hoping to gain some new insights by this session on corporate twitter. The plan for the session was to look at several examples of corporations using twitter, but because of the unreliable internet connection, it did not work so well. Instead, there was a lot of interesting discussion with the audience. Some examples for corporate twitter blogs were available, though.

Fail: the Deutsche Bahn is twittering about problems with their trains in remote locations, which can’t possibly be of interest to a wider audience. However, some people in the audience questioned the authenticity of the twitter, they thought it was just somebody else posing as the Deutsche Bahn. It certainly seems to be becoming a problem, people are already registering other people’s domain names as twitter accounts to mess with their reputation.

Fail: Preisbock - they are an example of twitter spamming. Whenever somebody decides to “follow” you on Twitter, you get an email that informs you so. It is not required to follow back, but generally considered the polite thing to do. So some companies simply try to follow everyone, and a lot of them follow back. It is very comparable to “trackback spamming” for blogs. However, if it fails, you leave the target of your spam with resentments against your company. Not good.

Success: I don’t know, the presenters liked the twitters of bild and some other magazine whose name I forgot. Bild is of course the specialist for catchy headlines, so it is not a surprise that they do well on twitter (the main attribute of twitter being that messages are limited to 140 characters). They do the same they do with their headlines, short, catchy sentences that are almost impossible to ignore, even if you actually despise the newspaper. The other magazine was giving their writers turns to twitter about the things happening at the office. Some people liked it, but others thought it made a very unprofessional impression.

Success: Till from Sonntagmorgen.com was in the audience (and they provided excellent coffee for the barcamp). They have a twitter account for sonntagmorgen and as an example, track people twittering about coffee and follow them. That approach seems more acceptable than the random approach taken by Preisbock, although I guess technically it is still spamming. Sadly I forgot what else they do and how successful they are. I think Till is a very good marketeer, though, so I think they must be doing well.

Success: I don’t understand what betacamper does, but they were successful with viral marketing on twitter. The trick is simple: after signup, redirect the user to twitter with a prefilled form field saying “I just signed up to beta camper”. Users are just the press of a button away from spamming their friends with this message, and apparently many did so. Much more effective than the old “recommend to a friend” email forms. On twitter, you don’t need to enter your friends email addresses, and because of the short sentences, you don’t need to wreck your brain for something interesting to write to your friends. I am definitely planning to copy this approach.

Other interesting points in the discussion: some people thought that Twitter is just the same thing as an IRC chat. Andreas told me about a friend who some years ago really used IRC the same way people use Twitter today: hanging around in one channel all the time, messaging about things like “cooking something for dinner now” or “going to sleep now”. The difference with twitter is maybe that you are not constricted to a specific channel, and of course it is much more accessible than IRC. Everybody builds their own channel on twitter - most people said that twitter is more like background noise than a dicussion you follow closely. I asked some twitterers who follow more than 100 people how they do it, and to my surprise they admitted that they use filters to only see important messages. So twitter becomes a farce in the end: it is a symbolic act to follow somebody, but people do not really read each others messages in the end.

Still, I think Twitter has a lot of potential. The service itself is maybe too basic, but a lot of other pages build on Twitter, and some killer apps could emerge. I like the idea of mining the network, as I described above (who made friends at the barcamp), there are filters to see only important messages, and so on.

(to be continued - I have to leave for work now…)

Now blogging in english

Saturday, April 12th, 2008

A few weeks ago I started a german blog at bjoernguenzel.de. I finally wanted to use the domain to promote myself. However, I feel that blogging in english is much more interesting, especially when writing about information technology and other science subjects. Therefore I will probably write most of my new posts here, and limit the german blog to topics that are only relevant to Germany, or that already have had much traction in english, but less so in german.

Maybe a dual-language blog would have been more elegant, but to be honest I am not sure if WordPress supports it, and could not be bothered to set it up. Also, blinker.net is my primary domain, and bjoernguenzel.de was more of an afterthought.