drewp for 2006 December

<M <Y
Y> M>

2006-12-17T23:01:14 SHDH 14:

I worked on maps.bigasterisk.com (which is probably still broken as you read this). My plan was to add estimated arrival times to the map, but without ever specifying my destination. There would just be arrival times all over the map (but maybe not behind me, where it's clear I'm not going). I was going to attempt SVG-over-gmaps for the time display.

Then I remembered I also wanted a lightweight live chat for concurrent viewers of my web page, so I wrote that. Then I installed it to maps.bigasterisk.com, and the live chat didn't work. I narrowed this down to a problem with apache, since the same server and client would work without apache in the middle. Debugging the issue started taking forever, so I'm now considering replacing my apache proxy server with something else.

I also heard some praise for google reader and konqueror and offered some praise for mochikit.

Depictions: http://flickr.com/photos/progrium/324628287/ http://flickr.com/photos/strategicpause/325410145/ http://flickr.com/photos/strategicpause/325410533/ http://flickr.com/photos/strategicpause/325409537/

2006-12-25T16:01:06 Visualizing python profile results:

34 0.000 0.000 0.000 0.000 ConfigParser.py:335(optionxform)
6 0.000 0.000 0.000 0.000 ConfigParser.py:338(has_option)
28 0.001 0.000 0.001 0.000 ConfigParser.py:495(get)
28 0.000 0.000 0.000 0.000 ConfigParser.py:559(_interpolate)
1 0.000 0.000 0.000 0.000 ElementTree.py:1022(__init__)
1 0.000 0.000 0.000 0.000 ElementTree.py:1038(close)
3124 0.045 0.000 0.065 0.000 ElementTree.py:1043(_flush)
3123 0.019 0.000 0.019 0.000 ElementTree.py:1061(data)

As fun as those are to look at, I want to quickly find out where the bottlenecks are; whether they're in my code or not; and any other clues that will help me fix them. I couldn't find anything that performs further visualization on python profile output.

So I wrote a quick one with output like this. It parses profiler output back in for easiest use with "twistd -p", which means it only has base names of .py files. I attempted to color local files by their top dir, which helps a little.

The next big step is to use the profile output directly.

I also might make the report viewer into a full web server so it can do interesting sorts and filters. Or I might tag up the data well enough and do the UI in javascript. That would be harder to write, but it would mean that the report could be a standalone file to archive, share, etc. An example of "interesting filter" would be to show one function and all the deeper calls (as much as we can tell with the profile data).


[Main]

Unless otherwise noted, all content licensed by Drew Perttula
under a Creative Commons License.