Archive for the 'work' Category

Converting docx Files

Wednesday, April 16th, 2008

I’m working on an OOXML implementation in Python and found this handy utility for converting docx files to rtf.
Docx2Rtf
It seems to open docx files that Word complains about, but at least it let’s me know that I am on the right track. Also, it runs under Wine on Linux, so there is no need [...]

Command History

Saturday, April 12th, 2008

Since all the cool kids are doing it …
Work laptop

christian@yga-dowski:~$ history|awk ‘{a[$2]++ } END{for(i in a){print a[i] ” ” i}}’ |sort -rn|head
82 sudo
68 vim
51 ls
49 cd
48 exit
20 hg
16 rm
16 ipython
14 py.test
10 ping

Apparently I do a lot of exiting. I just started using Mercurial for local revision control, hence the presence of hg.
Dev server
(where [...]

Reading Chunked HTTP/1.1 Responses

Wednesday, April 2nd, 2008

For work today I wanted a way to iterate over an HTTP response with chunked transfer-coding on a chunk-for-chunk basis. I didn’t see a builtin way to do that with httplib. It supports chunked reads but you have to specify the amount that you want to read if you don’t want it to [...]

SimpleParse Plug

Wednesday, December 19th, 2007

I’ve been doing more parsing stuff at work lately. For my latest project I’ve been using the SimpleParse library. It has quickly overtaken PLY as my Python parsing library of choice.
Here’s a simple calculator example using SimpleParse. It does basic arithmetic and allows you to store values in single letter variable names. [...]

Political Plug

Thursday, November 29th, 2007

Here’s an article from the Economist on foreign policy and the race for the White House.
Foreign policy and the presidential race.
It’s an interesting article, but even more interesting is that the data in the poll came from the organization that I work for. Ok, maybe more interesting is a bit of a stretch. [...]

Those Useful Iterators

Tuesday, November 27th, 2007

I’ve really been enjoying working with Python iterators lately. They make working with iterative tasks so flexible. Lately I’ve been working on adding progress tracking to an application so that we can give our users some feedback on where the application is at in various long-running tasks.
Since the long-running tasks in question are [...]

Safari Gotchas

Thursday, August 16th, 2007

In the spirit of sharing knowledge that will save someone from the sort of tedious pain I went through the past couple days, here are a few Safari (2.0.4) bugs that I had to work around:
1. No Global Javascript eval()
That’s right. You can’t eval() in the global (window) context. Safari doesn’t allow it. [...]

Ion

Saturday, July 21st, 2007

So an article about user interfaces on Coding Horror prompted me to say a short piece about Ion*.
When doing serious work on the computer, I always find myself tiling my windows. Overlapping windows are so annoying. And tiling them in an organized manner is even more annoying.
From the article:
Manipulating windows is pure excise– [...]

Why I am a Software Developer

Friday, June 29th, 2007

I think that this blog entry at Coding Horror pretty much nails why I enjoy programming.
At my previous job we took this personality test of sorts called StrengthsFinder that is supposed to help reveal your top 5 strengths. I took it twice and while some of the results varied, I had Learner in my [...]

A Cool New Dejavu Feature

Saturday, November 18th, 2006

So I was working on something for Amor and came up against a limitation in Dejavu. I was working with a Unit setup similar to this:
import datetime
from dejavu import Unit, UnitProperty

class Event(Unit):
Name = UnitProperty(unicode)
Start = UnitProperty(datetime.datetime)
End = UnitProperty(datetime.datetime)
# [...]