Tut nicht so als wüsstet ihr was ihr da tut!
vom 29. March 2012Es ist schon interessant zu sehen, wie sich das Internet entwickelt; Eigentlich hat niemand damit gerechnet, dass uns dieses Konstrukt so allumfassend vereinnahmt und überrollt. Keiner hat das vorausgesehen. Außer ein paar Spinner vielleicht. Und nun stehen wir da: Keiner weiß so recht, wie man damit umgehen soll. Jeder hat zwar eine grobe Vorstellung, aber seien wir mal ehrlich: Niemand weiß wirklich wie das ganze Anzupacken ist.
Vor dem Internet war alles klar geregelt. In jedem Land gibt es einen Gesetztestext und wenn der nicht aussagekräftig genug ist, entscheidet ein Richter wie dieser zu interpretieren ist. Das Internet passt nicht in dieses Muster, auch wenn sehr viele sehr angestrengt versuchen, die bekannten Muster darauf zu adaptieren. Leider geht das nicht so einfach -- denn das Internet ist etwas ganz anderes.
Im Internet geht es nicht um Ländergrenzen, Copyright oder Benutzeridentifikation. Das Internet ist da um zu teilen und uns etwas weiter zusammenzubringen (so ist zumindest mein subjektives Verständnis davon). All die Anstrengungen den Status Quo der analogen Welt im Internet aufrecht zu erhalten sind gescheitert und werden es weiterhin. Es ist nicht nur ein anderes Medium sondern etwas ganz anderes.
Die einen meinen sie hätten "es" im Griff, wüssten wie das Internet tickt und wie es in fünf Jahren aussähe. Einige vertrauen dem Internet komplett und gehen mit Facebook und Twitter komplett darin auf. Andrere haben Angst und versuchen mit allen Mitteln gegen alles Neue anzukämpfen. Wieder andere haben sogar so viel Ehrfurcht und Zweifel vor "diesem Internet", dass sie es nicht mal anrühren. All das ist berechtigt, doch sollten wir uns alle klar sein: Die Menschheit macht hier gerade einen Zeitaltersprung durch, bei dem keiner das Ende kennt und auch keiner jemals zuvor eine solche Situation durchgemacht hat. Dieses Situation ist für alle neu. Auch für die Musikindustrie, Großkonzerne, Entscheidungsträger, Gesetzesverabschieder und andere Staatsorgane.
Edit: Auch ganz nett und irgend wie passend zum Thema ist dieser Artikel von "der Netzgemeinde": Antwort auf den offenen Brief der Tatort-Drehbuchschreiber
Kommentar schreiben,
del.icio.us,
Es ist schon interessant zu sehen, wie sich das Internet entwickelt; Eigentlich hat niemand damit gerechnet, dass uns dieses Konstrukt so allumfassend vereinnahmt und überrollt. Keiner hat das vorausgesehen. Außer ein paar Spinner vielleicht. Und nun st
Die perfekte Lösung -- wieder einmal.
vom 18. November 2011
Ich bin stets bemüht (wie man so schön sagt) eine für mich akzeptable Lösung zu finden. Was das Editieren von Text angeht, bin ich schon mindestens ein Jahrzehnt auf der Suche nach der Lösung. Ich hätte ja gerne ein Vim, programmiert in Lisp, mit nahtloser GUI-Integration, dem Bundle-Konzept und den File-Explorer von Textmate und das ganze dann als "Plugin" für jede erdenkliche Texteingabe auf allen Computern an denen ich Text eingeben oder bearbeiten muss. Leider gibt es einen solchen Editor nicht und ich vermute mal, das wird in naher Zukunft auch so bleiben.
Deshalb habe ich in den letzten Jahren so einiges ausprobiert und die ein oder andere Behelfslösung geschaffen. Grund warum ich dem ganzen jetzt einen Blogbeitrag widme war ein Thread auf HN, in dem jemand seine .vimrc veröffentlicht hatte.
Als ich mir das Monster ansah, war ich irgend wie beruhigt: Ich bin nicht der einzige, der nach der perfekten Lösung sucht. Nur ging Steve einen anderen Weg: Er bog so lange an Vim herum, bis es halbwegs seinen Ansprüchen genügte. Ich habe seine Konfiguration nicht ausprobiert, ich glaube ich würde mich mit seinen Settings sowieso nicht zurechtfinden. Ich sah es eher als nette Anregung, die ein oder andere Option mal nachzuschlagen. (Wer sich übrigens einmal mit Vim beschäftigen möchte, dem seien meine Vim-Mastery Artikel ans Herz gelegt).
Viele Interessanter waren aber die Kommentare dazu: Dabei ging es hauptsächlich um Ansätze zur Lösung des "überall die gleiche Config"-Problems. Für mich habe ich es so gelöst, dass ich die wichtigsten Konfigurationsdateien in meiner Dropbox abgelegt habe. Symlinks zeigen dann von ~/ auf die in der Dropbox. Damit bin ich eigentlich immer recht gut zurechtgekommen. In meinem neuen Job habe ich allerdings mit einigen Servern zu tun, so dass ich dort nicht überall einen Dropbox-Client installieren kann bzw. überall meine Konfigurationsdateien herum kopieren will.
Mir schwebte da schon seit längerem eine Vision im Hinterkopf; ein simples Script das für mich den Benutzeraccount so konfiguriert wie ich das brauche. Gebe ich die Kontrolle des Servers an jemanden anders ab, soll natürlich die ursprüngliche Konfigurations wiederhergestellt werden. Einer auf HN hat den ersten Schritt schon so gemacht wie ich mir das gewünscht hatte:
wget -qO - bit.ly/newbox | sh
Simpel, einfach, funktional. Leider ist wie immer meine Situation etwas komplexer: Beispielsweise die Datei ~/.ssh/config ist logischerweise auf der Arbeit eine ganz andere wie bei mir zuhause. So sollte es auch bleiben. Teile ich mir einen Account mit einer anderen Person, will ich natürlich keine der Dateien in ~/.ssh/ "publizieren". Nicht nur Dateien an sich sind ein Problem, auch einzelne Zeilen. Auf der Arbeit brauche ich Dank Cygwin ein paar mehr Einträge in meiner $PATH Variable die in der Datei ~/.zshrc gesetzt ist. Es gibt natürlich einige Systeme wie Puppet die solche Probleme lösen, doch das ist mir alles viel und zu groß und zu mächtig und zu unhandlich.
An die SysOps da draußen: Wie habt ihr das Problem gelöst, wenn ihr es gelöst habt? Das würde mich mal brennend interessieren.
Ach ja: Diesen Blog-Beitrag habe ich natürlich in Vim geschrieben und am Ende in den Browser kopiert. Das "Mein Editor everywhere"-Problem habe ich also auch noch nicht im Griff.
4 Kommentare,
del.icio.us,

