Germany, France against Google ( Protectionism at its best )

Have you heard the latest ideas of deeply concerned government representatives in France and Germany? Mastermind Sarkozy wants to raise a Google-Tax, German Secretary of Justice sees a urgent need to check if projects like Streetview conform with german law. While these thoughts are not a week old, the fight aainst Google Books is still present. Well, Google is the new enemy, that is obvious.

The overall public perception of Google in Germany is quite negative, but it wasn’t always. In the early years, Google was seen as a great company, very much like the “don’t be evil”-claim suggests. Over the years yet, this attitude has shifted towards an, in my opinion, overly critic one. The main concerns are privacy and the fear of an uncontrollably huge enterprise with almost unlimited power in the internet. While all of these fears are at least partially reasonable and justified, they are nothing more but a result of an organic development and the business model of Google. This development has only been possible by a number of components working together brilliantly: the idea, the team, the environment, and the time in which all of Google happened.

Contrary to other big players in the industry, no one was ever forced to use Google. Although this is a weak point, it’s still important in understanding why government programs to limit Google’s influence are set to fail. Google dominates the market not by a policy in which all other competitors are either bought or killed, it dominates the market by being the best. This is valid for GMail, the Google Search, Maps and many other applications. The consequence is simple: Users tend to use the best, that is, Google. A very high market share at the end is just a symptom for the lack of knowledge of other players involved, but no consequence of some evil tendency on Google’s side.

What about privacy? First of all, there is a discrepancy. While searching for people and last names is super-popular, this is only valid as long as the own name is not represented in any ( negative, compromising ) way. So basically, Google should fix the stuff people mess up on the internet, be it by uploading pictures or by writing private sex-blogs. Something Google will never do, because it’s simply not possible, and a search engine can’t be replacement for a responsible and conscious use of this medium.

The other privacy concern is the usage data Google gathers. This happens e.g. when you use GMail, the Google Search, Google Documents, and virtually all other products provided. This data is collected to improve the overall experience, e.g. by providing recommendations or remembering settings, by customizing results and so on. But this data is only collected once you start using Google. Google Analytics, using also cookies to track unique visitors, is by the way just a product provided by Google for Website owners. In case you feel offended by that, you should therefore contact the staff of any website in question, rather than Google.

What is clear to me after writing these few paragraphs: the Problem is not Google, the problem is the non-existence of any kind of competitor on this continent. Having been unable to create a sustainable Internet business in the last ten years ( help me if I’m wrong ) on the continent, instead of improving the conditions for IT-Startups, the education, this problem shall now be solved by reanimating the poor idea of protectionism.

The question should be, why we are simply unable to be a successful country when it comes to non-copied, innovative startups and great companies. And how to solve that.. I don’t know.

bored summary of the past day. / 750words, 1buckapp, java coding tipps

So, on this very exceptionally snowy day here in Stuttgart, i decided to procrastinate a bit and do some fun stuff. Because going outside would have been at least life-threatening, I decided that the most exciting adventure would be to clean the kitchen take a panorama image out of my 3 living room windows. Here it is.

After having mastered the fun part of the day, I had a really interesting skype call with a former colleague of mine who is now enrolled at UCL. We spoke about some projects we have been doing, and of course the upcoming ones. And I guess a sideproject of his, 1bucketapp.appspot.com, is really worth mentioning. I don’t know what to do with it, but maybe you can put it to use.

Another, at first sight, useless site is http://750words.com/, a project where everyone is encouraged to write 750 words every day. The texts are not published nor accessible to anyone else but you, so it’s a private diary for everyone who has a need for one. From my personal attempt to use it I can tell that 750 words is a lot.

The last interesting snippet of the day was a collection of tipps for keeping Java code clean and maintainable. Although the text dates back to 2001, it’s still of remarkabel relevance and definitely worth reading.

Netbook as PDF-Reader ( Ubuntu )

A buddy of mine made a great script allowing you to instantly rotate your netbooks screen 90°, which enables you to read PDFs more comfortable. You should definitely have a look at it, as its a nice addition to any ubuntu-powered netbook.

iType becomes qwerted, Google is dominating my life.

Hey again. Happy new year. First of all, iType is the first project that looks like it’s going to be finished in time. That allows for two conclusions: either, it wasn’t hard to built or I am finally becoming a good programmer. I admit, it wasn’t hard to build then. I expect it to be in the Android market at about 15-20 of Jan, but I’ll keep you updated then. I’m working on a new screencast, for the time being, see iType in old action. Oh, on public demand the name is going to change from iType ( which is, by the way, a name used my Monotype ) to qwerted. Qwerted seems 100% nonsense, so I like it naturally.

Twitter is still distracting me from everything, always. And it will keep doing so, it’s uselessness in perfection. Really great. If you want to follow me, it’s derwildemomo .

The next best thing is stackoverflow, a prototypic kind and polite community very focused on solving problems. If you haven’t heard of it ( impossible if you read this blog ), you should really visit it. Renders almost all programming-related discussion boards useless.

