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.
Linkblog - 21.2.2010 - 7.4.2010
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.
IBM breaks OSS patent promise, targets mainframe emulator - was to be expected, but still a nasty story. IBM is IBM - and IBM is only its own friend. Large companies first look at their own wallet, then at others. And Hercules allows some things that so far only low-end mainframes have achieved. That's where the fun and the cuddly course end for IBM.
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.
Elixirgraphics - and here you'll find nice themes for RapidWeaver. I particularly like Lime, Factory, and Nimbus. Sprout is also quite nice. And yes, I know, no free themes - but hey, good design is a lot of work.
seyDesign Professional RapidWeaver themes - even more RapidWeaver themes and a few open source versions - with these I could also take a closer look at the innards of such a theme.
YourHead Software - I'm still considering whether to get their plugins for RapidWeaver. I managed to get RapidWeaver quite cheaply from the last MacHeist and the first experiments are really nice. And all the YourHead plugins are based on JavaScript instead of Flash, which could be good for static websites. Additionally, their internal data format is simply folders full of XML files, so you could also do something with tools.
Sony Steals Feature From Your PlayStation 3 - those who think Apple's restrictive policy is bad, read this about Sony. If you bought your PS3 because of the possibility to also run Linux and play with the multicore system, you can now participate in a free feature downgrade.
EU Commission wants to introduce Internet blocks - proof of how brainless the Commission construct is and how urgently Europe needs to be put on sensible, democratic feet. We now have to deal with this nonsense again, even though it's finally done locally - and European commission bureaucracy is even harder to overcome than Schäuble's fantasies. For Schäuble, one election and a change of ministers was enough, but the time until the next commission composition is long.
Several Dead in Attacks on Moscow Metro - since I am somehow connected to Russia, one looks at such reports with different eyes. A few weeks ago the attack on the train from St. Petersburg and now this in Moscow. The Urals have been very quiet in the last two weeks.
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.
Jobo AG & Jobo Labortechnik GmbH are insolvent (updated) | photoscala - great, I just bought a Jobo image tank last year, so firmware updates might become problematic in the near future. Okay, I don't plan to buy new cameras anytime soon (I just renovated my system), but still...
Oscar for Waltz - absolutely deserved. The man was the perfect casting for me in Tarantino's film.
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.
mmcgrana's ring at master - GitHub - nice small lib at the level of Python WSGI. So absolutely minimal HTTP bindings for Clojure with the possibility to then operate the whole thing via a whole range of different techniques. Particularly interesting for the cases where you don't want to be put into the corset of a finished framework like Compojure.
Open Wi-Fi 'outlawed' in Digital Economy Bill - ZDNet.co.uk - in the UK, free Wi-Fi could soon be a thing of the past - a point where we can only hope that it remains a purely British path. But I can imagine one or the other politician who would crave to implement the same in other countries or even across the EU. And hey, if this forces hotspot operations only into the hands of large providers, that's great, because then we also know where the next party donations will come from ...
PiCloud | Cloud Computing. Simplified. - very interesting service: trivial distribution of Python code (with access to C/C++ libraries for number crunching and other things, e.g. also image processing, even your own C/C++ libraries are possible) on a provider-managed EC2 grid. The programmer only writes his Python code, tests locally, if everything works well with small sets, upload base data, import, function call and wait until the results are there - payment is made according to usage time. Definitely keep an eye on it, in case you need to process larger amounts of data - this can indeed be cheaper than providing the necessary resources yourself.
rfc1437 / django-standalone / overview — bitbucket.org - As I often refer to Bitbucket, GitHub, or Google Code, here's a link to my own small package on Bitbucket: django-standalone. It was created because I often need an ORM for small scripts and tools, but I want to keep the hassle to a minimum - not set up an entire Django project, but simply define a few models in my script and initialize the DB via parameters and then use it. Preferably with sqlite3. This library makes it wonderfully easy, and I can finally cross one of my long-standing projects - "write a simple ORM for simple scripts myself" - off my to-do list.
World Record-Setting Kick to the Groin Raises Five Perplexing Questions - World Record - Gawker - I think removing yourself from the human gene pool by letting yourself be kicked and beaten in the jewels for years to set a record, receiving a kick with 22 mph speed and 1100 lbs of force there, would be worth a Darwin Award. And he could even pick it up himself.
Fiat lux » Extracting iPhone Backup Data with mobilesync-inspect - and another tool that is available for OS X and Windows for this purpose.
iphone-backup-decoder - Project Hosting on Google Code - the same again as a command-line script in Python. Possibly even more interesting for me than the GUI tool.
iPhone / iPod Touch Backup Extractor - since iPhone backups are binary files and a friend now has problems with a corrupted backup, I linked this tool as a precaution, with which you can extract files from potentially defective iPhone backups, as long as the basic structure of the sqlite files is still somewhat clean.
Menial » Base - and if you just want to quickly take a look into a SQLite database with a GUI tool, this shareware tool doesn't look so bad.
Bundestag: Arguments or Transparencies? - Members of parliament who protest against military operations by the Bundeswehr are excluded from the debate. A federal foreign minister who disparages Hartz IV recipients can, despite broad protests from all parties in the Bundestag, continue to repeat his nonsense. And we call the whole thing democracy.
dajaxproject.com - easy to use ajax library for django - maybe I should take a look at that, the current project might use quite a bit of Ajax and if you can reduce the amount of JavaScript that would be quite desirable.
PostgreSQL: News: 9.0 Alpha 4 Available Now - was previously called 8.5, so it is the version with streaming replication.
Squeryl — Introduction - I should also take a look at that, as I was not so enthusiastic about the previous persistence layers for Scala. And for initial experiments, I actually don't want to build a web application with Lift right away, but perhaps just rewrite a few tools that I have solved differently with Scala.
IronPython 2.0 and Jython 2.5 performance compared to Python 2.5 - word of warning: both Jython and IronPython are significantly (and I mean significantly significantly) slower than CPython. The overhead for Jython with very large data structures is eventually better than with CPython, but for normal use it doesn't look so great.
IronPython hammers CPython when not mutating class attributes - more information about the performance issue. Here related to IronPython - apparently class variables can be problematic in some cases, as the classes themselves change through them and thus JIT compiler information must be discarded (due to the rather static structure of the VM, both in the JVM and in the CLI, probably a very similar problem), which means the JIT compiler then has to rework everything and thus not only are performance advantages lost, but they can potentially even be counterproductive.
Polyglot - a really nice plugin for Chrome that translates random words into a configurable target language. Why? So that you can see new vocabulary from time to time while browsing and thus learn new vocabulary easily. I'm currently trying it with Russian and it's really a nice method - with the few words you have enough context of the sentence to deduce the word. This of course does not practice grammar or declensions and conjugations, but as a little vocabulary boost from time to time very useful.
bpython interpreter - definitely try this out at the company, at home this alternative Python shell made a really good impression. In some points better than ipython and that is already very good (but in my opinion too focused on its own features and away from the Python philosophy, while bpython seems more pythonic)
DreamPie: The Python shell you've always dreamed about! - another interesting alternative Python shell, this one as a GTK window. This opens up completely new possibilities, such as real popups as small graphical windows and direct graphical output. However, py-gtk for OS X is still rather shaky (like all GTK stuff currently, it's still alpha) and actually I prefer similar environments under OS X and Linux.
The New App Store Rules: No Swimsuits, No Skin, And No Innuendo - not that I need bikini models in apps, but one should keep an eye on what Apple is doing in terms of censorship. Yes, in this case, clear censorship, because in the iPhone app market, Apple is the central controller and massively uses this central function. And that means for users of these devices that they live in puritanical America, at least with their available apps. It's probably time to get more intensively involved with jailbreaking. And perhaps at the next contract renewal, not to go for the iPhone again, but to get something else, even if the alternatives look worse and have a significantly worse usability. With Apple's current efforts, I don't want to find out at some point that not only my apps are censored (where even "offensive words" in dictionaries have caused trouble - and one of my current main applications are Russian dictionaries), but also Safari might start censoring my surfing behavior. The Google phones are not an alternative, as their operator is a professional data octopus and is also based in the USA. Nokia may be economically bad since Bochum, but it now has the most open mobile platform with the N900.