Ich finde es ja sehr interessant zu sehen, wie man große Rechenzentren betreiben kann. Google spielt da sicher in der ersten Reihe mit – denn anders als andere Betreiber bauen sie sogar ihre Server selbst. Google hat eben den Vorteil, dass sehr dedizierte Maschinen verwendet werden, was wiederrum eine starke Optimierung ermöglicht. Interessant ist auch zu sehen, wie man mit Datensicherheit und Datenschutz umgeht.
Sicherlich ist Googles Verhalten nicht in allen Belangen vorbildlich, aber zumindest was die Technik angeht kann man kein schlechtes Wort darüber verlieren.
Leute, ich muss es mal loswerden: ich schau mir weder Filme im englischen Original an, noch lese ich englische Bücher (Ausnahme bilden Fachbücher). Unsere deutsche Sprache ist eine der schönsten Sprachen dieser Erde, die so viele Feinheiten und Möglichkeiten des Ausdrucks mit sich bringt – warum soll ich mir den Inhalt dann in einer extrem simplen Sprache wie Englisch anschauen? Jaja, die “Witze” und der “Inhalt” kommt da viel besser rüber – alles Quatsch. Ich habe bisher noch jede Story gut verstehen können und bin fast immer mit der Synchronstimme zufrieden. Also was soll der Mist?
Bei mir kommt der Eindruck auf, dass dieses Gerede ein Mittel zum elitären Gefühl für diese Personen ist. Besonders aus der Studenten-Ecke kommen ja immer wieder diese Aussagen – wenn man dann entgegnet, dass einem die deutsche Version reicht, wird man meist belächelt. Wie seht ihr das? Bin ich der einzige mit dieser Meinung?
Für den geneigten (Hobby-)Fotografen ist es immer ein Graus, nach einer Fotosession erstmal per Card-Reader oder per USB Kabel dafür zu sorgen, dass die geschossenen Bilder auch auf dem Rechner landen. Es dauert immer alles irgendwie zu lange und ab und zu vergisst man dann doch mal, die noch auf der Karte befindlichen Bilder, zu kopieren.
Die Abhilfe ist Eye-Fi – kurz gesagt eine SD Speicherkarte mit integriertem Wlan. In den verschiedenen Varianten kann die Eye-Fi Karte die Bilder direkt per Push an Laptop, iOS und Android übertragen, kann anhand “sichtbarer” Wlans in der Nähe seine Position grob bestimmen (z.B. in Städten) und auch (natürlich bei vorangegangener Konfiguration) die Bilder direkt zu Flickr, Piccasa und co. selbstständig hochladen.
Sehr interessant ist auch der endless Memory Modus, den alle Varianten (außer der günstigsten) der Eye-Fi beherschen: ist der aktiviert, werden neue Bilder automatisch auf das Zielgerät übertragen und anschließend von der Karte gelöscht – man hat somit also eine “unendliche” Speicherkapazität. Natürlich ist diese auf den Speicherplatz des Zielgerätes begrenzt.
Folgendes Video zeigt das Prinzip nochmal ganz cool:
Wie man sieht, dauert die erste Verbindung kurze Zeit, danach erscheinen die Bilder recht flott nach der Erstellung auch schon auf dem Zielgerät.
Das geniale an der Karte ist, dass sehr viele Kameras unterstützt werden. Um sicher zu gehen, ob die eigene Kamera darunter ist, kann man hier nachschauen: Eye-Fi Camera Check
Die einzelnen Varianten der Karte sehen so aus (die höherwertigen Karten haben immer die gleichen Features wie die darunterliegenden Varianten):
Eye-Fi Connect X2 – die einfachste und günstigste Variante. Die Karte mit 4GB Speicher kann die Bilder und Videos per Wlan übertragen oder auch direkt auf Portale wie Flickr, Piccasa hochladen.
Eye-Fi Geo X2 – Die Geo X2 kann die Bilder wie beschrieben mittels Wlan-Ortung mit Geo-Tags versehen und ist die kleinste Variante mit endless Memory Modus.
Eye-Fi Explore X2 – die Spezialfunktion der Explore Variante ist die Möglichkeit, dass die Kamera unterwegs über definierte Hot-Spots direkt ihre Bilder hochladen kann – dazu gehören HotSpots bei Starbucks, Mc Donalds, Hotelketten, usw. Außerdem ist sie die erste Variante mit 8GB Speicherkapazität.
Eye-Fi Pro X2 – Die Pro-Variante richtet sich, wie der Name schon sagt, an professionelle Anwender. Sie unterstützt den Ad-hoc Modus – also den Betrieb ohne extra Wlan Access-Point/Router. Außerdem kann man nur mit dieser Variante neben den Jpeg Bildern auch RAW Bilder automatisiert übertragen. Mittels Plugin ist sogar eine direkte Interaktion mit Lightroom möglich.
Fazit Obwohl ich die Karte selbst noch nicht ausprobieren konnte, haben mich die Daten und die Videos bereits überzeugt, dass das Teil echt rockt. Die nächste Investition wird auf jeden Fall die Pro-Variante sein, da ich ausschließlich auf RAW setze und die reine Jpeg-Übertragung eher als Spiellerei betrachte. Für normale Digitalkameras sind die einfachen Karten natürlich völlig ausreichend.
Mit ein bisschen Arduino Magie hat Patrick Dinnen (Chief Creative Technologist bei Media Lab Toronto) dieses wunderbare analoge Display für Twitter Nachrichten gebastelt. Mittels zweier Servos wird eine Sprechblase vor das Foto des jeweiligen Twitterers gefahren und der aktuelle Tweet dann per Beamer auf diese projiziert. Ein paar weitere Technische Details findet ihr unter medialabtoronto.ca.
Für uns sind die kalten und verschneiten Zeiten endlich wieder vorbei, aber schneller als man sich versieht, ist es wieder so weit. Wer dann noch mit dem Fahrrad unterwegs ist, wird mit physikalisch bedingt sehr geringer Haftung seiner Reifen zu kämpfen haben.
Was tut man dagegen? Richtig! Die Allzweckwaffe des Technikers zur Hilfe nehmen – den Kabelbinder:
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.”
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!
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.
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 😉