Das Internet als Gesellschaftsbetriebssystem

Muss man nicht viel zu sagen – ein tolles Beispiel, wie man gut präsentiert und ein sehr umfangreiches Thema lustig und doch interessant rüberbringt: Der Vortrag von Gunter Dueck auf der re:publica 2011.

Kracher-Zitat: “Wenn Sie Lehrer sind z.B. …. Sie haben nichts mehr.”

via derwebarchitekt.de

It gets better – für mehr Toleranz

Ein Thema, welches in der heutigen Zeit leider noch immer einen äußerst negativen Touch hat, ist die Homosexualität. Ich selbst hatte noch nie ein Problem mit Schwulen und Lesben und das wird sich auch nicht ändern. Scheinbar sind aber noch sehr viele Menschen der Ansicht, ihr – bei diesem Thema leider stark durch Religionen verzerrtes – Weltbild anderen aufzwingen zu müssen. Hinzu kommt, dass vielen Kindern Homosexualität von vornherein als falsch eingetrichtert wird. Das bedeutet für die Betroffenen sehr viel Leid – Selbstmordgedanken und auch ihre Umsetzung sind leider keine Seltenheit.

Die Frage ist doch: ist es ein Menschenleben wert, die eigene Meinung aufzudrücken? Ich denke nicht.

Das “It Gets Better Project” ist eine Initiative, welches es sich zur Aufgabe gemacht hat, positive Aufklärung zu betreiben. Gestartet wurde das Projekt durch Dan Savage, einem Kolumnisten und Autor, der mit seinem Partner Terry im September 2010 ein Video bei Youtube eingestellt hatte, welches jungen Menschen in der Situation vor dem Coming Out helfen sollte.

Das Video erfreute sich großer Beliebtheit und 2 Monate später begann die Bewegung “It Gets Better” weltweit Verbreitung zu finden – mit über 10.000 entsprechenden von Usern kreierten Videos. Die neuste Entwicklung ist nun, dass sich auch Berühmtheiten mit eigenen Videos beteiligt haben – darunter bekannte Namen wie Barack Obama, Hillary Clinton, Colin Farrell und Ke$ha. Mittlerweile beteiligen sich auch große Firmen wie Apple, Google, Pixar, Facebook usw. Und dabei kamen folgende, wunderbare Videos heraus, die wirklich ergreifende persönliche Geschichten erzählen:

Das Ziel des Projekts sollte natürlich eine maximale Verbreitung sein – daher auch diese Post. Ich würde mich freuen, wenn ihr zur Weiterverbreitung beitragen würdet – seht es also auch gerne als Blog-Stöckchen!

Links
it gets better project

Was macht einen guten Programmierer aus?

Quelle: Geek&Poke

Nach nun knapp 6 Jahren in der Programmierung und mehreren kleinen und großen Projekten, habe auch ich mir ein Bild von der Welt der Softwareentwicklung machen können. Ich konnte einige Charaktäre kennenlernen und für mich haben sich bestimmte Punkte herauskristalisiert, welche meiner Meinung nach einen guten Entwickler ausmachen.

Beginnen wir erstmal mit dem handwerklichem Teil, den wohl jeder Entwickler drauf haben sollte. Neben Syntax und Semantik gehören auch Kenntnisse der Wirkungsweise von Programmiersprachen, Netzwerktechnik, Computertechnik im Allgemeinen, Design Patterns, Datenbanken, Betriebssystemeigenheiten usw. zum Erfahrungsschatz. Erst wenn man das komplexe Zusammenspiel dieser Komponenten versteht, so kann man auch alle Probleme, die da so kommen mögen, lösen.

Ein anderer Punkt, und den finde ich besonders wichtig, ist die Erfahrung. Entwickler, die eine Programmiersprache beherschen, können zwar schnell neue Sprachen erlernen, weil sie sich fast alle ähneln oder zumindest die gleichen Prinzipien verfolgen (hier gibt es natürlich Ausnahmen). Aber auch wenn der Entwickler die neue Sprache erlernt hat, so kennt er bestimmte Eigenheiten eben erst, wenn er auch eine gewisse Praxis hat (min. 0,5 – 1 Jahr). Das hat Auswirkungen auf die Geschwindigkeit des entwickelten Codes und natürlich auch auf die Produktivität des Entwicklers. Meiner Meinung nach ein häufig nicht bedachtes Problem.