Ich bin stets bemüht (wie man so schön sagt) eine für mich akzeptable Lösung zu finden. Was das Editieren von Text angeht, bin ich schon mindestens ein Jahrzehnt auf der Suche nach _d
Sammelsurien
vom 6. November 2011Schon lange nichts mehr hier geschrieben. Eigentlich wollte ich das jetzt öfter machen, doch irgend wie war jedes Mal wieder etwas anderes wichtiger oder ich habe es nicht für würdig empfunden es der Welt kund zu tun. Um diesem Teufelskreis zu entgehen, gibt es heute einen ganz unspektakulären Blogbeitrag ohne große Recherche oder Tiefsinn (wobei, vielleicht doch ein bisschen).

In den letzten Wochen habe ich mich von zwei Web-Diensten verabschiedet, weil sie mir nicht mehr zeitgemäß schienen oder weil sich die negativen Veränderungen gehäuft hatten.
Seit etlichen Jahren schon verwalte ich meine Bookmarks mit verschiedenen Web-Diensten. Angefangen hat es mit Scuttle, einem PHP-Projekt, mit dem Bookmarks verwaltet werden können. Einige Dinge hatten mich daran gestört und als dann Delicious richtig hipp wurde, bin ich mit Sack und Pack umgezogen. Dort blieb ich einige Jahre und es hatten sich so einige Bookmarks angesammelt. (ungefähr 2500). Kurzzeitig hatte ich auch mal Mr. Wong verwendet, doch das war irgend wie nicht mein Ding. Delicious machte in den letzten Monaten und Jahren einige Veränderungen durch und lies dies seine Benutzer deutlich spüren. Die letzte "Rettung" des Projekts ist nun eine komplette Reimplementierung von Delicious, welche aber noch nicht mal im Ansatz das Beta-Stadium erreicht hat. Deshalb beschloss ich, meine Bookmarks einem zuverlässigeren und besseren Dienst anzuvertrauen und meine Wahl fiel auf pinboard.in.
Als ich dort meine Bookmarks von Delicious importiert hatte, entdeckte ich etwas, das ich die letzten Jahre schon befürchtet hatte: ca. 350 Bookmarks endeten mittlerweile im Nichts. In Delicious hatte ich davon nichts mitbekommen.
Ein ähnliches Drama offenbarte sich bei meinem zweiten größeren Umzug in diesem Jahr. Seit es den Google Reader gibt, hatte ich ihn verwendet. Zu Beginn der RSS-Ära noch mit nervigen Desktop-RSS-Readern herumhantiert, war ich Gott froh über den Google Reader. Endlich mal ein anständiges Tool das überall verfügbar war und sich gut bedienen ließe. Dabei blieb es dann aber auch etliche Jahre -- richtig neue Features gab es eigentlich nicht. Bis vor einer Woche: Der Google Reader wurde an das neue Google CI angepasst und dabei erlitt es das selbe Schicksal wie Delicious: Es wurde unbenutzbar für mich. Alles verhielt sich langsamer und träger, einige Funktionen verschwanden einfach und das Design war auch nichts für mich.
Florian erlitt ähnliche Qualen und beschloss, den Feedreader zu wechseln. Ich tat es im gleich und wechselte zu Tiny Tiny RSS, einer PHP-Anwendung, die im Prinzip das selbe wie der Google Reader macht. Die Installation war recht problemlos und meine Feeds von Google Reader konnte ich auch importieren. Doch hier erwartete mich ein ähnliches Schicksal: 41 Feeds waren nicht mehr existent -- die hälfte davon von Freunden die ich persönlich kenne. Das hatte mich schon ziemlich erstaunt. In Google Reader herrschte stets die heile Welt.
Das stelle ich mir nun zwei Fragen:
Die Features und Funktionen von ttRSS und pinboard schlagen um Welten die der von mir verwendeten Vorgänger. Ich wusste es nur nicht. Hätten mich Google und Yahoo äh AVOS Systems nicht mit ihrem Downgrade belästigt, hätte ich mich vermutlich nicht nach einer Alternative umgesehen. Geht es mir hier vielleicht mit anderen Dingen auch so und ich merke es nur noch nicht?
Das Internet mit seiner nicht zu bewältigenden Menge an Informationen wird mir zunehmend zum Verhängnis. Ab und zu komme ich mir vor, als würde ich Informationen wie eine gigantische Schneekugel einsammeln und vor mir herschieben. Die Sucht nach Informationen ist enorm, doch ich komme mit dem Verarbeiten nicht mehr hinterher. Eine Stunde auf HN oder Reddit und der Berg wächst weiter. Oft denke ich: "Hochinteressant, aber keine Zeit zu lesen, mach ich doch ein 'todo'- oder 'toread'-Tag dran". Ähnliches spielt sich in meinem Feedreader ab. Leider bleibt es meistens dabei und die Information verschwindet tief in meiner Bookmarkverwaltung oder als gesternter Artikel. Geht es nur mir so, oder kämpft noch jemand mit diesem first world Problem?
5 Kommentare,
del.icio.us,
Schon lange nichts mehr hier geschrieben. Eigentlich wollte ich das jetzt öfter machen, doch irgend wie war jedes Mal wieder etwas anderes wichtiger oder ich habe es nicht für würdig empfunden es der Welt kund zu tun. Um diesem Teufelskreis zu entgehen
Ein Versuch, die Motivation von Open Source zu erklären
vom 11. September 2011Der Grund,warum ich leidenschaftlich programmiere hat mehrere Gründe. Zum Einen ist es diese absolute Gleichheit und Fairness, mit der man unermütlich konfrontiert wird. Jeder startet mit den selben Grundvoraussetzungen. Es wird niemand bevorzugt, weil er einen Anzug trägt und viel Geld hat oder benachteiligt, weil er einen langen Bart und eine verschlissene Jeans trägt.
Compiler und Interpreter kann sich jeder kostenlos aus dem Internet herunterladen und installieren. Auf den meisten Computern sind bereits eine Hand voll davon installiert. Überall wo ein Browser läuft, wird eine mächtige Programmiersprache bereits mitgeliefert. Den geeigneten Texteditor gibt es ebenfalls gratis dazu. Damit hat jeder Programmier die gleichen Voraussetzungen und jedes Programm beginnt mit einer leeren Datei in einem einfachen Texteditor. Keiner kann sich eine bessere Startposition erkaufen oder irgendwoher stehlen. Jeder fängt gleich an. (Mal abgesehen von Biblitheken o.ä.)
Was man dann daraus macht, hängt vom Programmierer ab. Man kann sich daran versuchen, die perfekte Symphonie zu komponieren oder man wirft mit Farbeimer um sich wie die Blue Man Group. Der Charakter des Programmierers spiegelt sich in seinem Code wieder, so fällt auch schnell auf, wenn der eine Dinge vom anderen abkupfert. Natürlich gibt es auch den Mainstream der Best Practices, der versucht vordefinierte Formen zu liefern, so dass möglichst viele mit dem Code klar kommen. Für welchen Weg man sich entscheidet oder ob man von allem etwas nimmt, kann jeder für sich selbst entscheiden.
Das Programmieren im Allgemeinen fängt eigentlich schon viel früher an. Man hat eine Idee oder sucht eine Lösung für ein bestimmtes Problem. Man schleicht um das Problem, schaut es von allen Seiten an und versucht es zu knacken. Das Gefühl, die "perfekte" Lösung gefunden zu haben, ist dann als hätte man gerade den Weg aus einem richtig schweren Sudoku gefunden. Es gibt immer unzählige Möglichkeiten und Lösungswege; Stürtzt man sich direkt auf das Problem, stellt man meist irgendwann fest, dass ein anderer Weg sinnvoller gewesen wäre. In solchen Fällen muss man dann eine harte Entscheidung treffen: Zurückrudern, weitermachen oder umbauen? Oft ergibt sich auch während der Programmentwicklung ein besserer Weg, da man das Problem besser verstanden hat und deshalb die Lösung besser vor Augen hat. Das ist auch der Grund, warum die meiste Software mehrere Evolutionsstufen (Versionen) durchlaufen, bis sie stimmig und performant sind.
Grundvoraussetzung dazu ist natürlich, dass man seine Werkzeuge die man verwendet verstanden hat und damit umgehen kann. (Würde man einem Zahnarzt trauen, der seine Instrumente nicht im Griff hat?) In den allermeisten Fällen ist nicht der Computer schuld, sondern der Programmierer hat seine Wünsche nicht korrekt geäußert -- oder nicht gewusst wie man sie äußert. Es hat aber nicht nur etwas mit Wissen und Ausdrucksfähigkeit zu tun, sondern auch sehr viel mit Kreativität und dem Mut seine Gedanken zu verwirklichen. Feige Programmierer erkennt man daran, wenn sie stets auf altbewährtes setzen und Probleme immer nach dem gleichen Muster zu lösen versuchen. Nicht jedes Programm zählt Zahlen in Zellen und Spalten zusammen. Es gibt so unglaublich schöne Software, die nicht nur von außen schön aussieht, sondern auch als Programmcode ein Genuss sind sie zu lesen.
Die theoretische Informatik versucht seit Jahren vergeblich zu beweisen, dass die Anzahl der möglichen Programme endlich sei, schafft es aber nicht. Das ist ein schönes Gefühl -- das Gefühl unbegrenzter Möglichkeiten.
4 Kommentare,
del.icio.us,

