Archiv des Autors: hugo

Am Rande notiert ...

Create a package for Android for Kivy. Ich glaub ich muss mir Kivy nochmal genauer angucken. Sie arbeiten jetzt mit Python for Android, einer eigenen Python-Distribution die einen angepassten Interpreter für Android mitbringt und eine Koppelung über Cython, NDK und JNI an die Android-SDK. Damit kann man also richtige APKs produzieren, die ganz normal auf den Devices installiert werden können – aber alles was die Anwendung selber ausmacht in Python schreiben. Bleibt natürlich die Frage wie schnell das dann läuft – Python wird ja nunmal interpretiert. Aber interessant für Tools wäre es allemal, zumal man Kivy Anwendungen auch mehr oder weniger direkt unter Desktopsystemen laufen lassen kann.

Plop: Low-overhead profiling for Python. Das muss ich mir mal genauer angucken, könnte sehr interessant für die Server in der Firma sein, besonders der geringe Profiling-Overhead von nur 2% klingt spannend. Und die Visualisierung ist definitiv eine der besseren bei Profilern für Python.

Custom Drawn Interface/Android – Lazarus wiki. Hah, es gibt auch für Freepascal und Lazarus (die FP IDE mit Delphi-Einschlag) einiges zur Programmierung von Android Apps. Ist alles wohl noch etwas wackelig und hackig, aber macht Fortschritte. Die Idee ist ganz witzig – eine minimale Java-App mit minimaler Activity und dann über JNI die Integration von Pascal Code. Die Idee ist dort wieder die LCL – also die GUI Library von Lazarus – weiternutzen zu können, so dass man systemübergreifend programmieren kann. Und man kann dann auch den eingebauten GUI Builder benutzen.

Basic4android Basic for Android – Rapid Application Development. Heh, nett, eine Art Visual Basic für Android. Leider nur für Windows. Schade.

Android – Processing. Oh, das ist interessant. Die neueste Processing 2.0 Alpha können auch direkt Android unterstützen – und zwar richtig simpel, einfach eine Processing App schreiben, umstellen auf Android und mit „Run on device“ das ganze aufs Device bringen und dort starten. So für die typischen kleinen Hacks klingt das richtig interessant, besonders wenn man mit Grafik rumspielen will (das ist ja der Fokus von Processing).

necessitas / Home / necessitas. Hmm, klingt ganz interessant – eine QT Version für Android inklusive einer IDE zur Programmierung von Apps. Vielleicht guck ich mir das dann auch mal an, wenn mein Nexus da ist.

Lion: Mobile Backup Lokale Time Machine abschalten | Jan-Kaspar Münnich. Keine Ahnung ob ich das schon mal hatte, zu faul zu suchen, aber wen die lokalen Timemachine Backups nerven (z.B. bei kleineren SSDs ist das alles andere als praktisch, besonders wenn man immer mal wieder größere Dateiaktionen macht), mit tmutil disablelocal kann man sie abschalten und mit tmutil enablelocal anschalten. Zum Beispiel bei größeren Aufräumarbeiten macht es Sinn, sie abzuschalten, selbst wenn man sie später wieder aktiviert um die zusätzliche Arbeitssicherheit zu haben. Oder man archiviert einfach alles auf dem Notebook in git oder mercurial, dann braucht man natürlich auch keine lokalen Backups.

Ymacs — An Emacs-like editor for the Web. Was der Titel sagt. Emacs bootet jetzt auch im Browser. Einen brauchbaren Editor gibts für Emacs aber immer noch nicht.

Lumiya Viewer – About Lumiya. Sehr nett – ein grafischer SL und OpenSim Client für Android. Das muss ich dann doch in ein paar Tagen unbedingt mal ausprobieren. Bei iOS kenn ich ja immer noch nur Pocket MV, aber das kann eben kein grafisches Rendering der Umgebung sondern nur Karten, Chat und son Zeug.

Soulvers Features | Acqualia. „Taschenrechner“ rethought. Ich wundere mich eh warum so viele Rechner für den Computerdesktop verzweifelt das UI von alten Taschenrechnern nachbauen. Bei mobilen Geräten macht es durchaus Sinn – das Taschenrechner-UI mit mehrfach belegten Tasten ist durchaus für so kleine Formfaktoren effizient – aber auf dem Computer nehme ich weitaus häufiger einfach eine Python Shell oder ein iPython Notebook. Soulver ist so ein bischen sowas, nur fokussiert auf klassische Berechnungen und mit Verlinkung von Zeilen, so dass man Spreadsheet-ähnliche Lösungsblätter bauen kann. Ganz pfiffig.