Ein wichtiges Kriterium für einen guten Entwickler ist seine Arbeitsweise. Man kann streng nach Lehrbuch programmieren, man kann aber auch lösungsorientiert an ein Problem herangehen. Obwohl ich mich möglichst an die Konventionen halte, so bin ich doch auch öfter mal der lösungsorientierte Typ. Ich denke einfach, das man immer eine gute Balance zwischen Lesbarkeit des Codes und aber auch dessen Performance halten sollte. Natürlich macht es Sinn, streng objektorientiert zu entwickeln, an manchen Stellen kann dies aber sowohl in der Lesbarkeit als auch in der Geschwindigkeit des Codes negative Auswirkungen haben. Es ist aber von Fall zu Fall unterschiedlich – und die Grenze zum Gefrickel ist hauchdünn.

Quelle: Geek&Poke

Neben der Art und Weise, wie man seinen Code strickt, hat natürlich auch die Verwendung von Kommentaren und geeigneten Funktions/Variablennamen einen sehr großen Einfluss auf die Lesbarkeit. Meine Devise: lieber eine Funktion “getLoggedInUserData()” nennen als “getData()” – sagt beides das gleiche aus, jedoch gibt erste Funktion deutlich mehr Randinformationen und beschleunigt so sehr schnell das Verständnis für den Code. Wie lang eine Funktionsbezeichnung oder ein Variablenname ist, hat keinerlei Auswirkung auf die Ausführungsgeschwindigkeit – denn beim Kompilieren werden die Namen sowieso verworfen. Also warum geizen, wenn man diese Fähigkeit gut ausreizen kann. Natürlich sollte man es auch nicht übertreiben und zum Schluss Funktionen wie “todayIsAGoodDaySoGiveMeTheUserData()” nehmen 😉

Dokumentation des Codes ist natürlich immer ein leidiges Thema. Ich persönlich bin eigentlich immer ganz froh, wenn wie oben beschrieben Variablen und Funktionen selbsterklärend sind und sich doch ab und zu eine Kommentarzeile im Code verläuft. Wenn ich dann noch eine zusätzliche Dokumentation erhalte, die mir grob einen Gesamtüberblick über das System verschafft, bin ich schon glücklich. Als Entwickler kann man sich, mit etwas Erfahrung, sehr schnell in Systeme “reindenken” – gibt es dann dazu eine automatisiert generierte 1000-Seiten Doku, wird zumindest bei mir der gegenteilige Effekt erziehlt.

Sätze wie “Kommentare schreibe ich dann später rein” kennen wir wohl zuhauf – und seien wir mal ehrlich: in diesem Fall wird es nie einen Kommentar geben. Ein guter Ansatz ist daher, zuerst den Klassen- oder Methodenrumpf zu bauen, grob zu dokumentieren und erst dann mit der Implementierung zu beginnen.
Optimalerweise kann man abschließend noch ein paar erläuternde Kommentarzeilen verpacken und schon hat man wieder deutlich zur Verständlichkeit beigetragen.

Fazit
Ein nettes Zitat, welches ich kürzlich gelesen hatte, sagt folgendes: “Entwickle immer so, als ob der Typ, der den Code später warten muss, ein Psychopat ist, der deine Adresse hat.”. Besser kann man es wohl nicht formulieren 😉

Links:
Geek&Poke (Bildquelle)

Xbox 360 Games/Spiele tauschen

Heut schreibe ich mal wieder nen Beitrag in eigenem Sinne: ich möchte gerne ein paar Xbox 360 Spiele tauschen. Dafür liste ich hier die Spiele auf, die ich anzubieten habe. Darunter findet ihr die Liste mit Games, die ich gern im Gegenzug haben möchte. Falls etwas für euch dabei ist, meldet euch per Kommentar oder per Mail.

Ich habe folgende Games im Angebot:
GTA IV (FSK 18)
GTA IV – Liberty City Storys (FSK 18)
Operation Flashpoint – Dragon Rising (FSK 18)
Mafia 2 (FSK 18)
Kayne&Lynch 2 (FSK 18)
Call of Duty 4 (FSK 18)
Lost Planet (FSK 16)
Stranglehold (FSK 18)
Assasins Creed (FSK 16)
James Bond – ein Quantom Trost (FSK 16)
Quake 4 (FSK 16)

Ich würde gerne gegen folgende Games tauschen:

