Gigabyte M6900 Gaming Mouse review

More than a week ago I didn’t even know that Gigabyte produced mice but I’m pretty broke and my Logitech mouse somehow has a very weird issue where it clicks twice when I want to click once sometimes.

Anyway, the Gigabyte M6900 comes in pretty awesome packaging. It actually comes in a black plastic case that I wouldn’t mind showing off.

The mouse itself looks very nice. It has a fairly wide base that I wasn’t used to, but now think is pretty comfortable. It has the usual 2 thumb buttons and a mouse wheel button. You can also move the mouse wheel to the sides for 2 additional buttons.

On the top there are 2 buttons to set the dpi and 3 LEDs of which 2 are showing dpi settings while the bottom one is always on.

I thought it was very nice that everything just works after plugging in the mouse. No hassle of installing additional software. And the mouse is very precise and has a nice feel.

Most of all, I bought it for 23 euro (it’s on amazon.com for $24.99) which is far lower than a comparable mouse from Logitech which doesn’t look as nice. The only thing that I think it needs is the button to change to smooth scrolling that Logitech has (I like the rasterized scrolling most of the time but for fast scrolling the smooth thing is nice).

In summary it’s a great mouse for the price.

Thoughts about the Go Language

and programming languages in general

As you can read on my about me page, I have pretty much always been into learning new languages. This is more true for programming languages than spoken ones, but I do think I’m fairly good at this english one. So recently (shocking since it hasn’t existed that long) I came across Google’s Go language and I have been reading about the features of the language and the design choices the inventors have made.

Now I have to say that I have thought about designing my own programming language for quite a while now (almost a decade) and while I haven’t even started trying to implement it I have spent quite a bit of time writing down features it needs to have, features that are nice to have, etc. Now there are some obvious features that every recent language seems to have, like Object Orientation, Threads, C-style syntax, etc. I was quite surprised that Go went a different way on a few things that seem obvious at first.

Go doesn’t quite have Classes, that is to say that it doesn’t have Inheritance. That seems like a glaringly obvious mistake on their part, but since they had some very smart people think about it for a long time, I’m more inclined to trust them on it than myself. The interesting thing here is Interfaces (no grammatically this makes no sense, but I’m leaving it). If an Object has all the same interfaces as another Object what purpose would there be in the Objects not being interchangable. If it could be used as a different Object without anything failing, why wouldn’t it be allowed to.

C-Style syntax is another thing that’s seemingly obvious, but everyone differs from it a little bit (and they all kinda have to since C doesn’t have classes). Go doesn’t really go that far off the beaten path here, but some things are noteworthy. Variable declarations are the first and most obvious thing. I don’t think turning everything around is a good idea really, but I can live with it. In C# you have someclass somename = new someclass(arguments); which I will be the first to admit is a bit redundant. Still I would have probably gone with: new someclass(arguments) somename instead of the Go equivalent somename:= someclass(arguments).

Semicolons are gone as well. You still can throw them in there to end a statement if you want to have more than one statement in one line of code, but for the most part you probably won’t be using them. I have always thought that that was the way it was supposed to be, but I did favor the consistency of the semicolon over just ending a statement at the end of a line like VB. So here I can have both.

Last, for this post anyway, we have Threads. With every living being having a multicore processor this seems obvious. We do need concurrency. There just isn’t a way around concurrency anymore. The obvious choice seems to be using threads. It’s what everyone else does and it’s fairly simple to implement. You can just let the Operating System’s scheduler figure out when to give another thread the ability to do something. After thinking about this for a long time and writing a few multithreaded programs I have always favored erlang style concurrency. You need a way to pass a message to a different thread and using global (omg !) or shared variables doesn’t seem like a very safe way to do it. Everything else (locking, mutex, etc.) just seems like a workaround for the initial mistake.

