The titles of the videos look very much like “must watch”. Found via ThinkPHP, thanks.
I have to deal with it now and a lot of other people too, judging
by the utf8/unicode/encoding topics on the django mailing list. I
have found this one thread quite interesting and looks
like the problem solver, but may be I also just need to learn a
bit more about the bits and pieces that make this whole thing
work. This message obviously tells how to make mysql
completely aware and well-handling utf8.
Next thing on the list the django setting parameter DEFAULT_CHARSET.
Read here how to change all your DB to utf8, pretty
simple, but you gotta know it. Even when your app runs in latin1
only, it reduces a couple problems in case you forgot some check
and utf8 is slipping through. I will let you know if I can prove
that right. But since Django is trying to be unicode compliant, it’s
easier to use it than to work around it.
It does at least already eliminate the problem of getting this
error:
Illegal mix of collations (latin1_swedish_ci,IMPLICIT) and
(utf8_general_ci,COERCIBLE)
this was discussed here.
In short:
ALTER TABLE tbl_name CONVERT TO CHARACTER SET …
I was fighting four days now, with a threading problem, which are known to be hard to track. But I finally found it and learned that I actually had made a beginner’s mistake.
What happened?
From the front end I trigger via AJAX a view that again starts a
thread that does some import work, that might take quite a while.
This enables the user to keep going and have the import run
without interrupting him/her. Every once in a while an
asynchronous call checks on the state of the import.
And here lies the problem: while the thread is running and busy
like a bee adding data in the DB the asynchronous call to check
on the state also tries to run a query and that causes the
following exception:
...
File "/Users/cain/programming/django/trunk/django/db/backends/mysql/base.py",
line 42, in execute
return self.cursor.execute(sql, params)
File …
[Read more]
Brian Aker starts work on a memcache engine for mysql. so your memcache cache acts just like a table.
the big thing here which I’ve seen asked for a couple of times on the memcached list is the ability to see a list of keys.
mysql > select * from foo1 WHERE k=”mine”;
freaking amazing.. I love these kind of mashups.
and the 2nd important event.
Django is starting a branch to integrate SQLAlchemy
two interesting posts arrived on the memcached list which might be interesting to performance people.
The first was a comparison of The fastest lanugage binding on which ‘P’ language performed better. To make a note the PHP version actually uses libmemcache a ‘C’ library which goes a bit of the way to explain the wild disparity in speeds.
The 2nd more interesting one (to me) was the discussion of how Digg switched from using mysql to memcached with v3 of their new interface to handle storing sessions, due to a hardware crash on their mysql server.
others mentioned using InnoDB for this instead of MyISAM, with the biggest issue …
[Read more]are you a committer or a member of a large OSS project?
do you participate in any other large open source project?
I’m trying to get a understanding of how all the different major oss projects are being cross pollinated by having people participating in different projects.
feel free to comment, or mail me directly at ian at holsman.net
Thanks!
continuing the recent thread about contenttypes in django I thought I would talk about a feature which got added in the magic removal branch, which doesn’t have as much attention as I think it deserves.
signals and the dispatcher.
signals are way of telling the rest of the world that something happened. If you are interested you simply listen for it (connect in django speak).
take for example my tagging application currently in use on zyons. one of it’s features is that it let’s users store their own tags.
One of the performance improvements I added to this was the creation of a ‘summary’ tag which aggregates which the …
[Read more]