fingernails in oatmeal, The Unsightliness of Merge Commits - und noch ein bischen mehr über git commit/push/rebase und all das Zeug rundherum. Auch hier recht gut auf Mercurial zu übersetzen.
Linkblog - 31.12.2009 - 12.1.2010
Introducing Akka - Simpler Scalability, Fault-Tolerance, Concurrency & Remoting through Actors - schöner Überblick über ein recht interessantes Projekt in Scala (hab glaub ich schon mal drauf gelinkt) das STM, distributed Actors und das Erlang Supervisor Modell für Scala liefert. Sollte ich mir unbedingt mal angucken.
Linus on git pull/rebase - wann man rebase nutzt und wann man pull nutzt und wann man merge commits macht. Gilt ähnlich auch für Mercurial, wo die Probleme ähnlich sind. Nicht ganz so stark für darcs, das durch Patch-Reordering hier kleine Vorteile bietet.
Voigtlaender - Die offizielle Homepage - Bessa III Mittelformatkamera - und das dann der Herstellerlink mit deutschem Text. 2000 Euro. Autsch.
Voigtlander Bessa III - die Kamera ist an mir bei meinem Photokina-Besuch völlig vorbeigegangen. Ich hab mich wohl zu sehr auf Digital konzentriert. Voigtlander (ok, Cosina) und Fuji bringen eine neue 6x6 und 6x7 (umschaltbar!) Faltkamera raus! Mittelformat! Mit allen Schikanen die man von Sucherkameras heute gewohnt ist - also Parallaxenausgleich (sogar mit Anpassung der Rahmengröße!), Entfernungsmessung (rein optisch, kein AF hier), Belichtungsmessung. Klasse. Da kriegt man glatt Lust wieder Rollfilm zu belichten (zumal 6x7 wirklich Idealformat ist). Ich hab ja zu Hause meine alte Fuji Faltkamera liegen, aber die ist leider am Balgen defekt (nicht mehr Lichtdicht). Allerdings ist der Preis dann doch etwas heftig mit über 2000 US$ ... (und die Zukunftssicherheit von Rollfilm auch eher fragwürdig)
entrian.com - goto for Python - goto for Python - goto und comefrom für Python. Ja, war ein Aprilscherz, tuts aber trotzdem.
HeyChinaski.com » Blog Archive » HeyGraph Javascript and canvas graphing tool - Grafikbibliothek die Graphen automatisch ausrichtet und anzeigt. Könnte für das eine oder andere Projekt mal interessant werden.
Nailgun: Insanely Fast Java - wenn der JVM Start zu lange dauert kann Nailgun mit einer persistenten JVM helfen. Die läuft einfach weiter und kriegt gesagt was sie machen soll. Sollte dementsprechend auch mit Scala und Clojure helfen, gerade wenn man kleine Tools damit bauen will, die nicht jedesmal eine neue JVM starten sollen.
Parrot AR.Drone - Quadrotor helicopter with wifi and 2 cameras - AR.Drone games for iPhone and iPod touch - ein per iPhone über WiFi fernsteuerbarer Hubschrauber mit vier Propellern und zwei Kameras. Dazu noch Devkits für augmented Reality Spiele. Das will ich haben!
ProGuard - hilft beim runtertrimmen von standalone jars. Wobei das allerdings nicht so einfach mit Clojure oder Scala standalone jars ist, da gehört schon etwas Fummeln dazu scheinbar.
ScalaCheck User Guide - interessanter Ansatz für ein Unittest-Tool. Basiert auf den Ideen von QuickCheck für Haskell. Mir gefällt vor allem der Ansatz Tests als Eigenschaften zu deklarieren und dann Zufallsdaten (oder kontrollierte Testdaten) zu generieren und zu gucken ob diese Eigenschaften tatsächlich passen. Das ganze passt besonders gut zu rein funktionalem Code, da durch fehlende Seiteneffekte Funktionen sehr viel einfacher mit Zufallsinputs testbar sind.
technically.us Git - sling.git/blob - project/build/AssemblyProject.scala - nette kleine custom task für sbt um standalone-jars zu erzeugen.
Ursula - nicht unser aller Ex-Zensuristin, sondern eine Programmiersprache. Hier verlinkt auf einen Beispielcode. Wer glaubte das Anic schwer lesbar ist, Ursula gewinnt den Wettbewerb der unlesbarsten Programmiersprache locker. Komplett unverständlich wenn man es anguckt.
anic - Dataflow Sprache mit interessanten Features und (praktisch nicht existierendem, da die Codegenerierung fehlt) Compiler. Parallelisierung kommt bei Dataflow Languages automatisch frei Haus. Generell eine faszinierende Ecke von Sprachen die viel zu wenig Beachtung bekommt. Ob allerdings eine Sprache mit einer dermaßen Sonderzeichen-lastigen Syntax die Antwort ist ... jaja, ich weiß, Syntax ist nur Oberflächlich - aber tipp mal all die Sonderzeichen auf einer deutschen Tastatur!
Communities: DIY LabVIEW Crew: A Commodore 64 emulator written in LabVIEW - und weil wir gerade bei seltsamen X-in-Y Projekten sind: LabView ist eigentlich eine grafische Sprache zur Programmierung von Steuerungssystemen und Auswertungssystemen in Laborumgebungen. Und wird - in Abwandlung - zur Programmierung von Lego Robotern benutzt. Warum jemand überhaupt auf die Idee kommt, da drin einen C64 Emulator schreiben zu wollen, keine Ahnung. Aber er hats gemacht ...
MeshLab - und damit ich überhaupt eine Chance habe, hier ein Link auf eine Open Source Software zur Konvertierung und Bearbeitung verschiedenster Mesh-Formate. Gibts auch für OS X und zielt speziell auf die Bearbeitung und Reparatur von Meshes aus 3D-Scans - vermutlich wird das ja auch der Weg für mich sein, mein Modell aus SL über OpenGL-Capture aus dem realen Modell zu ermitteln.
qb.js: An implementation of QBASIC in Javascript (part 1) - Steve Hanov's Programming Blog - drin was drauf steht. Irgendjemand hat verdammt zu viel Zeit.
Schützt Handystrahlung vor Alzheimer? - gerüchteweise steigen die Mieten von Wohnungen unter Mobilfunk-Sendemasten ... (ob sich jetzt Altenheime den Mobilfunkbetreibern als Standorte für Antennen anbieten? Oder gibts demnächst das iPhone auf Rezept? Fragen die sich ganz automatisch stellen!)
Shapeways | passionate about creating - das ist einfach klasse. 3D Print auf diverse Materialien, sogar Sandstein und Metall. Jetzt muss ich nur noch meinen Avatar aus SL in ein Format exportiert bekommen, mit dem ich da was werden kann!
Alloy Analyzer - wer sich mal ansehen will, wieweit automatische Beweise und automatisches Reasoning auf Softwaremodellen heutzutage ist, guckt sich das Projekt mal an. In Java geschrieben, Installer für die großen Systeme verfügbar. Kommt mit einer deklarativen Sprache in der die Modellspezifikation gemacht wird und automatischen Konfliktfindern - also ein Modell, welches fehlerhaft ist, wirft Gegenbeispiele aus die mindestens eine der Randbedingungen verletzen. Und das Tutorial liefert nicht irgendwelche abstrakte praxisferne Beispiele, sondern z.B. ein Modell eines Datesystems mit verschiedenen Operationen darauf.
Apples and Bananas - sollte mal wieder ein Politiker Äpfel mit Bananen vergleichen, könnte dieser Artikel über Bilderkennungsalgorithmen zur Unterscheidung von Äpfeln und Bananen helfen!
Google Voice Blog: Google welcomes Gizmo5 - ganz an mir vorbeigegangen: Google hat sich Gizmo5 gekauft. War lange zeit der Gegenspieler zu Skype, auf SIP statt proprietär-Protokollen aufgebaut. Firmengründer war der gleiche Michael Robertson, der auch mp3.com, mp3tunes.com und Linspire gegründet hat - und häufig eher etwas dubios rüber gekommen ist (speziell die Abwicklung von Linspire ist wohl immer noch in der Diskussion, da die Aktionäre größtenteils leer ausgegangen sind). Gizmo5 hat übrigens auch ejabberd benutzt für die IM-Infrastruktur - so bin ich da drüber gestolpert.
[jdev] Wikipedia deletions - mal wieder Wikipedia Blockwarte unterwegs. eJabberd wegen unwichtig löschen? Ist ja nur eine der verbreitetesten Jabber-Daemonen und Jabber selber ist ja nur das Protokoll hinter Google Talk und Google Wave, was ist daran schon wichtig ...
Meine OpenID - nur so als for future use, damit ich meinen eigenen OpenID Provider wiederfinde wenn ich den mal brauche ...
Nullege: A Search Engine for Python source code - ganz nützlich, wenn man zu einem API gucken will wie es verwendet wird in verschiedenen Projekten. Manchmal sind Dokumentationen etwas unklar und Beispielsource angucken macht die Sache klarer.
phpMyID - simple kleine PHP Bibliothek zum Einrichten eines eigenen privaten OpenID providers.
TidBITS Entertainment: "If Monks Had Macs" Available for Free - eines der seltsamsten Projekte aus älterer Mac-Zeit. Allein deshalb interessant weil man sehen kann wie damals von manchen Leuten Hypercard benutzt wurde (läuft heute auf Runtime Revolution und damit Plattformübergreifend).
[tw] : Building a Codeless Language Module with BBEdit 8.5 and (Ir-) Regular Expressions - weil ich immer wieder danach suche, hier eine Anleitung wie man die codeless language modules für BBEdit und TextWrangler baut. In der neuen Version können die nämlich regular expressions. Tipp: die regular expressions in der grep Suche von BBEdit/Textwrangler ausprobieren, dann sieht man ob sie auch korrekt auf einem Source funktionieren.
Wikipedia:Articles for deletion/Ejabberd - und wer sich den ganzen Schwachsinn der Wikipedia Blockwarte mal antun will: die Diskussionsseite über den Löschantrag von Ejabberd im Dezember. Nur so zur Erklärung: Ejabberd wird unter anderem von Facebook für deren XMPP Support von Facebook-Chat benutzt ...
Aasee (Münster) – Wikipedia - "Das Baden im Aasee ist gegenwärtig verboten und wegen der schlechten Wasserqualität, insbesondere in den heißen Sommermonaten, auch nicht zu empfehlen. Allerdings gibt es Bestrebungen, die Wasserqualität zu verbessern. Hauptprobleme sind die durch Überdüngung sich massenhaft vermehrenden Blaualgen, aber auch Colibakterien. Hautkontakt mit dem Aaseewasser kann im Sommer zu Reizungen führen, beim Verschlucken kann es zu lebensgefährlichen Erkrankungen kommen. Außerdem wird die Sicherheit durch die geringe Wassertiefe gefährdet, die durch auf dem Grund liegende Fahrräder an manchen Stellen zusätzlich beschränkt wird." - manche Dinge muss man einfach unkommentiert stehen lassen ...
maven-scala-plugin - maven-scala-plugin - weil Maven zwar hirnverdrehend ist, aber immer noch besser als Ant. Und niemand will die ganzen vielen Dependencies von Hand verwalten ...
SQLiteJDBC - noch ein JDBC Treiber für SQLite
SQLiteJDBC - weil ich ein SQLite Fan bin (wenns zu komplex für simple Textfiles ist, ist SQLite die nächsthöhere Stufe), und weil ich mit Scala und Clojure rumspiele, könnte ich das hier mal brauchen.
Fehlerhafte Sicherheitschips: 30 Millionen Bankkarten vom 2010-Fehler betroffen - SPIEGEL ONLINE - Nachrichten - Netzwelt - na toll, wegen der Idioten sind jetzt EC Karten und Kreditkarten in Automaten plötzlich Probleme. Und wegen der dämlichen Umstellung der meisten Banken auf V-Pay anstelle Maestro ist das Abheben von Geld im Ausland (bin demnächst mal wieder in Russland) mit der EC-Karte eh nicht mehr möglich, weil für diese Visa-Deppen Europa an den Grenzen der EU aufhört und die Banken ja nur auf ihre eigenen Gewinnmargen gucken und nicht auf den Komfort für Kunden. Was bringts schon eine EC-Karte zu haben, mit der man bei 9.5 Millionen Geldautomaten weltweit Geld abheben kann ohne Probleme? Völlig überbewertet. Und weil ich wegen Automatenfähigkeit jetzt auch noch eine neue Kreditkarte brauche, ist die warscheinlich dann auch aus einer defekten Charge und ich steh dann im März in Russland und kann gucken wie ich an Geld komme. Und für den ganzen Bockmist, den das Pack verzapft, bezahlt man dann auch noch Gebühren.
Fragen und Antworten zur Bankkarten-Panne - oh, toll, es wird wieder auf den Magnetstreifen umgestellt. Klasse Idee, denn der wird ja bei den V-Pay EC Karten nicht mehr vollständig beschrieben, weshalb die Karten nur in Automaten funktionieren, die den Chip benutzen. Super Idee - ich komm also potentiell vom Regen in die Traufe, nur weil diese blöden Bänker meinen ein paar Cent spaaren zu wollen.
Python Package Index : promise 0.2.1 - ziemlich cooler bytecodehack für Python der mittels Dekoratoren Funktionen als "pure" oder "constant" deklariert (oder ein paar andere) und dadurch Optimierungen von Python-Code ermöglicht. Speziell teure Lookups können so vermieden werden wenn man dem Compiler zusichert, das innerhalb einer Funktion z.B. Builtins oder benamste Funktionen sich nicht dynamisch ändern sondern konstant bleiben.
FleetDB - kleine In-Memory Datenbank mit Persistenz über ein append-only Transaktionslog. Das Protokoll besteht aus einfachen JSON Arrays. Implmentiert in Clojure, aber durch das JSON-Interface für beliebige Sprachen einbindbar (man braucht halt nur eine JSON Bibliothek und Zugriff auf Sockets).
generator_tools - weil man immer mal wieder auf die Situation stößt Generatoren in Python wegspeichern zu wollen (z.B. wenn man Continuations oder Coroutinen mittels Generatoren simuliert und diese als State eines laufenden Webworkflows in einem Webframework benutzt), mit diesem Modul (hack auf Bytecode-Introspection aufbauend) geht es eingeschränkt. Alleine schon interessant wegen der Einblicke die in den Interpreter gegeben werden.
Introduction to Concurrent Programming with Stackless Python - weil manchmal einfach eine sehr große Menge Microthreads die geeignete Abstraktionsebene ist. Wie man ja in diversen Erlang-Programmen gut sehen kann. Stackless liefert ähnliche Abstraktionen, oder noch eher vergleichbar mit den Actor-Libraries in Clojure und Scala (also im Prinzip das Erlang Actor Modell ohne Verteilung über mehrere Rechner). Das GIL bleibt natürlich weiter ein Problem, weshalb Manycore nicht brauchbar unterstützt wird, jedenfalls nicht ohne Programmierung dafür (über multiprocessing zum Beispiel).
Matasano Security LLC - Chargen - If You're Typing The Letters A-E-S Into Your Code, You're Doing It Wrong - interressanter Artikel (wenn auch in einer etwas seltsamen Präsentationsform) über typische Probleme bei Nutzung von Cryptographie für SSO in Websystemen. Einfach "ich verschlüssel das Cookie und dann ist alles gut" tuts eben nicht ...
MetaPython Documentation - eine der Sachen die mich immer wieder von Python zu Lisp bringen sind die netten Lisp Makros, mit denen man elegant embedded DSLs für verschiedene Zwecke bauen kann, die sich gut in die Hostsprache einbinden. Mit MetaPython kann man sowas vielleicht mit Python hinbekommen. Zumindestens sind alle Bauteile da.
Study shows viral SSIDs could be creating a massive wireless botnet Tech Sanity Check TechRepublic.com - und noch etwas mehr über die viralen SSIDs und eine kleine Liste von SSIDs die in dem Zusammenhang aufgetaucht sind. Bin drauf gestoßen weil eine Freundin eines der Netze (hpsetup) bei sich in der Nähe hat und sich wunderte, woher die SSID kommt.
Viral SSID - WLAN/Wireless Security Knowledge Center - interessant. SSIDs von WLAN Netzen als Angriffsvector für Computer.
OpenSimulator GForge - weil ich gerade mal wieder mit OpenSim rumspiele, hier findet man haufenweise Projekte rund um OpenSim.
Hg-Git Mercurial Plugin - sollte eigentlich den Zugriff auf GIT-Repositories mit Mercurial erlauben, scheint aber irgendwie im Moment nicht zu tu n - ich krieg jedenfalls nur Fehler. Aber erstmal for future use geblogmarkt.
Daring Fireball: The Tablet - "I am not predicting that Apple is phasing out the Mac. (On the contrary, I’ve heard that Mac OS X 10.7 is on pace for a developer release at WWDC in June.) Like all Apple products, The Tablet will do less than we expect but the things it does do, it will do insanely well. It will offer a fraction of the functionality of a MacBook — but that fraction will be way more fun. The same Asperger-y critics who dismissed the iPhone will focus on all that The Tablet doesn’t do and declare that this time, Apple really has fucked up but good. The rest of us will get in line to buy one."
hgsubversion - da man ja immer mal wieder auf SVN trifft und sich dann oft ärgert, das man nicht das Arbeitsverzeichnis zwischen Releases wechseln lassen kann, kann man einfach hgsubversion benutzen. Damit wird ein komplettes SVN Repository in ein lokales Mercurial-Repository gespiegelt aus dem man dann problemlos seinen Arbeitsbereich bestücken kann mit Mercurial-Mitteln. Auch gut wenn man Patches auf ein SVN Projekt verwalten will, da die Patchqueue von Mercurial da allen SVN-basierten Techniken überlegen ist.
Datenschützer kritisieren "Elektronischen Einkommensnachweis" - und wieder eine unsinnige Datensammelaktion die nur dazu führen wird, das andere Stellen diese Daten für völlig andere Zwecke haben wollen. Was geht den Staat an, ob ein Arbeitnehmer Abmahnungen bekommen hat oder "Fehlverhalten" zeigt (was dann ja sowieso eine Auslegungssache des Arbeitgebers ist)? Was geht den Staat an, ob und wie lange ein Arbeitnehmer gestreikt hat? Das Datentöpfe gegen Missbrauch nicht gesichert sind, sollte ja nun mitlerweile zur Genüge bekannt sein. Und das jegliche Datenansammlungen den Hunger von anderen Behörden wecken, ebenso.
duelinmarkers's clj-record - ein Persistency Framework inspiriert von Active Records (dem ORM von Ruby on Rails), aber halt in Clojure und mit einem mehr Lisp-like API. (das war jetzt sehr viel Denglisch in einem Satz!)
mattrepl's clojure-neo4j - und hier ein Interface zu Neo4J, einer Graphen-Datenbank für Java, mit der komplexe Datenstrukturen recht leicht auf Platte gespeichert werden können. Sieht für simple Persistenz in Programmen ganz interessant aus.