Ian Ward's email:
first name at this domain
wardi on OFTC, freenode and github
Registration for the Ottawa IPv6 Summit has just opened. Also if you want to present a talk (in particular something suitable for the business/management stream) there is still some time to submit a proposal.
The summit will be held Friday April 29 in downtown Ottawa at the new Desmarais building in the University of Ottawa campus. There will be some great talks, a good lunch, fast wireless, power at every seat and plenty of interesting people. I'll post again when the schedule is available.
The conference is being organized by a small group of volunteers, including myself. If your company is willing to sponsor the event please contact the Ottawa IPv6 Summit. The money will go directly into making the conference better for everyone attending.
My article on supporting Python 2 and Python 3 from the same code base is now freely available on LWN.net. The article is based on my recent work on Urwid's Python 3 support. I owe thanks to the people that started and contributed the compatibility work on github and bitbucket. I'm looking forward to a release with Python 3 support very soon.
I also gave a talk at last night's OPAG about these changes. Thank you to all those that came out, we should have these meetings more regularly. Maybe back at the pub next time?
If you write any custom Django widgets or admin list_display callable functions you have probably run into this: Everything looks ok, except the place where your widget should be is just blank. Nothing. No traceback or any clue as to what went wrong.
It seems that Django suppresses all the exceptions sent by widgets rendering except for AssertionError and TypeError. Debugging under those conditions is tricky, so I wrote a function decorator to help. Just import this and put @assert_on_exception before your render method or admin list_display callable function:
def assert_on_exception(fn): import sys def wrap(*args, **kwargs): try: return fn(*args, **kwargs) except (AssertionError, TypeError): raise except: raise AssertionError(sys.exc_info().__name__ + ": " + str(sys.exc_info())) wrap.__name__ = fn.__name__ wrap.__dict__.update(fn.__dict__) wrap.__doc__ = fn.__doc__ wrap.__module__ = fn.__module__ return wrap
Just adding my voice to the chorus of people praising Manufactoria.
I played through a earlier version months ago, but had to come back and try it again. The latest versions let you flip parts and easily move and rotate sections of your machines. And the new "Malevolance engine" jumps straight to your flaws or validates your designs almost instantly. If you like writing software, you must try this little game.
Many hard drives available today have 4K physical sectors instead of the old standard 512-byte sectors. The larger sectors allow the manufacturers to save space required for error correction, so they can save money, and in turn we get cheaper hard drives. Which is great, except that if a drive is using 4K sectors the drive must report it to the operating system or performance may suffer.
I recently purchased two WD HDDs: one 1.5TB and one 2TB, both "EARS" models. The 1.5TB drive happily reports that it has 4K physical sectors:
fdisk -l /dev/sdc Disk /dev/sdc: 1500.3 GB, 1500301910016 bytes ... Sector size (logical/physical): 512 bytes / 4096 bytes I/O size (minimum/optimal): 4096 bytes / 4096 bytes
But the 2TB drive claimed to have 512 byte sectors.
fdisk -l /dev/sdd Disk /dev/sdd: 2000.4 GB, 2000398934016 bytes ... Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes
"That's strange", I thought. So I ran a quick test to see if the 2TB drive was lying.
This release works well with light, dark or transparent backgrounds. It can display in monochrome mode and now has 88/256-color mode support (with a solid background color). There is also a new option to exit once a monitored file download completes.
Speedometer 2.7 requires Urwid 0.9.9.1 (Speedometer 2.6 was compatible with ancient versions of Urwid) it now uses
MainLoop and the updated
Pile widget. Otherwise the features and code structure are largely unchanged.
I will be giving a talk at the September meeting of the Ottawa Python Authors Group covering some documentation work I have done recently using Sphinx domains and a custom Pygments lexer.
I am working on an embedded device for a client that includes a proprietary text command language. Sphinx supports documenting many common languages like C, Python and Ruby, but with the 1.0 release it now allows adding "domains" for new languages. I have used this feature to create a domain for this command language.
Sphinx uses Pygments to provide syntax hilighting for source code examples. None of the available options fit this command language so I also created a custom lexer for this command language in just a few lines of code.
My talk will cover creating these extensions for Sphinx and Pygments.
This is the text from the Nontrivial Django Forms talk I gave last Tuesday at the April meeting of the Ottawa Python Authors Group.
This talk starts where the Django forms documentation leaves off.
« page 1 2 3 4 5 6 7 8 … 9 10 11 page »