Fossil: Fossil Home Page - the author of SQLite, my preferred tool for everything that needs to store data locally, has also built his own distributed version control system (Ã la Mercurial or Git). And it comes with an integrated, distributed wiki and an integrated, distributed bug tracking system. Of course, the whole thing is based on SQLite as the backend for storing the data and has some interesting properties. Definitely worth a look, especially since its installation is nearly perfect: just copy a ready-made executable into the path, that's it. Yep, version control, wiki, bug tracking, CGI for web interface - all in a single executable. It's also compact. Impressive.
programmierung - 28.2.2010 - 30.5.2010
ikiwiki - and since I'm currently into bare-bones projects again: ikiwiki might be quite interesting, it calls itself a "Wiki Compiler". Essentially just a bunch of wiki pages in text files, managed with a versioning system and a tool that automatically produces static HTML. Plus a number of plugins with which you can make various extensions (among other things, it allows Markdown and also reStructured Text as wiki languages and has blogging plugins).
daemon 1.0 - the first of the usual suspects for Unix daemons with Python.
pyquery: a jquery-like library for python - definitely check it out, because this is something that has been bothering me for a long time, the libraries for accessing XML data in Python are somewhat primitive. And I really like jQuery, I find its access patterns simply extremely practical.
python-daemon 1.5.5 - and the second of the usual suspects (this one is almost official, at least it is oriented towards a PEP) for writing Unix daemons with Python.
Spring Python - no idea what it's worth, I haven't used Spring under Java so far (well, I hardly ever use Java anyway, at most the JVM occasionally), but you read a lot of positive comments about Spring. Here someone has transferred the ideas to Python - there's even a book about it. I don't know, however, whether a framework for a bondage-and-discipline language translates so well to a highly dynamic language like Python. But you could take a look at it in a quiet hour.
Turkmenbashi 1.0.0 - a library to write Unix daemons. Brings a few more features than the other usual suspects (daemon and python-daemon).
Clojure - datatypes - what I like about Clojure: pragmatic and compact solutions for typical programming problems. Clojure 1.2 will introduce the possibility of having better descriptions of data structures with functionalities defined on them. And not some monstrous construction like CLOS or other Lisp-OO extensions, but rather lean constructs that also fit well with the host environments (JVM and CLR). Looks quite interesting. The downside of all the changes in Clojure: books become outdated faster than they can be printed ...
Rubinius : Use Rubyâ„¢ - I'm not a big Ruby fan, but Rubinius (Ruby-in-mostly-Ruby) has been released as version 1.0. And the various projects to bring Ruby to a mostly Ruby-based platform with LLVM underneath still make me envious. I would love to have something like that for Python ... (yes, I know Unladen Swallow and PyPy - but both are still miles away from a serious version, unfortunately)
Street View: Google eavesdropped on open WLANs - that's exactly the problem with Streetview. Not in the pure photos. But in the entire program - the integration of various things in a large-scale scan. The combination with all the databases that Google already has. The merging of various information sources, purely from the geek's perspective as "wow, hey, look at all the stuff we've got, now let's just pull out everything we can". Or put another way: just imagine, the cars didn't belong to Google, but to the state. And the program, the databases and the information gathering frenzy wasn't a company in America, but our state. Would the accumulation of information and data then appeal to you as much as Streetview? If it were the state, at least there would be the appearance of democratic control over this gigantic database.
alienscience's leiningen-war - interesting plugin for Leiningen, the build tool in and for Clojure. Provides commands that quickly and easily generate .war files, which can be used for deployment to the Google App Engine, for example.
hiredman's lein-gae - Documentation is practically non-existent, but it only provides a simple command that prepares the war structure for a Google AppEngine project and adjusts the project.clj. Another way to build Clojure programs for the AppEngine.
Licenser's lein-search - and a small plugin that brings the search for modules and their versions to the (Leiningen) command line.
sethtrain's beget - alternatively to leiningen-war, you could also use this base project and simply adapt it. The Google AppEngine Tools are also fetched as a dependency here.
Marak's JSLINQ at master - GitHub - a nice small JavaScript library that offers a query language for JSON data. It is oriented towards Microsoft's LINQ, but currently only has simple queries implemented. Nevertheless, it might be quite interesting to make JavaScript code more flexible and readable when working with larger amounts of JSON data.
parsedatetime - a very practical library that converts "normal" date specifications (unfortunately only in English as far as I can see) into Python datetime objects.
PyPy Status Blog: Running wxPython on top of pypy - PyPy is really making huge strides towards being usable. It's already faster than CPython in some cases and now even larger C extensions like wxPython are running. Cool.
Zoolander - a small Python library that allows you to use Python as a DSL for generating CSS. Sounds silly at first, but if you want or need to produce CSS dynamically and then embed it in a web framework, it can be quite practical.
The Brads – How to Alienate a Fanbase - if anyone needs a short summary of what Adobe stands for.
Thoughts on Flash - is of course again dismissed as blah-blah by all Apple opponents, but well - the reasons are compelling. And sorry, but it's really true: Flash stinks.
django-pagination - I need to take a closer look at this, it looks interesting. Pagination is not really difficult, but it's annoying to build it yourself every time - and Django's built-in tools are not always optimal for this (especially with large amounts of data).
Henry's EuLisp - someone has revived EuLisp and gathered the sources, as well as the specification. At least historically interesting, because EuLisp was one of the standard efforts for a more modern Lisp with quite good object-oriented support. But the implementation itself also has some interesting features.
jcotton - Build animations and graphics with JavaScript and Canvas. Looks quite interesting.
XML in Postgres – The Game Changer « Flex and Specs() - I should really take a closer look at the new PostgreSQL features. Especially since the XML support in PostgreSQL brings some of the advantages of document-oriented databases to the relational world, without needing extra middleware.
Archives of the Caml Mailing list: O'Caml for DOS - because I just stumbled upon it again. Wow, 96, that's a long time ago. Why is OCaml always listed as such a modern language? It's already 14 years old ... (and the language on which OCaml is based - Caml Light - is even older)
Daring Fireball: New iPhone Developer Agreement Bans the Use of Adobe's Flash-to-iPhone Compiler - well, of course Apple has the right to set the terms themselves. And I have the right to find iPhone programming completely uninteresting now - sorry, but I'm not going to deal with such low-level programming languages anymore.
django-ajax-filtered-fields - I need to take a closer look at this, it could be quite interesting in the Admin for larger amounts of sentences in relations.
My experience with using MongoDB for great science. - NoSQL is, after all, in many cases a playground for people who want to try out how databases actually work. With many of these projects, I already wonder what possessed them when they built it. I'd rather rely on solid and proven tools like PostgreSQL and SQLite. And if a NoSQL database, then better one that has been in productive use in larger installations for a longer time. Cassandra comes to mind, for example.
twitter's gizzard - could become interesting, a framework for distributing and replicating data across various backends. Gizzard deals exclusively with sharding and replication, the datastore itself is treated separately, making it interesting for various scenarios.
Writing a non-relational Django backend - Django nonrel / NoSQL blog - All buttons pressed - I'm not a big fan of NoSQL (in my opinion, many NoSQL approaches reflect a lack of understanding of relational databases rather than actual shortcomings or weaknesses of relational databases), but if you're going to use NoSQL, I'd prefer to do it through the Django ORM, which I quite like. And here's how you can build a Django ORM wrapper for NoSQL databases with relatively little effort.
Perfection kills » What’s wrong with extending the DOM - because I keep discussing with colleagues why JQuery is better than Prototype: Prototype heavily uses the extension of prototypes, while JQuery hangs almost everything on its own JQuery object and is therefore much more cooperative in interaction with other JavaScript.
Oracle Announces Latest Release of Oracle® Berkeley DB - Berkeley DB now has a SQL API based on SQLite. Source code compatibility with SQLite, so programmers can switch if they prefer the much more unstable and vulnerable storage of Berkeley DB and like to repair their databases. Sorry, Oracle, but that's ridiculous. BDB is only interesting for those who have to work with it by force - anyone who wants to switch to BDB today must be crazy. If I'm already programming against the SQLite API, I'd rather use the right tool right away. Yes, of course, SQLite has some bottlenecks when you want to access it in parallel with multiple processes. But I'll let Oracle in on a little secret here: SQLite has such a tolerant SQL parser because you can then write source code whose SQL works seamlessly with both SQLite and PostgreSQL. So if you hit the limits of SQLite - just switch to PostgreSQL and you're good to go.
NLTK Home (Natural Language Toolkit) - and if you want something more powerful and flexible, this is so to speak the grab bag for parsers. Focus is on the analysis of natural languages, hence also things like stemmers (stem finding for word forms) are included. Could be overkill for simple embedded languages, though.
Python Package Index : Esrapy 0.5 - a parser and lexer toolkit completely in Python. Might become interesting in some projects later, at least for smaller configuration languages.
Building Skills in Python - Online book about Python for programmers who simply don't know the language yet. Looks very well made at first glance.
Bottle: Python Web Framework - super-simple Python web framework that comes as a single Python file. No dependencies other than the standard library. No built-in ORM, but very lean and perhaps interesting for projects where you don't need or want a database (or use the file system as a database).
clojure-python - an interesting project that aims to simplify interoperability between Jython and Clojure and raise it to a similar level as it already is between Clojure and Java. Particularly interesting for me, as it would allow me to rely more on Clojure as an alternative - Jython is already a planned component of the toolkit, but has some performance issues that Clojure does not have through more direct Java integration. Moreover, I prefer to write compact Lisp code rather than verbose Java ...
hugoduncan's clj-ssh at master - GitHub - quite an interesting library that enables ssh access in Clojure scripts. For example, very interesting for server automation. Uses Jsch, a native Java ssh library (so no detour via shell-pipes or similar).
Scala: Post-Functional, Post-Modern, or Just Perl++? - interesting post that addresses some of the points that also bother me when looking at Scala. I particularly like the designation as Perl++, as that is exactly the impression that comes to me whenever I delve deeper into Scala. Perl has always fascinated me, but by the time I built larger projects with it and used the advanced features of Perl more intensively, I had some doubts about the maintainability of the result - especially with regard to handing over the work to one of my colleagues for further maintenance. At that time, I switched to Python because it offered me many of the features in a much cleaner language concept. I think this could also explain why I just can't warm up to Scala, even though many aspects of it fascinate me.
digg's lazyboy at master - GitHub - because key-value datastores are currently all the hype (and because they are really more practical for some things than classic databases), I will probably take a look at Cassandra. Simply because reports on the web suggest it offers the best scaling possibilities. And because it is used in some large websites - specifically, for example, at Digg (which I find as a site to be stupid, but hey, they have a lot of traffic and run relatively stably) with lazyboy as the Python binding.
17.6. multiprocessing - much better than external modules for process communication are the tools included with Python since version 2.6 in multiprocessing.
rfc1437 / lazypy / source — bitbucket.org - and another project of mine (again) online. Lazypy is a small library that makes lazy evaluation and futures (thread and process based) available for Python. Very practical for simple concurrent programming. Ok, you can do everything by hand, but I prefer the more functional approach. It's actually from 2004, but I modernized it (the process-based futures to bypass the GIL) and uploaded it again.
Semanchuk.com - Python IPC Modules - inter-process communication with Python.
A simple web application in Clojure using ring and enlive « LShift Ltd. - and here is a small example of how to actually work with ring and Clojure. Looks quite interesting, could be particularly interesting for me for web services in Clojure.
Dynamic Web Development with Seaside - those who want to get started with Seaside might find an approach here. Free online book (also available as a paid PDF or print-on-demand via Lulu) about a quite impressive web framework for Smalltalk. And since it now also runs with GNU Smalltalk, operating it as a headless server on your own root box is no longer a big problem.
Heroku | Ruby Cloud Platform as a Service - also quite interesting: a Ruby service that enables easy website hosting in Ruby within a cloud structure. In principle, something like Google App Engine, but with Ruby. The approach is quite interesting, you generate a base app and then pull it to your own computer with Git, change and update with Git. There are various addons and plugins that you can use, Rails is of course also supported. And since you keep your app as a normal Ruby app locally, you are also relatively independent of the provider and can switch to self-hosting if necessary.
inessential.com: On switching away from Core Data - scary read. Really - sure, ORMs are nice. And practical. But somehow it scares me when programmers like Brent Simmons (the NetNewswire guy) so openly demonstrate that they actually have no idea what they are doing. Just because you use an ORM to walk through lists of objects and edit individual objects and then wonder about poor performance? And only at the end of the optimization sessions ask the question whether an ORDB is actually the right way? Hello, are you still there? As soon as large amounts of data are involved, the question of mass data processing automatically arises, and if the ORM does not provide usable abstractions, then it is out ... (one reason why I like the Django-ORM, it cooperates well with handcrafted SQL and offers a lot of helper tools via introspection to create these own SQLs as model-abstract as possible). For me, the linked post is on a similar level as Guido van Rossum's "what do you actually use continuations for, I don't get it".
Johnny Cache v0.1 documentation - definitely try this out with a project at the company, as the model is quite powerful and I could elegantly solve some of the problems for which I currently have special solutions. It's also quite similar to my first approach to this problem (although I have now solved the biggest performance problems through redundant data storage and automatic updates to objects, also quite elegantly).
Kotka : Projects : Clojure : VimClojure - and anyone like me who is a VIM fan might be pleased with this Clojure integration. Many of the features already come close to the performance class of IDEs like Netbeans or Eclipse. (although the Clojure plugins for Eclipse and Netbeans also make a very good impression).
LinuxTuples - a Tuple-Space Server for Linux, written in C but with a Python API. I should take a closer look, could be interesting for distributed apps. Although I would prefer a Python-local implementation based on standard process communication tools to work better with multiprocessing in Python. For simple tools or web apps, it would be easier to fork some things directly from there and then communicate via TupleSpaces. But to start an extra server for that, it's not quite right either.