Samsung: Kompaktkamera EX2F mit extra lichtstarkem Objektiv – Golem.de. Die kam dann so ganz unerwartet aus dem Off rein ins Spiel. Hat glaub ich keiner auf dem Schirm gehabt – wäre ich noch unterwegs auf der Suche nach einer interessanten Kompakten, dann wär das neben der Sony RX100 wohl eines der interessanteren Geräte. Allerdings ist für mich mitlerweile die GF3 auf den Platz von Kompakten geraten und da kommt selbst die RX100 einfach nicht mit.

iBookstore sperrt Czernin-Sammelband als ‘zu explizit’. Da hört dann einfach jedes Verständnis auf – Kontrollfetischismus und Prüderie passen nicht zueinander. Und leider nicht mehr nur amerikanischen Ursprungs – in .eu ist ja gerade das UK dabei sowas für sich auch als „Standard“ zu entwickeln. Schöne verblödete neue Welt …

Fuse4X – The Easiest and Fastest Way to Create File Systems for Mac OS X. MacFuse macht ja derzeit den Dodo, von daher brauchts ne Alternative wenn man Userspace-Filesystems laden will (z.B. einen SSH Server mounten will). Diese Version sieht auch interessanter aus als OSXFuse, denn OSXFuse will primär Kompatibilität mit dem alten MacFuse, wärend Fuse4X primär Kompatibilität mit der Referenz auf Linux ansteuert und damit die  Portierung von Userspace-Filesystems einfacher werden sollte.

Epistle – Android Apps auf Google Play. Und noch ein Markdown-Editor für Android, der hier ist weniger Wiki als mehr einfacher Markdown Editor, aber trotzdem ganz interessant – kommt auch gleich mit Dropbox Unterstützung.

JWBs blog: Ema Personal Wiki for Android and Windows. Weil ich gerade bei Markdown war – hier gibts ein Markdown-nutzendes persönliches Wiki für verschiedene Systeme, unter anderem Android. Der Beschreibung nach ist das ganze recht ähnlich zu Vim Wiki.

OscarGodson/EpicEditor. Das klingt interessant – ein Editor fürs Web der nicht einfach HTML produziert, sondern Markdown. Könnte für einige Projekte interessant werden.

Blackmagic Design: Blackmagic Cinema Camera. Wow, das Teil ist echt cool. Sozusagen die mirror-less Video Option für Canon, könnte man sagen – denn es hat EF Bajonett. Sieht echt schick aus, der Preis von 3000 Dollar ohne SSD allerdings auch.

Cloud Party. Klingt interessant – ein bischen nach Second Life im Browser mit WebGL. Scheint vor allem wirklich auf die Core-Features von SL zu zielen: bauen und anpassen. Muss ich mal mit rumspielen.

Repo.js. Darüber hab ich die Source-Highlighter gefunden – ein kleines jQuery Plugin, welches auf einfache Weise ein github Repository in eine Webseite einbettet. Ganz praktisch, wenn man seine Projekte in eigenen Webseiten einbinden will und nicht die ganze Website an github abtreten will.

isagalaev/highlight.js. Gerade drüber gestolpert, kleiner Source Highlighter in JavaScript der mit einer Sprachheuristik arbeitet und so keine expliziten Angaben der zu färbenden Sprache braucht – er versucht einfach alle Sprachen durch und nimmt die mit den meisten erkannten syntaktischen Elementen. Mit jQuery VanGogh gibt es dafür auch noch ein jQuery Plugin.

ErlPort – Erlang port protocol for Python. Ein etwas anderer Ansatz für verteilte Kommunikation ist dieses Modul bei dem einfach die Erlang-Bordmittel für Kommunikation (Ports und Terms) implementiert werden. Damit kann man Systeme bauen die je nach Bedarf Python oder Erlang als Implementierungssprache verwenden.

Hurricane. Klingt interessant, ist ein verteiltes Messaging System das mit verschiedensten Sprachen arbeitet und damit Integration von verschiedenen Systemen biete. Unter anderem dabei is Python mit WSGI und Ruby mit Rails, wodurch z.B. ein verteiltes System auf Basis von Rails und Django denkbar ist. Zusätzlich gibt es noch einen Prozessmanager, mit dem die Prozesse selber nur Standard-IO machen können müssen und dann direkt von Hurricane gemanaged werden. Könnte ich mir gut für das eine oder andere Projekt in der Firma vorstellen.

Neulich im Internet (Schwarzweiß-Ausgabe)

Diese Galerie enthält 13 Fotos.

Ich habe auf Google+ und/oder Flickr neue Bilder hochgeladen. Hier sind sie – unsortiert und unkommentiert. Das ist die Schwarzweiß-Ausgabe.

Neulich im Internet

