Ian Ward's email:
first name at this domain
wardi on OFTC, freenode and github
In any web application user data must be translated from HTML form data to native types and database types, and back again. Django web applcations are no different.
The "right way" to handle custom types is to extend Django's widgets, form fields and model fields. However, understanding exactly how these types perform each step of the conversion can be confusing. This post will attempt to explain how the data is converted at each stage and offer some advice about creating custom widgets, form fields and model fields.
This article is based on Django 1.3 and assumes the reader has experience creating and using Django forms, models and validation.
I set up a VM to present software to a client remotely, but I needed a way to record both the audio in and out so that I could capture both my presentation and the client's questions. In the past I've used some ALSA configuration magic for audio things advanced enough that they don't have a friendly GUI, but since Pulse Audio is the shiny new thing I decided to go that route.
It turns out to be fairly simple. I create a new null sink (think: fake sound card for output) and attach a loopback from the audio out monitor of the "real" sound card and another from the the audio in of the "real" sound card:
pactl load-module module-null-sink sink_name=bothsides pactl load-module module-loopback latency_msec=5 sink=bothsides \ source=alsa_output.pci-0000_00_04.0.analog-stereo.monitor pactl load-module module-loopback latency_msec=5 sink=bothsides
alsa_output... source comes from running
pactl list and copying the device name. The second loopback automatically uses the only
alsa_input... source device. Then I can record from the monitor of this null sink with a command like:
pacat --record -d 2 | sox -t raw -r 44100 -s -L -b 16 -c2 - "recording.wav"
-d 2 option selects the new null sink monitor device I created (the index may be different in your case). Last, you may want to use the
pavucontrol program to adjust the levels for the input and output so you don't end up with one sounding much louder than the other in the combined recording.
Catching up on some more old business: here are the slides from the Python 2 and Python 3 talk I gave at last month's OCLUG meeting.
I am also preparing some Python tutorials for the upcoming 2011 Linux Symposium in Ottawa June 13-15. Hope you can make it.
I'm late with this update (busy catching up on other work that I neglected last month) but I must report that the Ottawa IPv6 Summit went far better than I had hoped: Great turn-out, great venue, great talks and great food.
Pictures are now available from Richard Guy Briggs and we're working on putting the talk videos online with the help of ISI Global Webcasting.
The space at Telfer School of Management was ideal, and the Telfer volunteers got everyone registered helped everything run really smoothly all day.
It was tons of work, but I look forward to doing it again. Maybe I'll even catch more than a couple talks in person next time.
Response to the Ottawa IPv6 Summit has been amazing. Yesterday we completely sold out our venue and had to shut down registrations. We just can't fit any more people in the room with the keynote talk first thing in the morning.
We do still have some room after the keynote though, and if you don't mind skipping the first talk you can now register for one of the overflow spots we have just made available.
Hope to see you on Friday.
« page 1 2 3 4 5 6 7 page »