Recent posts

GPL violation: Sveasoft

15 Mar, 2006 - 1 minutes

OpenWrt has officially terminated Sveasoft’s license citing blatant violation of the GPL. For more details go to OpenWrt’s forum: Unbelievable . It’s getting quite hilarious. For example you can “learn” that the GPL is derived directly from “the economic and political theories of Karl Marx ”.

In general it is so sad to see such abuses. It is not hard to comply with the license. If you don’t like it, don’t use the GPL’d software in your product. It is as simple as that.

Finalizing PyCon 2006 pictures

4 Mar, 2006 - 1 minutes

I found some time to finalize my pictures and notes on PyCon 2006. I tried my best to identify people in my pictures. Now you can see their names and links to their blogs. I added links to official descriptions of their talks, as well as to excellent detailed notes of some talks by Steve Holden . I advise to visit his blog, because he has notes on some talks I didn’t attend.

More PyCon 2006 pictures

26 Feb, 2006 - 1 minutes

I added more pictures from PyCon 2006 . Enjoy.

Simon, Adrian, Jacob, and Matt.

Now time for a blog roll of my photo models (far from complete):

Person Blog
Adrian Holovaty http://www.holovaty.com/
Simon Willison http://simon.incutio.com/
Jacob Kaplan-Moss http://www.jacobian.org/
Matt Croydon http://www.postneo.com/
Derek Willis http://thescoop.org/
Ian Bicking http://blog.ianbicking.org/
Bob Ippolito http://bob.pythonmac.org/
Guido van Rossum http://www.artima.com/weblogs/index.jsp?blogger=guido
Ian Maurer http://itmaurer.com/blog/
Andrew Kuchling http://www.amk.ca/diary/
Jeremy Dunck http://dunck.us/anabasis/
David Ascher http://ascher.ca/blog/
Jeremy Hylton http://www.python.org/~jeremy/weblog/
Jim Hugunin http://blogs.msdn.com/hugunin/
Phillip L. Eby http://dirtsimple.org/
Mark Ramm http://www.compoundthinking.com/blog/
Steve Holden http://holdenweb.blogspot.com/
Bram Cohen http://bramcohen.livejournal.com/
Kevin Dangoor http://www.blueskyonmars.com/

I know I missed some blogs, please let me know your blog address, and I will add it.

PyCon 2006 pictures

26 Feb, 2006 - 1 minutes

Here in Dallas PyCon 2006 gave us an opportunity to meet many "virtual" people from Python community, and put faces to names. For those who couldn’t attend I am publishing pictures and small notes on Flickr . I will add more pictures tomorrow. If anybody’s name is misspelled, or missing (I didn’t catch all names), or you want me to remove your name or picture, please contact me and I will change notes. I am planning to add blog addresses to people’s names as well.

Setting up tools on Windows

Update 9/30/2006: when you finish this article don’t forget to read more about setting up tools in the second part: Setting up tools 2 .

My goal is to set up working environment for Django development on Windows box. You can find a lot of information on setting up open-source development tools on Linux. Somehow it is assumed that your project should target LAMP (Linux, Apache, MySQL, Python). Windows-bound guys are advised to decorate their platform as ersatz Linux: install Apache, install MySQL, and you have WAMP (Windows, Apache, MySQL, Python). What kind of fun is that? No, we are going full WIMP (Windows, IIS, MS SQL, Python)!

OpenWrt GUI: new release

15 Feb, 2006 - 1 minutes

It looks like this is the last update before upcoming beta release. Besides some minor bug fixes, it sports improved firewall configuration widget:

  • Compact representation of port ranges.
    • Example: tcp 9000-9100 ⇒ mycomp
  • Port redirection.
    • Example: tcp 8080 ⇒ mycomp:80

While the former improves on existing functionality, the latter implements totally new feature. It allows mapping external ports to different ports of internal computers. Redirection of ranges is supported as well. As a matter of fact it was the most requested feature so far.

Packaging web apps

2 Feb, 2006 - 4 minutes

Have you been frustrated lately by speed of web applications? Typically they have a lot of art, and structured into a nice set of JavaScript and CSS files. They look beautiful, aren’t they? But do you have the patience to wait them load? And proceed from step to step?

Of course, it is possible to prepare a web application to high-demand life: merge all stylesheets, and JavaScript files, and compress the result, structure your GUI in such a way that it is possible to combine all small images in one, and so on. This is very tedious low-level work. There are some tools, which can take care of the problem. For example, Dojo compressor merges JavaScript files and transforms the code to minimize its size. There are some tools to “compress” CSS. But the task of general optimization of your web app is up to you. Otherwise you will have a lot of frustrated users.

Looking at stats: Google Video

2 Feb, 2006 - 2 minutes

Let’s take a look at Snakes & Rubies stats published on Google Video. But before that take a look at previous stats published on 1/27/2006. New stats include 5 more days covering 18 days of January 2006.