[xkcd #743](http://xkcd.com/743/)
Der Grund,warum ich leidenschaftlich programmiere hat mehrere Gründe. Zum Einen ist es diese absolute Gleichheit und Fairness, mit der man unermütlich
Von der Fernsehgesellschaft zum Content-Provider
vom 30. June 2011Je länger ich das Internet verwende und darin lebe, desto mehr werden mir die Zusammenhänge, Trends und Veränderungen klar. Vermutlich geht es den meisten meiner Leser auch so: Wir sind eine Generation, die praktisch von Anfang an dabei war, als das Internet entstand. Wir wissen genau, wie sich Bandbreite im zweistelligen KBit-Bereich anfühlt und sind mit Fachtermini wie ROFL oder RTFM bestens vertraut -- denn "wir" haben es erfunden.

Doch wir sind nicht der Mainstream, an dem man irgend etwas ablesen könnte. Wir sind bestenfalls die, die sich Gedanken über die Probleme von morgen machen. Der Rest der Welt bekommt davon schlicht nichts mit.
Meine Eltern sind mit dem Fernseher aufgewachsen. Der reine Konsum von Information war allgegenwärtig. Man schaute in die Röhre und lies sich von dem berieseln, was das Hörzu Programmheftchen vorgab. Wer etwas auf sich hielt und es sich leisten konnte, kaufte sich einen zeitgesteuerten Videorecorder und entschied selbst, wann er was ansehen wollte. Das war aber vermutlich eine sehr geringe Minderheit.
Wir sind mit Computern und dem Internet aufgewachsen. Es war von Anfang an klar, dass es um geben und nehmen geht. Anfangs noch über das Usenet, dann über (oft in Perl geschriebene) Web-Foren wurde über technische Dinge diskutiert. Es ging aber fast immer darum, irgend welche Probleme zu lösen.
Später, als dann aus den Gästebüchern und Kontaktformularen Blogs wurden, rückte der Selbstdarstellungs-Charakter immer mehr in den Vordergrund. Es ging mehr darum, sich im Web zu präsentieren und sich ein Portfolio aufzubauen. Die Wiki-Phase vereinte dann die Selbstdarstellung mit dem "For the greater good"-Gedanken. Je mehr Menschen das Internet nutzten, desto mehr konsumierten den eigenen Text auf Wikipedia und Co. (und man wurde sogar zitiert oder komplett kopiert!).
Die Web-Foren hatten im Laufe der Zeit immer und immer mehr Features. Erst waren es nur private Nachrichten (holy shit, Nachrichten ohne Email!), dann das Anlegen von Buddies, Bilder hochladen usw. Daraus entstanden dann schnell unzählige Portale für so ziemlich jeden Lebensbereich in 20-facher Ausführung. Jeder wollte ein Portal haben, die Gier nach den meiste "Membern" fand ihnen Höhepunkt. Verständlicherweise überlebten nur einige wenige den anfänglichen Hype, der gescheiterte Rest dümpelt vermutlich noch heute auf vergessenen Webspace-Hostern herum.
Mit digg.com gab (ja, gab) es kurzweilig eine weitere Möglichkeit, ganz groß rauszukommen, ohne eine große Userbase zu haben. Man brauchte nur die richtige Headline und etwas Glück.
StudiVZ setzte auf dem üblichen Portal-Gedanken auf , doch da die Seite nach kurzer Zeit eine so unglaublich große Masse an Menschen an sich zog, wollte plötzlich jeder "drin" sein. Ursprünglich war das Portal nur für Studenten gedacht, doch schnell wurden die Felder "Hochschule" und "Studiengang" in der Eingabemaske für so ziemlich alles missbraucht. Kurse und Gruppen wurden zu Sammlerobjekten (wer hat die meisten Gruppen) umfunktioniert.
Als dann Facebook in die westliche Welt überschwappte, gab es die lang ersehnte general purpose Plattform für alle. Mit dem parallel wachsenden Smartphone-Markt war der perfekte Nährboden geschaffen, um der breiten Masse zu zeigen, dass das Internet keine reine Konsum-Apparatur ist.
Dabei bahnt sich (aus meiner Sicht) ein Problem an: Für Menschen, die mit Facebook das Internet kennenlernen, haben die persönlichen Daten keinen Wert. Eltern legen ohne nachzudenken einen Facebook-Account für ihr Baby an (inklusive Bilder und Youtube-Videos natürlich), geben sich keine Mühe bei der Passwortvergabe und geben bereitwillig all ihre Daten der ganzen Welt preis. Es ist fast aussichtslos, dieser Generation Dinge wie RSS oder den Vorteil von semantischen Daten zu erklären. Gruppen wie LulzSec oder Anonymous versuchen (versuchten) mit drastischen Mitteln auf diese Problematik hinzuweisen. Leider versteht genau die Zielgruppe für die sie gedacht ist, die Botschaft nicht.
Vielleicht braucht es ja noch 10 weitere Fälle wie bei Sony oder der CityBank, um das Thema Datensensibilisierung in den Köpfen des Mainstreams publik zu machen. Ich weiß es nicht. Vielleicht ist das der eingize Weg, man lernt ja bekanntlich am Besten aus Erfahrungen.
4 Kommentare,
del.icio.us,
Je länger ich das Internet verwende und darin lebe, desto mehr werden mir die Zusammenhänge, Trends und Veränderungen klar. Vermutlich geht es den meisten meiner Leser auch so: Wir sind eine Generation, die praktisch von Anfang an dabei war, als das In
No Route to Host
vom 28. March 2011Heute ist es Zeit für dich, Abschied von meinen Daten und mir zu nehmen. Du warst mir ein treuer Begleichter über fast einem Jahrzehnt. Anfangs hab ich dich überall mit hingeschleppt und dich mit fremden Netzen verkuppelt. Damals warst du hipp und neu, alle haben bewundert wie rank und schlank du doch bist. Sie haben sich nach dir umgedreht und gesagt "so klein, aber so viel Power und Potential!". Natürlich hattes du auch Neider, die meinten, dass man mit dir sowieso nichts ernstes anfangen kann. Sie drohten mir mit üblen Abstürtzen nach durchzechten Nächten. Du hast mir gezeigt, dass mehr in dir steckt!

Im Laufe der Jahre hab ich so einiges mit dir gemacht und oft hattest du es nicht leicht mit mir. Du musstest jedes Betriebssystem ertragen, meist sogar mehrere gleichzeitig. Von BeOS bis Slackware hast du alles mitgemacht. Nächtelanges Kernel-Compilieren, exotische Peripheriegeräte oder Windows XP: du warst dir zu nichts zu schade.
Ich weiß, ich war nicht immer fair zu dir. Das eine mal, als ich dich ganz unvorbereitet vom Netz genommen habe, tut mir leid. Ich stand einfach voll auf der Leitung und hab dich mitgerissen. Das war aber kein Grund, mich tagelang anzuschweigen. Das ich dich daraufhin zur Dateiablage verdonnert hatte, nimmst du mir hoffentlich nicht übel. Auch, dass ich dich alles doppelt ablegen lassen hatte, war nur zu deiner Sicherheit, das weißt du ja.
Jahrelang warst du eng verbunden mit meinen Daten und ein paar meiner engsten Freunde. Jede Nacht hast du dich mit meinem Kollegen in Frankfurt abgestimmt, tagsüber hast du dich bereitwillig von mir befüttern lassen.

Als du dann älter wurdest, wusste ich nicht mehr so recht, wie ich mit dir umgehen sollte. Du verhielst dich ab und an sehr merkwürdig und manchmal traute ich dir nicht mehr über den Weg. Auch konnte ich mit dir nicht mehr die Dinge machen, die man heute eben so macht. Die ständigen Operationen und dein imenser Verschleiß an Lüftern war irgend wann nicht mehr tragbar. Es ist jetzt einfach Zeit für mich, den Host zu wechseln.
Der Neue kann dich zwar nicht ersetzen, doch ist er um einiges pflegeleichter. Dich werde ich nun in den Keller abschieben. Dort wirst du dahinvegitieren, bis du an einem sonnigen Samstag beim Frühjahrsputz auf den Müll fliegst. Einen Organspendeausweis habe ich natürlich für dich ausgefüllt.
Lebe wohl und machs gut mein treuer Begleiter.
4 Kommentare,
del.icio.us,
Heute ist es Zeit für dich, Abschied von meinen Daten und mir zu nehmen. Du warst mir ein treuer Begleichter über fast einem Jahrzehnt. Anfangs hab ich dich überall mit hingeschleppt und dich mit fremden Netzen verkuppelt. Damals warst du hipp und neu,
Thailand: Ein Résumé
vom 10. March 2011
Die letzten drei Wochen habe ich in Thailand (Asien) mit meiner Freundin und zwei wirklich guten Freunden (Markus und Nicky) verbracht. Das war nicht nur für mich dringend nötig -- einmal richtig aus dem Alltag ausbrechen und verschwinden. Die Wochen (und Monate?) zuvor gab es in meinem Leben nicht viel mehr als die Arbeit; ich befand mich meist im Dauerstress. Das zehrte an meinen Kräften, physisch wie auch psychisch. Da war ein Urlaub ohne jegliches Notebook oder Handy genau das Richtige.
In Bangkok angekommen gab es für uns erst einmal einen gewaltigen Kulturschock. Das Klima und auch die Menschen sind dort "unten" ganz anders. Alles ist eine Spur gelassener, wärmer, runder, speckiger, klebriger, aber auch freundlicher. Man gewöhnt sich erstaunlich schnell an so manches, vorausgesetzt man geht unvoreingenommen an alles heran.

Wir haben so vieles gesehen und erlebt, dass ich hier nicht jede Einzelheit berichten kann, aber ein paar Eindrücke und Gedanken möchte ich dennoch schreiben. Bangkok war eine unglaubliche Erfahrung. Die Menschen leben (für unsere Verhältnisse) erschreckend chaotisch. Aus einer Straße mit zwei Spuren werden kurzerhand vier Spuren gemacht, die abenteuerliche Stromverkabelung stellt die VDE100 komplett in den Schatten und an Hinweisschilder hält sich sowieso niemand. Es scheint fast so, als würde man mit Absicht genau das Gegenteil machen was vorgeschrieben ist. Aber trotzdem funktioniert irgend wie alles. Es schien für mich so, als würden die Menschen gegenseitig aufeinander aufpassen. Die Menschen machten den Eindruck, dass sie glücklicher und in Harmonie mit sich selbst und ihrer Umgebung leben.

An jeder Ecke fand man einen kleinen Gebetstempel mit Opfergaben, selbst in Taxis war fast immer ein kleiner Buddha auf dem Armaturenbrett. Sie falten die Hände, bevor sie Geld annehmen und die allermeisten sind stets höflich, freundlich und hilfsbereit. Niemand wird alleine stehen gelassen. Diese Kultur hat mich schon schwer beeindruckt.
Eines wurde mir in Thailand ziemlich deutlich bewusst: Ich bin reich -- nicht nur was den Lebensstandard angeht, sondern auch reich an Erfahrung, Wissen, und Bildung. Für die meisten Thai ausserhalb der größeren Städte ist Englisch nicht selbstverständlich und selbst für Shopbesitzer ist 5x60 Bath ohne einen überdimensionierten Taschenrechner nicht lösbar. In unserem Alltag selbstverständliche Dinge wie Copyright, Recycling, Müllentsorgung oder der Respekt vor der Umwelt scheint in solchen Entwicklungsländern noch nicht durchgedrungen (oder noch nicht umsetzbar) zu sein. Hier wird alles kopiert und gefälscht, der Müll wird zu Haufen zusammengekehrt und angezündet.
Das Bewusstsein, in einem Staat wie Deutschland von enormem Wohlstand zu leben, bekommen man erst deutlich zu spüren, wenn man eines der Länder in Äquatornähe mit eigenen Augen gesehen und erlebt hat. Ich zahle dafür gerne meine Steuern.
Die Einstellung der Thais zum Leben, ihren Mitmenschen und ihrer Umgebung hat mich dann aber schon etwas nachdenklich gemacht. Ich hatte zudem das erste Mal seit langem die Möglichkeit, über die vergangenen Monate zu reflektieren. Schon während meiner Abschlussarbeit hatte ich begonnen zu arbeiten, und danach blieb selten die Gelegenheit, über das Vergangene nachzudenken. Ich wollte beispielsweise etwas über mein Thesis-Thema bloggen oder ein paar Projekte aus meinem Studium vorstellen, bin aber seit über einem halben Jahr nicht dazugekommen dies zu tun. Ähnliches merke ich jetzt auf der Arbeit; hier purzeln die Feature-Requests schneller herein als ich sie umsetzen kann. Da bleibt keine Zeit mehr, Code-Reviews zu machen oder intensiv über eine Problemstellung nachzudenken und den besten Weg zur Umsetzung zu finden. In solchen Situationen beneide ich die Lebensweise der Thai.

Vielleicht war es auch das Buch "Dienstags bei Morrie" von Mitch Albom, dass mir etwas die Augen geöffnet hat. Das Leben ist zu schade, um es unbemerkt an sich vorbeiziehen zu lassen. Wenn man nur noch auf seine Umwelt reagiert, statt aktiv einzugreifen, hat man nicht mehr viel vom Leben. Voll und ganz auf die Dinge konzentrieren, die für mich wichtig sind und diese dann konsequent(er) verfolgen ist deshalb mein Ziel für dieses Jahr.
3 Kommentare,
del.icio.us,

Die letzten drei Wochen habe ich in Thailand (Asien) mit meiner Freundin und zwei wirklich guten Freunden (Markus und Nicky) verbracht. Das war nicht nur für mich dringend nötig -- einmal
Adventskalender 2010
vom 27. November 2010Die letzten zwei Monate war es recht still hier. Das lag vermutlich daran, dass ich umgezogen bin und mich die Arbeit zur Zeit ziemlich einspannt. Doch an Weihnachten darf eines nicht fehlen: Genau, der Adventskalender von Florian und mir. Auch dieses Jahr haben wir uns wieder viel Mühe gegeben (und werden/müssen es noch :) um euch wieder einen spannenden Exkurs in die OSS Welt zu geben.

Wir werden dieses Mal ein Open Source Softwareprojekt von der Planung über die Umsetzung und Verbesserung bis hin zum Release und Lizenzierung beschreiben und anhand eines kleineren Programmierprojekts demonstrieren. Natürlich darf sich wieder jeder nach Herzenslust beteiligen. Jedes Wochenende gibt es von Florian und mir jeweils einen Beitrag. Eine Übersichtsseite gibt es hier:
http://advent(2010)?.aaron-mueller.de/ (RSS-Feed)
Wir wünschen euch viel Spaß beim Lesen und freuen uns über jeden Response! Der erste Artikel ist schon online.
Kommentar schreiben,
del.icio.us,
Die letzten zwei Monate war es recht still hier. Das lag vermutlich daran, dass ich umgezogen bin und mich die Arbeit zur Zeit ziemlich einspannt. Doch an Weihnachten darf eines nicht fehlen: Genau, der Adventskalender von [Florian](http://feitel.indeedge
Mehr Power!
vom 11. September 2010
In letzter Zeit höre ich immer häufiger, das man hier oder dort mehr Leistung, mehr Server, mehr Mitarbeiter oder mehr Software-Tools braucht. Natürlich ist es nicht schlecht wenn man von allem viel und reichlich hat, doch ich bin der Meinung, dass oftmals mit ein wenig Anstrengung mehr mit begrenzten Mitteln erreichen lässt.
Besonders bei der Programmierung lässt sich häufig ein vielfaches an Rechenpower oder Speicherverbrauch einsparen. Ein simples Profiling der Anwendung zeigt schnell Engstellen auf, die sich mit ein paar einfachen Zeilen Code (Eine Variable an einer anderen Stelle definieren, Abbruchkriterien an den Anfang der Methode schreiben, Wiederverwendung von Speicher, unnötiges Kopieren, unnötige SQL-Joins rauswerfen etc.) eliminieren lassen.
Im Serverbereich ist es natürlich das einfachste, neue Hardware zu bestellen, sobald der Server in der momentanen Konfiguration anfängt, an einer seiner Grenzen (Platz, Antwortzeit, Zugriffszahl) zu stoßen. Beim Aufsetzen eines Systems wurde anfangs vielleicht nicht daran gedacht, dass zwei Monate später 2000 User täglich einen inperformanten Service nutzen. Oft lohnt es sich, Feintuning an den Parametern vorzunehmen oder schlankere Software einzusetzen. Es braucht nicht immer ein J2EE Application Server in einer eigenen VM zu sein, um ein paar statische Webseiten auszuliefern.
Oft reicht es auch, die Zeiten zu nutzen, in denen die Hardware sowieso nichts zu tun hat. Vermutlich stört es nicht weiter, wenn nachts um 2 Uhr ein Skript 10.000 Bilder umkonvertiertund und zuschneidet. Den Cloud-Ansatz von Google, Amazon und Co. finde ich auch nicht so verkehrt.
Auch bei Software-Tools bin ich immer wieder überrascht, wie viel Geld dafür ausgegeben wird und wie ineffizient diese dann genutzt werden. Ich bin ein großer Freund von Open Source und ich bin bis auf ein paar wenige Ausnahmen sehr zufrieden und auch produktiv damit.
In dem Buch "7 Habits of Highly Effective People" von Stephen Covey (Seite 172) ist eine Grafik beschrieben, die mir seit Jahren in solchen Situationen immer ins Gedächtnis springt:

Ich finde gerade das (aus bestehendem das Maximum herausholen) so spannend. Fast alles lässt sich mit etwas Verstand effizienzer/performanter/einfacher gestalten. Diese Lektion habe ich noch einmal sehr deutlich gegen Ende meines Studiums erfahren: Ein komplexes Problem muss nicht komplex programmiert werden. Die einfachen Lösungen sind nicht nur leichter zu verstehen, sondern meistens auch performanter und schneller.
Allerdings erfordert diese Art der effizienten Ressourcenplanung auch Zeit, Geduld und Hirnschmalz. Wie seht ihr das? Ist es das wert oder ist die Arbeits(kraft|zeit) zu teuer, um sie mit solchen Dingen zu behelligen?
6 Kommentare,
del.icio.us,
Memory Management in Objective-C
vom 29. August 2010Die meisten "modernen" Programmiersprachen haben eine dynamische Speicherverwaltung, die von der VM oder dem Interpreter gesteuert wird. Manuelle Speicherreservierung (malloc) und Freigabe des nicht mehr verwendeten Speichers (free) sieht man heutzutage fast nur noch in historischen Projekten und an Stellen an denen der Speicher knapp ist.
In Objective-C wird dem Programmierer die Wahl gelassen, ob er den Speicher selbst verwalten oder es dem Garbage Collector überlassen will. Die Programme können sogar so geschrieben werden, dass sie beide Modis unterstützen um Abwärtskompatibel zu bleiben. (Bspw. um eine Library auf dem iPhone und in einer Desktop-Anwendung zu nutzen)
Die Einstellung wird in XCode mit einem Doppelklick auf das Build-Target erreicht:

Wird der Garbage Collector ausgestellt, ist der Programmier selbst für die Speicherallokation zuständig. Objective-C ähnelt etwas dem der Java VM. Jedes Objekt hält intern einen Referenzzähler (retain-count genannt), der angibt, wie viele andere Objekte dieses Objekt benötigen. Sinkt dieser Zähler auf 0, wird das Objekt aus dem Speicher entfernt.
Um den retain-counter zu inkrementieren, muss eine retain-Nachricht an das Objekt gesendet werden. Diese kann von allen Objekten entgegengenommen werden, die von NSObject abgeleitet wurden, also so gut wie alle. Zum Dekrementieren wird release verwendet. Ein kleines Beispiel:
NSArray *users = [[NSArray alloc] init]; // retain-count = 1 // Do some stuff [users release] // retain-count = 0
Hierbei gibt es zwei wichtige Faustregeln (beide aus Memory Management in Cocoa entnommen):
You should never release an object that you have not retained or created.
Make sure that there are as many release or autorelease messages sent to objects as there are alloc, copy, mutableCopy, or retain messages sent. In other words, make sure that the code you write is balanced.
Interessant wird es, sobald Objekte an andere Objekte gesendet werden. Hier hat das ursprüngliche Objekt keine Kontrolle mehr darüber, was mit dem Objekt passiert, und kann es deshalb auch nicht mehr sauber aus dem Speicher räumen.
Hier kommt der Autorelease Pool ins Spiel: In ihm lassen sich zur Speicherfreigabe vorgesehene Objekte vormerken, um dann an einer geeigneten Stelle die "release"-Nachrichten zu verschicken. Dies ist aufs Erste Mal nicht so ganz einleuchtend, deshalb wieder ein Beispiel:
NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init]; NSNumber *fourtytwo = [NSNumber numberWithFloat:42]; // Some stuff ... [pool release];
In der ersten Zeile wird der Autorelease Pool erstellt. Er enthält alle Referenzen zu den Objekten, die aus dem Speicher entfernt werden können. Auch diejenigen, die von anderen Methoden erzeugt werden. In diesem Fall ist das das NSNumber-Objekt, das nicht über den Standard-Konstruktor "init" erzeugt wurde, also nicht in der aktuellen Methode sondern an einem anderen Ort. Da wir in unserer aktuellen Methode nicht wissen, ob das NSNumber-Objekt noch anderweitig verwendet wird (da wir es ja nicht direkt erstellt haben), können wir es auch nicht mit [fourtytwo release] bedenkenlos aus dem Ram löschen. Dafür ist der Autorelease Pool zuständig. Sobald das NSNumber-Objekt an keiner Stelle mehr verwendet wird, landet es in einem AutoreleasePool. Rufen wir dann [pool release] auf, wird an allen enthaltenen Objekten die "release"-Nachricht gesendet, welche einen release-count von 0 vorweisen.
Wenn der Speicher manuell verwaltet wird, treten meist ziemlich hässliche Fehler auf, die sehr schwer zu finden sind. Speicherlecks sind tückische Biester, die sporadisch auftauchen und nicht selten lange unentdeckt bleiben. Um dem entgegenzuwirken und das Debugging nach einem SegFault etwas einfacher zu machen, können diese beiden Optionen gesetzt werden (Doppelklick aufs Executable in XCode):

Damit bricht das Programm kontrolliert ab und XCode springt direkt in die Zeile in der versucht wird auf ein Objekt zuzugreifen, dass zuvor schon aus dem Speicher entfernt wurde.
6 Kommentare,
del.icio.us,
Die meisten \"modernen\" Programmiersprachen haben eine dynamische Speicherverwaltung, die von der VM oder dem Interpreter gesteuert wird. Manuelle Speicherreservierung (malloc) und Freigabe des nicht mehr verwendeten Speichers (free) sieht man heutzutage
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18