I need a Nexus One. So if you do have a Nexus One: I need it. Stay tuned, more to follow.

iType Demo Video online – finally getting real

iType, my project, is finally getting close to release state. But talking is boring, so here is a short demo clip. If you have any questions, please write to itypeapp @ gmail.com

I am looking for beta testers, so if you want to test it, please let me know!

iType Demo Video from Moritz Haarmann on Vimeo.

Related Blogs

RandomAccessFile weirdness explained, no buffers, just pain.

Ola! I’ve been coding a new android keyboard lately, a project for my university degree but also : for fun. While I was doing this, specially while implementing a file-based dictionary containing frequency information of all words stored in there, I stumbled upon a very, very weird Java-behavior.

Let’s explain it. Using RandomAccessFile, you have both Interfaces, DataInput and DataOutput ( and Closeable ) at your service. Wonderful, I thought, and started to use them. Well, two weeks and endless debugging sessions later I figured out why nothing worked the way it should: RandomAccessFile.

This little class is unable to provide the most simple functionality: Write a byte value, say 42, to a certain position, say 11223 in a file, then seek back to 11223, read a byte value, and make sure it’s the same. The reason for this odd, strange, undesired, undocumented feature? No shared buffers. In fact, no buffers, just for the explicit read and write operations ( they are mapped to native methods anyway ). So basically, everything should work fine in an unbuffered environment, with an operating system directly writing everything down on file.

Because virtually no operating system works unbuffered, RandomAccessFile doesn’t work. The working workaround is to sleep for some time or something alike.

By the way, I was only able to figure it out by looking at the openJDK source, an excellent source in case you’re wondering about some Java behaviour. And thanks to Marc Seeger for his help!

Gravatar Mac Address Book Support Updated for Snow Leopard

Because the bundle somehow didn’t work for snow leopard, now it does, and you can get it here. of course :-) . So basically, your mac adressbook is now able to get the gravatars again.. hrhr-

Google Docs Privacy, Latex knowledge, project update

Hey! I haven’t been writing here in a while, so let’s have some updates.

First of all, I noticed something Techcrunch was also writing about some time ago, that google doesn’t protect embedded images in private documents in _any_ way. So basically, everything you upload there can be treated as public.

Next thing, latex, the typesetting system, seems to be stuck in a time where character encodings where something rather bizarre, and for that reason has it’s share of problems with it. There are packages, like utf8 and utf8x to work around this issue, but it’s not perfect. What I’ve experienced, a strange error message telling me that

Package inputenc Error: Unicode char u8:  not set up for use with LaTeX.

And my way to get around it was to simply add the packages ucs besides utf8 to the preamble..

usepackage{ucs}
usepackage[utf8]{inputenc}

and everything is working fine now. great.

Last topic today is a project update. What’s going on?

  • A virtual keyboard for android with some nice effects, I’m doing this one together with Marc Seeger.
  • I just participated in the foundation of the Google Technology Usergroup Neckar-Alb ( A region in southern germany around Stuttgart ), and we hope to be able to provide the community here with some cool events in the future! If you want to participate or are just curious, be sure to check out our twitter.
  • I’m currently also writing a paper on distributed contact management, a really interesting field, stay tuned on that one.
  • Some hacking involved, but nothing releasable actually.

If you want some nice reading, I can really recommend two papers: the first one is on API design, and some kind of a .NET-rant, it’s called “API Design Matters” and is written by Michi Henning. The other one was written by Marc Seeger and is a practical overview of available Key-Value stores ( applause for NoSQL ). Get it on his blog.

The next weekend I’m going to spend in Hamburg, really looking forward!

Finally: WordPress Benchmark

So, there are no real benchmarks of a WordPress running in the wild available ( couldn’t believe it either.. ). So I got my ab and gnuplot friends and created one. The reason why I’m doing this that while developing ( or forking, to be honest, marc’s work ) i was curious what php can achieve. The answer is, as you will see, very sad.

I ran the benchmarks on two different machines. One of them is a xen-based virtual machine with 4gb of RAM and a dedicated CPU. The MySQL server runs on a seperate VM on the same physical device. The first graph shows the results at a concurrency level of 2, the second one a concurrency level of 5.

test1_s
test2_sThe second run was performed on the machine where this blog is hosted. All benchmarks are running against WordPress’ index.php, to not allow caching to falsify the results. The machine is also a virtual machine, enough RAM, slow cpu though. Please keep in mind that most people are using that kind of machines for their blogging, because dedicated machines are not exactly.. cheap. Anyhow, concurrency level 2. I didn’t bother to check what level 5 would have changed, because the time taken for the first one was already 20 minutes.

test1_m

For the sake of being mean to all PHP-lovers, I included a bench of an Rails-Application served from the very same VM as the first benchmarks. Of course, you can’t compare Rails to PHP. But still interesting, I think.

test1_k

Erlang-Slides

Alright, the slides are in german, so for the rest: sorry. I did this presentation for an interesting course at my university called “trending programming languages”, so if you like to learn a bit about erlang, go right ahead and read it.

Erlang-Presentation