schlitt.info - php, photography and private stuff ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ :Author: Tobias Schlitt :Date: Wed, 10 Mar 2010 11:13:28 +0100 :Copyright: CC by-nc-sa ================================= Blog - Open Source - schlitt.info ================================= Welcome to the open source website of Tobias Schlitt and especially to the blog. I'm publishing news and articles about the open source projects I'm involved in and information about other open source projects here. A main focus of this blog are projects around and implemented with the `PHP`__ programming language, as well as the language itself. But I'm also talking about other OS software. .. __: http://php.net The content of this website does only reflect my personal opinion and does not necessarily reflect the opinion of any of my customers or companies I work for. All content is provided under the stated license and you may use it under the terms provided by it. If you need further permissions or are unsure about a certain use case, do not hesitate to ask me via email. - Accelerando This is a very unusual blog post for the open source area of my website, since it contains a recommendation for a science fiction book. The reason I've put it here instead of the private section is on the one hand, that it will definitely reach more geek - and therefor probably scifi interested - people here. On the other hand, the book I'm writing about can be found online for free in English language, but the private section is mostly kept in German.I love scifi literature and movies, as most geeks do. But the quality of works in this area varies quite a lot. Beside the style of writing, there is one crucial point, which can make the best novel be a total disaster: Authenticity. - Python. Good, bad, evil -1-: Missing brace Every programmer should learn a new programming language once in a while. Be it for inspiration or just for fun. After some homework in C# some years ago and quite some Java at university (again), Python was my language of choice. This is the first article in a series I plan to write about what I like in Python, what is disturbing but works out and what is really evil. In this article I give a short overview on my motivation to dig into Python and start with a first topic: The missing braces. - PDV → VIP, now on github! phpDocumentor for VIM (PDV) is a project which resulted from my efforts to create a comfortable programming environment for PHP in the VIM editor. Since the server which hosted the SVN repository is to be switched off the next days, I finally moved development over to github.In addition to that, I seized the chance to rename the project itself to VIP (VIM integration for PHP). The repository does not only contain the PDV script iself, but also a filetype plugin for PHP, some useful color schemes, a PHP skeleton file, settings for other (related?) programming languages and more. - Heap, heap, hooray! I recently had the problem that I wanted to retrieve the smallest items from a stream of data. When talking about a stream here, I refer to a data set that I do not want to load into memory completely, since it has quite a few elements. The best way to process such data is a stream approach, where you work always on a single item at a time, iteratively, without loading the full data set.In my special case, I had a database with 140,000 records. The processing of these records could not happen in the DB, since I needed to create vectors from text and perform calculation on these. Basically, I needed to check each vectors distance to a reference vector and keep only the k closest ones.So, what is a good approach to solve such a task? I decided to implement a custom data structure based on a max heap to solve the problem. In this article, I present the solution and compare it to two different other approaches in terms of a small benchmark. - 10 Android apps every Android device needs Since last November I'm the happy owner of an Android smart phone. Actually, I already have my second one: After the HTC Hero, which was already amazing, I now have the Motorola Milestone (aka Droid). This blog post lists and reviews the apps that I think every Android phone should have installed. - Convert from and to OpenDocument Yesterday the latest stable release of the eZ Components project, number 2009.2, was rolled. For this release I worked on support for OpenDocumentText (ODT) in the Document component. In this article I show you how you can import OpenDocumentText documents and convert them into any of the supported formats of the component, how to export data into ODT and how to apply styles to the generated documents. You will also see how ODT and PDF can be exported with the very same styling information to make them look almost identical. - Tweet tweet a year … So, it's exactly one year ago that I started using Twitter. I remember that I was always of the opinion that Twitter is one of the most stupid hypes nowadays and that it's so useless to know when other people have a cup of coffee or go to the toilette. Using Twitter actively for exactly one year now proofed this attitude wrong. I'm providing some stats on my live with Twitter in this article and try to explain my personal value of using Twitter in. - IPC 2009 - slides and more The IPC 2009 was amazing, even if it's still running while I write this blurb. Find my slides in this article, as well as a small resume of the conf. Thanks for the great event! - eZ Components Open Book Attention: This blog post is in German, due to the fact, that the book is also in German. In short: Kores and my book about eZ Components can now completely be found online, for free. Das von Kore und mir verfasste eZ Components Buch, gibt es jetzt als Open Book komplett online zu lesen. - Scalar type hints in PHP Ilia recently brought up the topic of scalar type hints again. I would love scalar type hints, but a sensible implementation is not easy. I summarize some approaches in this post and talk about the problems they raise.