Red Dead Redemption
Call of Duty 7
Fallout 3 Add Ons (hab bisher nur das Original)
Fallout – New Vegas
Homefront
Overlord 1&2
Half-Life 2: The Orange Box
Tom Clancy’s Ghost Recon – Advanced Warfighter 1 & 2
F1 2010 – Formula 1
Need for Speed: Hot Pursuit
Mass Effect 1 & 2
Halo: Reach
Bulletstorm
Metro 2033
Tom Clancy’s Splinter Cell: Conviction
Medal of Honor (das aktuelle)
Saboteur
Crysis 2

Der Fernbedienungs-Störsender

DIE Abhilfe für alle Männer, die in den eigenen 4 Wänden nichts mehr zu sagen haben: der TV Remote Jammer. Ist das Teil aktiviert, so sendet es konstant IR-Signale und stört somit alle anderen Sender wie z.B. andere Fernbedienungen – mit dem Ergebnis, dass das eingeschaltete TV-Programm nicht mehr geändert werden kann 😉

Die Bauanleitung findet ihr hier: instructables.com

via hack-a-day

Kinect + 3D Drucker

Wow, es vergeht kaum eine Woche, in der nicht irgendjemand ne extrem coole Verwendung für Microsoft Kinect findet.

Die Jungs von blablabLAB (Künstlergruppe?) aus Spanien hat in Barcelona eine Installation aufgebaut, die kleine Plastikfiguren nach dem Vorbild von echten Menschen baut. Das “Vorbild” muss sich einfach auf eine Plattform stellen und wird mittels 3 Kinects in 3D erfasst. Anschließend “druckt” ein 3D Drucker die per Blender aufbereiteten Daten und heraus kommt eine kleine Figur.

Wirklich sehr beeindruckend, aber seht selbst:

via engadget

intelligente Videokonferenzen mit Kinect

Endlich mal eine ziemlich intelligente Art und Weise, Kinect zu verwenden – abseits des üblichen Versuchs, das Minority Report – Interface nachzubauen.

Wissenschaftler des MIT Media Lab haben eine Software entwickelt, die Videokonferenzen intelligent macht. Unter anderem erkennt das System, wer gerade spricht und hebt die Person hervor, gleichzeitig wird auch gleich ein Counter über allen Personen angezeigt. Der gibt an, wie lange die jeweilige Person bereits gersprochen hat.

Die Hervorhebung der sprechenden Person wird dadurch realisiert, dass das komplette Bild – außer natürlich das Gesicht des Sprechers – mit einem Weichzeichner überzogen und somit verschwommen dargestellt wird.

Wie man im Video sehen kann, funktioniert das Ganze schon relativ gut, auch wenn die Sprecher-Erkennung noch nicht immer ganz akkurat verläuft.

Die einzelnen Teilnehmer können auch einen Freeze ihrer selbst veranlassen, womit das aktuelle Bild eingefroren wird – natürlich nur der Bereich des jeweiligen Teilnehmers. Hat man dies aktiviert, so kann man etwas anderes tun, ohne, dass die Konferenzteilnehmer dies sehen können.

Sollte die Erkennung bald einwandfrei funktionieren, so kann man Videokonferenzen damit echt aufwerten. Auch die Möglichkeit, weitere HUD-Informationen zu den einzelnen Personen kontextbezogen anzeigen zu können klingt ziemlich verlockend.

via engadget.com

Akku Verwaltung

In der Welt der Gadgets sind wir umgeben von Akkus – seien es proprietäre Modelle, die vor allem bei Digitalkameras zum Einsatz kommen, oder aber auch einfach nur die normalen AA-NiMH-Akkus.

Sind die proprietären Varianten meistens mit einem Mechanismus ausgestattet, der den aktuellen Ladestand zuverlässig anzeigt – sei es nun am Akku selbst, oder in der Kamera – so hat man bei den normalen Akkus in Batterieform das Problem, dass dort der Ladestand nicht so leicht zu bestimmen ist. Selbst, wenn man die Teile in die Kamera steckt, so werden sie meist erstmal als voll angezeigt, verlieren dann aber umso schneller ihre Kapazität. Also hat man das Problem der Unterscheidung.

Und dafür habe ich einen netten Ansatz gefunden:

Alles, was man braucht, ist eine geeignete Aufbewahrungsmöglichkeit und eine Markierung, ob der Akku voll oder leer ist. Simpel und doch genial.

via hack-a-day