Epistle - Android Apps on Google Play. And another Markdown editor for Android, which is less Wiki and more a simple Markdown editor, but still quite interesting - it also comes with Dropbox support.
Archive 21.5.2012 - 4.7.2012
JWBs blog: Ema Personal Wiki for Android and Windows. Since I was just talking about Markdown - here's a personal wiki that uses Markdown for various systems, including Android. According to the description, it's quite similar to Vim Wiki.
OscarGodson/EpicEditor. That sounds interesting - a web editor that doesn't just produce HTML, but Markdown. Could be interesting for some projects.
Blackmagic Design: Blackmagic Cinema Camera. Wow, that thing is really cool. So to speak, the mirror-less video option for Canon, one could say - because it has an EF mount. It looks really sleek, the price of $3000 without SSD though.
Cloud Party. Sounds interesting - a bit like Second Life in the browser with WebGL. Seems to really focus on the core features of SL: building and customizing. I should try playing around with it.
Repo.js. I found the Source-Highlighter through this - a small jQuery plugin that easily embeds a GitHub repository into a website. Very practical if you want to integrate your projects into your own websites and don't want to hand over the entire website to GitHub.
isagalaev/highlight.js. Just stumbled upon it, a small JavaScript source highlighter that works with a language heuristic and thus does not require explicit specification of the language to be colored - it simply tries all languages and takes the one with the most recognized syntactic elements. There is also a jQuery VanGogh jQuery plugin for this.
ErlPort - Erlang port protocol for Python. A somewhat different approach to distributed communication is this module, which simply implements Erlang's built-in communication tools (ports and terms). With this, you can build systems that use Python or Erlang as the implementation language, depending on your needs.
Hurricane. Sounds interesting, it's a distributed messaging system that works with various languages and thus offers integration of different systems. Among other things, it includes Python with WSGI and Ruby with Rails, making a distributed system based on Rails and Django conceivable. Additionally, there is a process manager, with which the processes themselves only need to handle standard I/O and then can be directly managed by Hurricane. I could imagine using this for one or the other project at the company.
Recently on the Internet (Black and White Edition)
I have uploaded new pictures to Google+ and/or Flickr. Here they are - unsorted and uncommented. This is the black and white edition.
Recently on the Internet
I have uploaded new pictures to Google+ and/or Flickr. Here they are - unsorted and uncommented.
SQLite4: The Design Of SQLite4. That sounds very interesting. Especially the first paragraph in "2.0 Overview", where he briefly emphasizes that SQLite3 will continue to be supported and both versions will remain available in parallel. And of course, the various changes that SQLite4 will have compared to the other version, such as the significantly better encapsulation of the engine in its own object. This makes it quite possible to have multiple databases open at the same time without much juggling. And what particularly pleases me: all calculations in Decimal Math and no longer double or float. Sorry, but double (and especially not float) has anything to do in a database, except perhaps as a data type for rare special cases. Also some other nice things in it, for example covering indexes and of course the standard available foreign key constraints.
Jarvis. Someone is working on something like Light Table for Python (Light Table has also promised Python support, but so far there's only a preview for Clojure). Looks quite interesting and finally brings some fresh air into interactive environments for programming languages.
Remote Debugging - Real Software Documentation. Other systems should take a few slices from this. In my game project, I had a problem with the latest version under Linux. However, my development environment is OSX, where everything runs smoothly. So what to do? Well, a good opportunity to take a look at the remote debugger. And it's really trivial. Boot up a Linux system (I use Vagrant on my OSX machine), copy over the remote debugger stub, run it, configure it minimally, and get started. Directly from the OSX IDE, transfer the compiled code to the remote environment and start it, directly with breakpoints and variable watch and such things. Basically, all that I would also have locally with OSX. In principle, there is almost no difference, except that the program runs on Linux. Why is it so much more complicated in so many other environments? I guess I'm getting old, I just don't have the patience for cumbersome environments anymore.
..Nowhere.. has a series of free classes and plugins for RealBasic, including one for a syntax highlighting editor and list boxes with arbitrary cell content.
The Opa blog: Announcing Opa 1.0. Opa no longer generates native code for its own backend, but generates JavaScript for Node.js integration. Sounds quite interesting, as Node.js integration could eventually allow access to the libraries available there (though you would then naturally lose the guaranteed properties of Opa). And additionally, the chances are now higher that you will find a suitable host or that self-hosting could become more pleasant.
Make runfcgi fail when database connection is open before fork. This is something I've been chasing for ages, most recently in a few pretty important projects. Flup works by first initializing the WSGI application and then making the forks for the workers with this initialized WSGI application. Unfortunately, we have database accesses during application initialization - as a result, the base process already has an open database connection, and each fork copies these data. But the socket of the connection doesn't go with it - the new process just thinks it's connected, but it's not. Accesses from the new processes then fail with an exception. In the linked patch, you can also replace the raise on the exception with connection.connection = None. This simply discards the connection that is already defective and always builds a new connection in new processes. With this, we have at least been able to fix this in a production environment (with psycopg2) and are optimistic that it will also help in the environment with pyodbc.
LiveScript. Looks interesting, a descendant of CoffeeScript, but with a syntax that is strongly inspired by Haskell and a Prelude that also aligns with Haskell. With it, you can work in a functional language instead of JavaScript, which, however, continues to try to maintain a balance between functional and imperative elements - so not the pure approach as in Haskell.
ronnix/fabtools. Looks interesting - a few tools for Fabric with which you can manage simple system packages and Python packages (also within virtual environments). Should take a look, could simplify a few things when initializing work environments. However, Vagrant currently only uses Chef and Puppet and not Fabric, if I remember correctly.
SET TRANSACTION ISOLATION LEVEL Transact-SQL. There you can find more information about the isolation level in MSSQL, especially what the snapshot feature means. In principle, this makes MSSQL behave similarly to PostgreSQL.
#18251 multithreading deadlock in django.models.loading.get_apps – Django. And another thing that might affect us - race conditions between Django threads during the initialization of Django applications. There's already a patch for this that fixes it in the Django internals.
Enabling Snapshot Isolation - SQLAlchemy 0.7 Documentation. Could this help us? MSSQL seems to have a rather unfavorable isolation level as default. Hmm, we'll probably try it out.
"Prince Flo, King Django & The Deadlock Doctor" by Bluekilla – laut.de – Song. Okay, yes, I was looking for ideas about problems with deadlocks and Django, and well, the title of this song sounds like it could become the theme song for my problem, but unfortunately, the Deadlock Doctor doesn't have any useful ideas either.
Using SELECT FOR UPDATE in Django. That's what it's all about. Because the Django ORM cannot currently generate a SELECT FOR UPDATE, but sometimes you just need it.
WordPress › WordPress 3.4 “Green”. Amazing - release update, two theme updates (one - twentyten - I use as a parent theme for my own RFC1437 theme) and a plugin update later and my blog still works. Well, and still dissatisfied: a bug in the Atom posting for Media has been open for ages and not fixed. And 3.4 changes the Atom posting infrastructure, but doesn't fix the bug again. And the old patch doesn't work anymore because the file structure has changed. And that's exactly where the deficit of the WordPress Dev team always shows up: to respond to bug reports and close the damn things. Let tickets with patches rot for 11 months until the file structure changes so that the patches no longer work? Ridiculous. And for me that means that my posting workflow for images into the blog is broken for now, because the XMLRPC upload cannot set metadata such as title and the Atom upload only uploads the image file, but does not create the different image sizes needed for posting.
Thomas Tempelmann | Arbed - The Advanced RB Editor. You stumble upon all sorts of things - I still know Thomas from Modula-2 times, he was like the Modula-2 compiler guru back then. And now he uses Real Basic. And he has built a quite interesting tool for working with RBP files, which I should take a look at because it could simplify a few things (especially versioning, the possibilities that RB offers out of the box are not very impressive). And yes, I really do use Basic. No joke.
ucsd-psystem-vm 0.11. I just had a flashback - UCSD-p System is alive! The link is a VM for UCSD Pascal that runs under Linux. And there is also the original UCSD-p System for download. There is even a version (IV) for DOS, which is probably the easiest to run.
TryAPL. Also online. Also, an APL in JavaScript. With a popup keyboard with the funny APL characters on it. Fun.
PEG.js – Parser Generator for JavaScript. I stumbled upon it while looking for some parser implementations, including PEG-based parser generators, as I have a PEG definition for Markdown. But I probably need to study some theory before I can use it meaningfully. Or I'll just handcraft the parser - the Markdown syntax isn't really that complicated after all. And for my game project, I need to extend the parser with various custom features anyway.
REALbasic | Open Source | Charcoal Design. Open Source for Real Basic. Yeah, I'm currently programming things for myself in Basic. And honestly: it's fun. I found this site while searching for JSON implementations for Real Basic.
Xcode 4.3 MacRuby compatible problem workaround - 東 . Blog. Annoying, but necessary - the AppStore migration of XCode has broken the template installation of MacRuby, so that even with the new MacRuby (0.11 with support for XCode 4.2 and 4.3 is out) the templates do not work right away and the integration with Interfacebuilder does not work. With the instructions here it works again.
Waterbear: Welcome. Falls into a similar category as Google Blockly, but it is more of a toolkit on which one can build visual languages. So maybe interesting for one or the other. Definitely interesting to play around with.
google-blockly - A visual programming language - Google Project Hosting. Generally, I consider visual programming languages to be dead-ends and rather useless, albeit entertaining toys, in most cases. I would also place Blockly in this category, especially since it is really just a visual representation of classic programming structures - such as IFs, variables, and the like. Actually disappointing, considering that Prograph already visualized data flow programming decades ago (and thus provided a much more interesting model for a visual programming environment).
Emmerich am Rhein and Rees
On the day of our return journey, we stopped in Emmerich am Rhein and in Rees and took a small tour on the Rhine in Rees. A nice end to the weekend.
Open-Air Museum Arnheim
And on to the third day - the open-air museum in Arnhem. It is right next to the zoo and just as beautiful in a forest and meadow landscape, inside a tram runs and there are always small show performances. Really very nicely done.
Burgers Zoo
And here is the second day - pictures from Burgers Zoo, our main destination. As you can see, it all starts and ends with penguins. Perfect beginning and end.
Impressions from Arnhem
Here's the beginning of the Pentecost weekend - impressions from the city center and the Rhine bank of Arnhem.
AugmenteDev. Absolutely cool toy - you print a few markers (small pieces of paper with patterns), place them around, and then you simply load a few 3D models onto your iPhone or iPad - these then appear at the locations of the markers, correctly scaled and rotated according to the markers. Very entertaining, even if it sounds banal at first. My to-do now is to convert my SL avatar into its own 3D model in various poses, and then have these as models on my iPhone to take photos from all sorts of places with my avatar in the picture. Oh, and the app is free for iOS and Android.
RQ: Simple job queues for Python. Really simple - you only need a Redis server and the module and that's it more or less. Simple function calls are thrown into the queue, executed and results returned. No big overhead in the code.
apenwarr/bup. A very interesting small tool that manages backups differentially - and that is based on the git data structures. In principle, one could consider it as an intelligent splitter for large files with minor changes in each version - for example, tar files from servers. For this purpose, an rsync-like algorithm is used to determine the differences and the result is stored in a git archive. The whole thing can also be combined with the previous git-annex and thus provide a space-saving backup solution.
git-annex. Interesting plugin for git with which you only manage the metadata of large files, but not their actual contents in git. The files themselves are managed as normal external files, but the directory structures and references are correctly versioned - and all this together with normally versioned files. This bypasses the problem that git has with large files. And thus something like a photo archive based on git becomes possible.
Mumble. It's somehow funny when you get your software tips from a political party, but never mind. Mumble is something like Teamspeak (or also a distant relative of Skype group chats or Google+ Hangouts), only open source and for self-hosting. Clients are also available for OSX, Windows, Linux, and iOS. By the way, there are also efforts to integrate mumble as an alternative to Vivox in OpenSim as a voice system.
Sphero. Oh man, I want that thing. Why is there so much cool stuff now that I'm an adult? (for those who don't want to click: a robot in the form of a ball with precise control and the ability to use it as a controller - and controlled through apps on the smartphone).
Ubuntu 10.04: Why is ksmd eating CPU cycles? | Interphero Miscellany. Okay, just stumbled upon this on my server and blogging it for later reference. When using kvm, on newer Ubuntu versions, ksmd appears, which actually compares memory pages between virtual machines and only stores duplicate pages once - this saves RAM but consumes CPU. If you don't do over-commit on memory, you can safely turn it off.
Features | ownCloud.org. Hmm, now I just need iOS access to the OwnCloud and I think I have a longer installation session ahead of me. I probably won't be able to completely give up Dropbox or similar services (and I don't want to), but maybe it will be enough to switch back to the free version of Dropbox if I only manage the large amounts of data on my own server.
TypeQuery. Generic functions for Python. Only a simple variant with a restricted target range, but definitely worth considering for some things. Currently still single-dispatch on the first argument, but multiple dispatch is planned. At the moment, it is therefore pretty much identical in function to simplegeneric by PJE. And very similar to my multidispatch, in which I try to replicate the model of Clojure generic methods. I really should work on multidispatch again. Or just play more with clojure-py, then I can use "the real thing" right away.
PostgreSQL: Documentation: 8.4: hstore. From the series "Things your database can do that you might not know": Key-Value-Stores within a PostgreSQL data field. Or also poor-mans-object-notation. Or simply practical when you want to store loosely structured data but don't want to constantly adjust the schema - the schema is then the primary data for the order of the model, the dependencies, cardinalities, etc. - and the hstore field then stores the additional manifestations that, for example, result dynamically from business requirements. Sometimes the better alternative to a denormalized property table. And it's been there since the 8.x versions (though it is a loadable module).
TeamPostgreSQL - PostgreSQL Web Admin GUI Tools. Looks good, a web interface for administering PostgreSQL databases that comes close to PGAdminIII and doesn't look as spartan as PHPPGAdmin. However, I have problems accessing databases from a project - it seems not everything is quite cleanly implemented, especially in the handling of sequences. Therefore, I can't say anything yet about whether it is performant. The whole thing comes with a Java-Tomcat server, so you can install and run it locally directly.
Map of Life. Interactive map based on Google Maps that can display the distribution of animal species.
Matasano Security - Matasano Web Security Assessments for Enterprises. Analysis of cryptography in JavaScript. Summary: Cryptography in JavaScript is usually a bad idea, as the JavaScript is loaded from an untrusted source or untrusted network (if you trusted it, cryptography would hardly be necessary) and therefore a chicken-and-egg problem exists. Regarding the previous 0bin project: cryptography was not implemented to secure the user, but to secure the 0bin operator - it is therefore relatively irrelevant to the operator whether users are secure or not, it is only about "plausible deniability" for the operator. The situation is different, however, when a JavaScript encryption is implemented instead of using SSL.