So would I make the same choices (after reading a lot about Go) ? Mostly I would have to go with yes. In loops you don’t need the brackets if you have to have the curly braces, same with if statements, semicolons also seem redundant at the end of a line, so I would stick with all that. Concurrency is also an easy one, I like the way Go does it. Classes is where I would go the old fashioned way, but I might well change my mind on it, because Duck typing seems much easier for the programmer. You don’t need to figure out long class diagrams before you write the first line of code.

In short the inventors of the Go language are obviously much smarter than I am, so I’m not really surprised that they changed my mind about a lot of features of a programming language.

Umsonstkultur und Piratenpartei

vs Abmahnkultur und Content-Nazis ?

Heise online veröffentlichte gerade einen Artikel mit dem Titel “Kreative wenden sich gegen ‘Umsonstkultur’ und Piratenpartei” und ich muss halt auch einen Kommentar abgeben.

Es ist unbestritten, dass es sowohl eine Umsonstkultur als auch eine Piratenpartei gibt, jedoch muss man mit keinem der beiden einen Krieg anfangen, schon gar nicht wenn man nicht ganz versteht worum’s geht.

Es soll ja Leute geben die für nichts Geld bezahlen wollen, egal wie viel arbeit in deren Herstellung geflossen ist. Auch ich konnte mich zu dieser Gruppe zählen als ich mich noch im jugendlichen Alter befand. Aber ich zählte mich eher zur anderen Gruppe von Leuten, die sich einfach nicht leisten konnten die ganze musik zu kaufen die gerade neu auf den Markt kam. Zu der Zeit war aber einiges erlaubt was man jetzt versucht unmöglich zu machen und zu verbieten. Ich habe gerne Kasetten gekauft um diese Freunden zu geben, die mir darauf CDs aufgenommen haben. Ich hab das gleiche für meine Freunde auch getan. Dann hat die Musik Industrie versucht kopierschutz auf die CDs zu packen um das zu verhindern. Warum ? Gab es nicht genug umsatz ? War man vielleicht nur zu gierig ? Zur gleichen Zeit fing auch die sache mit den illegalen Musik Downloads an. Ich erinnere mich nicht wirklich an den Zeitpunkt, ich weiss nur, dass ich weit unter 18 war und es war vor der Jahrtausendwende.

Da hatten wir dann die Musik Downloads über die die gesammte Industrie klagt. Was kam danach ? Klagen. Sowohl gerichtliche als auch wörtliche. Noch und nöcher. Jahre lang. Was kam nicht ? Legale Downloads. Jahre lang….

Es schien als hätte sich die Industrie darauf geeinigt, dass man niemandem erlaubt etwas zu kaufen was er umsonst haben konnte. CDs hatten einen Kopierschutz damit man sich keine Audio Dateien auf den Computer ziehen konnte, selbst abspielen ging auf einigen geräten nicht mehr, und verkäufe von Musik Dateien gab’s auch nicht. Man war also gezwungen entweder zu klauen oder Musik nicht zu hören. Und über zehn Jahre später beklagt man sich dann immer noch, dass das wozu man die Konsumenten gezwungen hat immer noch stattfindet.

Kurze Frage zum nachdenken: Was wäre passiert wenn es iTunes gegeben hätte bevor Napster sich verbreitet hat ?

Damit aber nicht genug. Endlich hat die Musik Industrie angefangen Musik auch online zu verkaufen und verdient nicht schlecht damit. Andere “kreative” sind so kreativ, dass es nicht mal Ideen gibt die schon existieren. Filme gibt’s nur mit kopierschutz und online schon gar nicht. Bücher sind sehr schwierig zu digitalisieren und falls es sie online gibt dann auch nur mit Kopierschutz. Ich kann Filme sehr einfach illegal im Internet bekommen. Kaufen kann ich sie nicht.

Deshalb: Solange es mir unmöglich ist etwas zu kaufen was ich umsonst haben kann, kann man sich auf der anderen Seite nicht über die Umsonstkultur aufregen.