Title Page views Downloads
Snakes and Rubies (Adrian’s Django presentation) 190 7
Snakes and Rubies (David’s Rails presentation) 169 19
Snakes and Rubies (Q&A session) 89 2
Snakes and Rubies (full) 149 12
Totals 597 40

Lessons:

Python web frameworks

31 Jan, 2006 - 1 minutes

Now after two posts about Guido ’s quest for the Right Web Framework (1st , 2nd ) I am starting to feel like his relay station. But I want to share his comment made in Matt ’s blog post on Python web framework shootout :

Why criticize Django for claiming to be the best? Nobody has denied it, and yet it’s criticized as if it were somehow unethical. Frankly, the problem is that there are too many Python web frameworks and wannabees, and if we don’t start some kind of shootout, however subjective, we’ll never get to market dominance of a few good ones. I’m not saying Django is already the winner – but we are looking for a winner (or, more likely, a small set of winners) so future developers looking for a Pythonic solution only have to compare a small number of options, all mature, feature-rich, well-supported etc., rather than having to sift through 80+ half-baked solutions.

Django Dojo

28 Jan, 2006 - 2 minutes

Django -Dojo alliance was finally announced to the world by our very own Jacob Kaplan-Moss :

Starting with version 0.92 (which should be out in a few weeks, Murphy willing), Django is going to bundle Dojo with the toolkit. Specifically as part of Django’s admin interface (but available to user apps as well).

Read all about it in Jacob’s post .

I am overjoyed to see such cool high quality open source projects are working together. Clearly it will make it easy to create kick-ass highly interactive web applications in Django and it will advance Dojo positions as a premier AJAX toolkit. It is a rare win-win situation for everybody involved including users of both frameworks.

Full Snakes & Rubies video is live

27 Jan, 2006 - 2 minutes

Finally full Snakes & Rubies video went live on Google Video! And it took only 18 days to verify it (19 days, if you count when I started to upload it). Apparently the whole process of verification depends on file size nonlinearly. It cannot depend on content because it is a combination of smaller files: Adrian’s Django presentation , David’s Rails presentation , and Q&A session . Oh, well.

And now is time for some stats (1/9/2006–1/27/2006):

OpenWrt QoS

27 Jan, 2006 - 1 minutes

It looks like nbd was able to find the problem, which plagued many people (including me) with QoS. You can find details in this thread on OpenWrt forum. Instructions on how to install QoS package can be found in this FAQ entry . Give it a whirl and don’t forget to thank Felix Fietkau (nbd ).

QoS was the biggest feature on my "wanted" list. It means now I can produce an OpenWrt GUI (webui) module to deal with it. It coincides well with release of Dojo 0.2.2 . But most probably I’ll be using a snapshot because guys added so much new stuff to Dojo preparing for Dojo 0.3 (widget release). Given the stability of OpenWrt GUI Homunculus Alpha release , I may upgrade new release to Beta status.

My experience with Google Video

15 Jan, 2006 - 3 minutes

Some time ago Jacob Kaplan-Moss released his documentary about Snakes & Rubies event . It is a must see video for all serious programmers working in different fields because it gives you a rare chance to understand the motives of two successful software projects.

Pretty soon it became obvious that sending links to hefty files or torrents is not the best way to spread the word — people are lazy and distractible. I needed something, which can play almost immediately. What can be better than Google Video (Beta) ? Jacob gave me his blessing and I started the process.

Clients: thin vs. thick

15 Jan, 2006 - 5 minutes

Brad Neuberg wrote a good article , which compares two different approaches to AJAX: thick client (e.g., Dojo style) and thin client (e.g., Prototype style). While it does a good job contrasting two approaches, I want to underscore that the underlying problem is a clash of two cultures between "local application" developers, and "web site" developers.

There is no doubt that local applications create the most satisfying end-user experience. Their typical weakness is in restriction of underlying data to local installation, which makes any collaboration impossible. "Connected applications" can help to alleviate this problem, but networking is hard in general and many local app programmers try to avoid it. They don’t have proper culture to do it, existing network APIs are hard to combine with GUI, and so on. In general they don’t get it.

Where do old programmers go?

5 Jan, 2006 - 5 minutes

Nowadays this question is asked frequently. A lot of guys in their 30s realize that they are the oldest guys in their groups. 20+ guys don’t see wise sages around. What is going on? It was debated on /. without any productive outcome (as usual).

Let’s take a look at the problem using available statistics. One nice source of data is the National Center for Educational Statistics . I made a chart using Table 280. "Earned degrees in computer and information sciences conferred by degree-granting institutions, by level of degree and sex of student: 1970-71 to 2002-03" (only totals are used):

Live Filtering

Update on 11/25/2007: today this article presents mostly historical interest. Since Dojo 0.2 a lot of versions were published and many things were changed. At the time of this writing Dojo is at ripe 1.0. I had to disable all Ajax action in examples because I don’t use Dojo 0.2 anymore.

What is Filtering? It is a selection of items using some criteria (filter). In this tutorial I am going to filter documents of my blog (made with Django , of course) matching titles against user-specified substring. Later on I’ll talk about generalization of this approach.