Diese Galerie enthält 11 Fotos.

Ich habe auf Google+ und/oder Flickr neue Bilder hochgeladen. Hier sind sie – unsortiert und unkommentiert.

Am Rande notiert ...

SQLite4: The Design Of SQLite4. Das klingt sehr interessant. Besonders der erste Absatz in „2.0 Overview“, in dem er ein wenig darauf rumreitet, dass SQLite3 weiter unterstützt wird und beide Versionen parallel verfügbar bleiben. Und natürlich dann die diversen Änderungen, die SQLite4 gegenüber der anderen Version haben wird, wie zum Beispiel die deutlich bessere Kapselung der Engine in einem eigenen Objekt. Dadurch ist es durchaus möglich mehrere Datenbanken gleichzeitig offen zu haben, ohne großes jonglieren. Und was mich besonders freut: alle Berechnungen in Decimal Math und nicht mehr double oder float. Sorry, aber double (und schon gar nicht float) hat irgendwas in einer Datenbank zu suchen, ausser vielleicht als Datentyp für seltene Sonderfälle. Auch sonst einige nette Sachen drin, zum Beispiel covering indexes und natürlich die standardmäßig verfügbaren foreign key constraints.

Jarvis. Da bastelt jemand an sowas wie Light Table für Python (Light Table hat auch Python Support versprochen, aber bisher gibts da nur eine Preview für Clojure). Sieht ganz interessant aus und bringt endlich mal wieder frischen Wind in interaktive Umgebungen für Programmiersprachen.

Remote Debugging – Real Software Documentation. Davon sollten sich andere Systeme ein paar Scheiben abschneiden. Bei meinem Spielprojekt hatte ich in der neuesten Version ein Problem unter Linux. Meine Entwicklungsumgebung ist aber OSX. Da läuft alles tadellos. Also was tun? Nunja, gute Gelegenheit sich mal den Remote-Debugger anzugucken. Und der ist wirklich trivial. Ein Linux hochfahren (ich benutze dazu Vagrant auf meinem OSX Rechner), das Remote Debugger Stub rüberkopiere, ausführen, minimal konfigurieren und loslegen. Direkt aus der OSX IDE den kompilierten Code auf die Remote Umgebung übertragen und starten, direkt mit Breakpoints und Variablenwatch und solchen Sachen. Eben all das, was ich auch mit OSX lokal hätte. Im Prinzip gibt es nahezu keinen Unterschied, ausser das halt das Programm im Linux läuft. Warum ist das bei so vielen anderen Umgebungen so viel komplizierter? Ich werd wohl langsam alt, ich hab einfach keine Geduld für umständliche Umgebungen mehr.

..Nowhere... hat eine Reihe von freien Klassen und Plugins für RealBasic, unter anderem eine für einen syntaxfärbenden Editor und Listboxen mit beliebigem Zelleninhalt.

The Opa blog: Announcing Opa 1.0. Opa erzeugt jetzt keinen Native Code fürs eigene Backend mehr, sondern erzeugt JavaScript für Node.js Integration. Klingt durchaus interessant, durch die Integration von Node.js könnte da auf Dauer auch Zugriff auf die dort verfügbaren Libaries Einzug halten (wobei man dann natürlich die garantierten Eigenschaften von Opa verliert). Und zusätzlich sind jetzt auch die Chancen höher, dass man einen geeigneten Hoster findet bzw. das Selbsthosting könnte dadurch auch angenehmer werden.

Make runfcgi fail when database connection is open before fork. Das ist eine Sache nach der ich schon ewige Zeiten jage, zuletzt in ein paar ziemlich wichtigen Projekten. Flup arbeitet so, dass es die WSGI-Anwendung erst initialisiert und mit dieser initialisierten WSGI Anwendung dann die Forks für die Worker macht. Dummerweise gibt es bei uns aber Datenbankzugriffe wärend der Anwendungsinitialisierung – dadurch hat der Basisprozess schon eine offene Datenbankverbindung, jeder Fork kopiert diese Daten. Aber der Socket der Verbindung geht natürlich nicht mit – der neue Prozess denkt nur er wäre verbunden, ist es aber nicht. Zugriffe von denen neuen Prozessen fallen dann mit einer Exception raus. Man kann im verlinkten Patch auch gut den raise auf die Exception einfach durch connection.connection = None ersetzen. Dann wird einfach die Verbindung die sowieso defekt ist weggeworfen und in neuen Prozessen immer eine neue Verbindung aufgebaut. Damit haben wir zumindestens in einem Produktionsumfeld (mit psycopg2) das ganze beheben können und sind guten Mutes, dass es auch bei der Umgebung  mit pyodbc helfen wird.