Many years ago I decided to replace plain text areas in Django’s Admin with rich text editor, so I can edit HTML on my blog using WYSIWYG. Six (yes, 6) years ago I looked around and selected
TinyMCE
. Over time it turned out that I was forced to upgrade TinyMCE and the link script I had because new browsers continue breaking my rich editor editing. Finally it stopped working again in all modern browsers, and I decided that enough is enough. It is time to replace it. This time I settled on Dojo’s Rich Editor
hosted on Google CDN
— simple, functional, less work to set up.
Time to time I sync my blog software to the Django trunk and
introduce small enhancements. Some of them visible to my readers,
some of them are just for me. This time after reading Simon Willison
’s post on rev=canonical
I decided to add short URLs to my blog as well. This is a convention
to provide custom short URLs managing the mapping on your own web
site. In my opinion the idea is very cool.
Yesterday Google announced
its new offering: Google App Engine
. These are my random notes I did yesterday when I studied the new service.
Google didn’t go the same way as Amazon with its AWS
. The former offers a form of shared hosting (think “distributed WebFaction
”), while the latter offers a virtualized environment (think “distributed SliceHost
”). So basically we are talking about more high-level approach to web applications, which is easy even for novices. On the other hand AWS is more flexible and more enterprise-y.
I published first day pictures from PyCon 2007. They are raw, unedited, I didn’t put descriptions yet. You can recognize Django guys, people from multiple Python web frameworks, and, of course, the BDFL with OLPC. But why wait for pictures to be prepped? Dig in while they are raw and fresh:
Yes, this is Steve Holden sporting a Django t-shirt.
Introduction
Web 2.0 brought on us an onslaught of new server-side web frameworks, and made it OK to put some code on the client side as well. Yes, I am talking about Ajax
. While elements of Ajax were available (and used) for a long time now, 2005 was the crucial year for this relatively old technology fueled by proliferation of modern browsers with proper support of JavaScript and HTML DOM, which, in turn, gave a rise to numerous Ajax toolkits. As always new exciting technology polarizes people — you can find ardent supporters of Ajax and a booing horde of naysayers. The latter crowd points out real and imaginary problems with Ajax. Some problems are real enough but stem from a misuse of the technology. One of them is a performance of a web application. In this article I will show how to improve a performance of a web application with Ajax and how to optimize an Ajax web application. Specifically I will show how to optimize a Dojo
-based high-performance web application. I will use Django
and Apache
as examples of a server environment.
This is the 2nd part of Setting up tools on Windows
— notes mostly for myself. (No, I don’t run Django with MSSQL under IronPython
. Yet.)
In this installment I add more stuff to Eclipse, and set up my apps under FastCGI on Linux-based shared host (I use DreamHost).
Eclipse
This section was updated on 9/30/2006.
I already set it up with PyDev and Subclipse. Now I want to add HTML/CSS editing. And I want to do AJAX.
Today I converted three web sites to the latest Django’s trunk formerly known as the magic-removal branch. It was a very positive experience in general. New Database API with lazy database queries (courtesy of QuerySet) rocks! Direct interaction with model classes allows doing a lot of things much simpler than it was before. A lot of small improvements, which makes a big difference like explicit template extensions (use whatever is appropriate for your content), more transparent new Admin inner class, natural overriding of model methods (no more _pre_save() and _post_save() hooks!), and, of course, no more pluralization guessing.
Yes, another Google SoC
is upon us. I signed up as a mentor with Dojo
and Django
. Both projects are on the leading edge of new wave of web-based applications doing extremely cool stuff. I anticipate that some smart students will bridge both projects, but individual projects are fine too.
What is Google SoC? Read the FAQ
. Who can apply? Any student anywhere in the world
can apply. You don’t have to be Comp. Sci. major to participate. Why should I apply? You will gain a real world experience with open source projects on the bleeding edge of modern technology. Your code will be used by high profile projects (it will look spiffy on your resume). You will meet new people who "do it" instead of "talk about it". And you will earn $4,500 USD
and a cool T-shirt as a proof of your participation.
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.
I added more pictures from PyCon 2006
. Enjoy.
Now time for a blog roll of my photo models (far from complete):
I know I missed some blogs, please let me know your blog address, and I will add it.
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.
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)!
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.
Lessons:
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
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.
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.
A week ago I posted a link
to David’s take
on "Snakes and Rubies"
event. Of course I am talking about article written by RoR’s creator. It is a great read, but this time I’ve read reader’s comments (or "challenges to the Loud Thinking"). Oh, boy! It gives you insight into Rails, Django, and their perception by developers and users. For example, I am not very familiar with i18n problem, but it looks like a lot of people were quite passionate about it.