Author archives: Mike
Flex Devs, KISS, please, for the Love of the FSM
Written by
on
in
Snaking.
I have been writing some acceptance tests for a Flex application in Selenium using Nose, and VirtualBox. To do so, I had to fix quite a few bugs in the Selenium Flex API. Are all Flex devs over-engineers? The SFAPI had a scary series of interacting methods, a helper class, multiple pieces of shared state ...
Replicate live into a throw-away staging/dev db
Written by
on
in
Tuxedo.
Problem that looks like it will be coming up soon... you are always wanting to be able to test your code against a (huge, PostgreSQL) LIVE DB before you release/promote the code. Loading a DB dump can take hours. Your test code can't all just run in a single transaction.
First approach: run the DB ...
Catty ssh is cool
Written by
on
in
Tuxedo.
Was looking up something for a backup operation and saw a command where someone was catting from ssh... I'd never thought of doing it before, but it does make sense:
ssh dbhost.example.com "pg_dumpall | gzip -c" > ~/cluster.sql.gzshould connect and dump the entire DB cluster (gzipped) to your local machine.
ssh dbhost.example.com "gunzip -c ...
All those little spots where you use strings...
Written by
on
in
Snaking.
x.split( '.' )Is an idiom that shows up all over the place, particularly in list comprehensions. Run your code through 2to3 and it fails when x is a str (bytes) object, as 3.x thinks the '.' is unicode. It fails with a rather cryptic
TypeError: Type str doesn't support the buffer API error as ...
bzr-svn for those stuck with svn servers...
Written by
on
in
Snaking.
At work I need to interact with an svn (1.4) repository, but honestly I'm so spoiled by bzr that it just drives me nuts, particularly the (frustratingly frequent) situations where I miss a particular change-set/revision when merging into my tree and wind up reverting someone's changes. The VCS should bloody-well track what revisions are missing, ...
Good news, backups worked, bad news, it's the motherboard
Written by
on
in
Tuxedo.
The backups did, indeed, work, though the /etc/ backup wasn't quite as recent as I'd have liked. However, now *another* disk is corrupting (this time the home/var disk), and it looks like it's the motherboard's SATA controller at fault. Replacing that will require new motherboard, memory, and CPU... and yet another day of working on ...
Python 3.x Porting Notes
Written by
on
in
Snaking.
Decided to see how much work getting PyOpenGL ported to Python 3.x would be. Notes so far:
- ubuntu has Python 3.1 packaged (yay)
- also has distribute and -dev, you'll need both
- virtualenv -- this is key for my porting work-flow (not just for PyOpenGL, for almost every project), had to use an hg branch to ...
Hey, thinks me, maybe I could work on packaging that backup idea...
Written by
on
in
Tuxedo.
Just log onto the server and see how I arranged the backups... duh! Server's disk has corrupted irrecoverably. Hope those backups worked (won't know until I can buy a new disk on Tuesday).
Mocker's hidden gem...
Written by
on
in
Snaking.
Mocker has one uber-nice feature... it will mock out an object in basically all namespaces, so you can do a .proxy( 'mymodule.this.that' ) and have the resulting mock object replace the target "that" wherever it's been imported. It won't, for instance, pick up references in lists, sets and the like, but for basic namespaces (dictionaries) ...
Stub/Mock-a-Process Module
Written by
on
in
Snaking.
Say you want to have a test suite that tests logic which runs command-line processes that should *not* be run on the test machine (e.g. they would cause the test machine's configuration to be totally messed up). You want to test right down to the point where the call is made (i.e. you don't way ...