<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss'><id>tag:blogger.com,1999:blog-18336893</id><updated>2009-11-13T13:43:18.288Z</updated><title type='text'>Notebook</title><subtitle type='html'></subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://james.wheare.org/notes/food.xml'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/18336893/posts/default'/><link rel='alternate' type='text/html' href='http://james.wheare.org/notes/index.php'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>James Wheare</name><uri>http://www.blogger.com/profile/04328642175573639022</uri><email>blogger@wheare.org</email></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>18</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-18336893.post-8630121516717885315</id><published>2009-07-10T17:24:00.005+01:00</published><updated>2009-07-10T17:37:22.507+01:00</updated><title type='text'>Towards a manageable feed reader</title><content type='html'>3 years ago I made a comment on a 37signals post: &lt;a href="http://www.37signals.com/svn/posts/144-taming-the-rss-beast"&gt;Taming the RSS beast&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;I was just editing and expanding it in an email and thought I'd post it here instead.&lt;br /&gt;&lt;br /&gt;Most people group their feeds by topic. Here’s a suggestion that helps me manage my feeds more effectively: Group your feeds by a small number of categories that match your behaviour, rather than subject matter. These are my categories:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;strong&gt;Quick&lt;/strong&gt; – anything that’ll take me two seconds to read (photos, one liner blogs)&lt;/li&gt;&lt;li&gt;&lt;strong&gt;Links&lt;/strong&gt; – link blogs (these often lead to heavy tab spawning)&lt;/li&gt;&lt;li&gt;&lt;strong&gt;Light&lt;/strong&gt; – blogs that generally consist of shortish pithy posts.&lt;/li&gt;&lt;li&gt;&lt;strong&gt;In-depth&lt;/strong&gt; – blogs that usually have long in-depth posts&lt;/li&gt;&lt;li&gt;&lt;strong&gt;Me&lt;/strong&gt; – ego stuff: my flickr comment feeds, twitter mentions etc (in case they slip through my twitter client)&lt;/li&gt;&lt;li&gt;&lt;strong&gt;Friends&lt;/strong&gt; - people I have a stronger emotional connection to and care more about&lt;/li&gt;&lt;li&gt;&lt;strong&gt;Announce&lt;/strong&gt; – svn commits, web host status feeds, app release feeds&lt;/li&gt;&lt;/ul&gt;Grouped like this, it’s easier to pick off the low hanging fruits and slowly chip away at the backlog rather than sticking rigidly to subject taxonomies that are usually inadequate and give you no sense of how far through the job you are or about what you actually care about.&lt;br /&gt;&lt;br /&gt;Try to put every new feed you subscribe to in one of those categories, and don't create too many new ones or it starts to become unmanageable. Then collapse as many as you can so it doesn't look like you have too much to go through.&lt;br /&gt;&lt;br /&gt;&lt;em&gt;NEVER&lt;/em&gt; go through all your feeds as one big bucket of unread items.&lt;br /&gt;&lt;br /&gt;Other than that, a hard trick is to actually notice when something is no longer interesting. This is hard because we don't like to admit we made a mistake, and will often stick with things for much longer than usual after making an initial value judgment and have invested in something. This is the "&lt;a href="http://en.wikipedia.org/wiki/Sunk_costs"&gt;sunk cost&lt;/a&gt;" mind hack and is very powerful if you can pull it off.&lt;br /&gt;&lt;br /&gt;My feed reader already marks feeds that haven't updated in a while as "Dinosaurs". If it also marked those that I hadn't clicked through from in a while as fluff that'd be ace.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/18336893-8630121516717885315?l=james.wheare.org%2Fnotes%2Findex.php'/&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.blogger.com/feeds/18336893/8630121516717885315/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=18336893&amp;postID=8630121516717885315' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/18336893/posts/default/8630121516717885315'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/18336893/posts/default/8630121516717885315'/><link rel='alternate' type='text/html' href='http://james.wheare.org/notes/2009/07/towards-manageable-feed-reader.php' title='Towards a manageable feed reader'/><author><name>James Wheare</name><uri>http://www.blogger.com/profile/04328642175573639022</uri><email>blogger@wheare.org</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='13849712274151939405'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-18336893.post-2945828198228378233</id><published>2009-02-14T11:10:00.003Z</published><updated>2009-02-14T12:45:54.126Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='python'/><category scheme='http://www.blogger.com/atom/ns#' term='osx'/><category scheme='http://www.blogger.com/atom/ns#' term='mac'/><title type='text'>'import site' failed; use -v for traceback</title><content type='html'>If you suddenly start seeing this error every time you try to run Python:&lt;br /&gt;&lt;br /&gt;&lt;code&gt;'import site' failed; use -v for traceback&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;Chances are you have an erroneous file in your &lt;code&gt;site-packages&lt;/code&gt; directory that's screwing up Python's import path initialisation and could lead to you being unable to import some installed modules.&lt;br /&gt;&lt;br /&gt;To figure out which file this is you can use the Python debugger, &lt;code&gt;pdb&lt;/code&gt;:&lt;br /&gt;&lt;pre style="background: #00112a; padding: 5px;"&gt;&lt;code style="font: normal 13px 'Consolas', 'Andale Mono', monospace; color: #fff;"&gt;&amp;gt; python -v&lt;br /&gt;&amp;gt;&amp;gt;&amp;gt; import pdb&lt;br /&gt;&amp;gt;&amp;gt;&amp;gt; pdb.pm()&lt;br /&gt;&amp;gt; [python_lib_path]/posixpath.py(173)exists()&lt;br /&gt;-&amp;gt; return False&lt;br /&gt;(Pdb) u&lt;br /&gt;&amp;gt; [python_lib_path]site.py(146)addpackage()&lt;br /&gt;-&amp;gt; f.close()&lt;br /&gt;(Pdb) f&lt;br /&gt;&amp;lt;closed file '[site-packages]._blah.pth', mode 'rU' at 0x52c38&amp;gt;&lt;/code&gt;&lt;/pre&gt;Your actual output will be quite a bit different with a lot of debugging information spewed into the console but let's explain what's going on here:&lt;br /&gt;&lt;ol&gt;&lt;li&gt;Run Python in verbose mode to get a traceback.&lt;/li&gt;&lt;li&gt;&lt;code&gt;import pdb&lt;/code&gt;&lt;/li&gt;&lt;li&gt;Run the &lt;code&gt;pm&lt;/code&gt; (postmortem) function to enter the &lt;code&gt;(Pdb)&lt;/code&gt; shell and inspect the exact point at which the error occured.&lt;/li&gt;&lt;li&gt;Go up a level in the stack with &lt;code&gt;u&lt;/code&gt;.&lt;/li&gt;&lt;li&gt;Inspect the &lt;code&gt;f&lt;/code&gt; file object.&lt;/li&gt;&lt;/ol&gt;This tells us that &lt;code&gt;._blah.pth&lt;/code&gt; is causing Python's site import routine to choke. [&lt;a href="http://bugs.python.org/issue5258"&gt;bug report&lt;/a&gt;]&lt;br /&gt;&lt;br /&gt;Move this file out of &lt;code&gt;site-packages&lt;/code&gt; and try again, repeating the steps above if you get the same error.&lt;br /&gt;&lt;br /&gt;When you run Python, it runs through all the directories specified by your &lt;code&gt;PYTHONPATH&lt;/code&gt; environment variable, looking for &lt;code&gt;.pth&lt;/code&gt; files. These can contain further directories to be added to the import path and are typically created by python packaging systems like &lt;code&gt;easy_install&lt;/code&gt;. [&lt;a href="http://docs.python.org/library/site.html"&gt;more info on &lt;code&gt;.pth&lt;/code&gt; files&lt;/a&gt;]&lt;br /&gt;&lt;br /&gt;So what's up with this one?&lt;br /&gt;&lt;br /&gt;The so called "dot-underscore" or &lt;a href="http://en.wikipedia.org/wiki/AppleDouble"&gt;AppleDouble&lt;/a&gt; files are actually created by Mac OS X. They contain &lt;a href="http://en.wikipedia.org/wiki/Resource_fork"&gt;resource forks&lt;/a&gt; and extra file metada for their corresponding file (the example we found earlier contains metadata for a legitimate file &lt;code&gt;blah.pth&lt;/code&gt;).&lt;br /&gt;&lt;br /&gt;Mac filesystems like &lt;a href="http://en.wikipedia.org/wiki/HFS_Plus"&gt;HFS+&lt;/a&gt; support resource forks natively and don't need these files, so they aren't usually created when you're accessing your machine locally. They &lt;em&gt;can&lt;/em&gt; get created when you're accessing it over a network using the &lt;a href="http://en.wikipedia.org/wiki/Samba_(software)"&gt;Samba&lt;/a&gt; protocol or if the connecting Mac otherwise thinks you don't support resource forks—usually if you're on Windows or an NFS filesystem.&lt;br /&gt;&lt;br /&gt;You can safely delete these files from the &lt;code&gt;site-packages&lt;/code&gt; directory and Python should be back to normal.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/18336893-2945828198228378233?l=james.wheare.org%2Fnotes%2Findex.php'/&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.blogger.com/feeds/18336893/2945828198228378233/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=18336893&amp;postID=2945828198228378233' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/18336893/posts/default/2945828198228378233'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/18336893/posts/default/2945828198228378233'/><link rel='alternate' type='text/html' href='http://james.wheare.org/notes/2009/02/import-site-failed-use-v-for-traceback.php' title='&apos;import site&apos; failed; use -v for traceback'/><author><name>James Wheare</name><uri>http://www.blogger.com/profile/04328642175573639022</uri><email>blogger@wheare.org</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='13849712274151939405'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-18336893.post-4512899431750369978</id><published>2009-02-07T23:41:00.016Z</published><updated>2009-02-14T11:59:36.849Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='javascript'/><category scheme='http://www.blogger.com/atom/ns#' term='bugs'/><category scheme='http://www.blogger.com/atom/ns#' term='safari'/><category scheme='http://www.blogger.com/atom/ns#' term='browsers'/><category scheme='http://www.blogger.com/atom/ns#' term='css'/><title type='text'>Safari 3.2.1 bug: Random unicode characters munged into select drop down</title><content type='html'>I recently encountered a very bizarre browser bug involving a &lt;code&gt;&amp;lt;select&amp;gt;&lt;/code&gt; drop down in &lt;strong&gt;Safari 3.2.1&lt;/strong&gt;.&lt;br /&gt;&lt;br /&gt;Changing the selection was resulting in random characters overwriting the text contents of the selected &amp;lt;option&amp;gt; element.&lt;br /&gt;&lt;br /&gt;Since this behaviour wasn't happening in the latest version of WebKit, &lt;a href="https://bugs.webkit.org/show_bug.cgi?id=23814"&gt;my bug report&lt;/a&gt; was resolved WORKSFORME.&lt;br /&gt;&lt;br /&gt;This wasn't particularly helpful as I still needed to figure out a workaround for a bug that was affecting people using the current shipping version of Safari.&lt;br /&gt;&lt;br /&gt;I eventually managed to isolate a minimal test case here:&lt;br /&gt;&lt;a href="http://james.wheare.org/stuff/bugs/safari/fixedselect"&gt;http://james.wheare.org/stuff/bugs/safari/fixedselect&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;The setup looks like this:&lt;br /&gt;&lt;pre style="background: #3a3a3a; padding: 5px;"&gt;&lt;code style="font: normal 13px 'Consolas', 'Andale Mono', monospace; color: #e88025;"&gt;&amp;lt;div id=&lt;span style="color: #a5c261;"&gt;"relative"&lt;/span&gt; style=&lt;span style="color: #a5c261;"&gt;"position: &lt;span style="color: #da4939"&gt;relative;&lt;/span&gt;"&lt;/span&gt;&amp;gt;&lt;br /&gt;    &amp;lt;div id=&lt;span style="color: #a5c261;"&gt;"fixed"&lt;/span&gt; style=&lt;span style="color: #a5c261;"&gt;"position: &lt;span style="color: #da4939"&gt;fixed;&lt;/span&gt; top: &lt;span style="color: #da4939"&gt;0;&lt;/span&gt; left: &lt;span style="color: #da4939"&gt;0;&lt;/span&gt;"&lt;/span&gt;&amp;gt;&lt;br /&gt;        &amp;lt;select&amp;gt;&lt;br /&gt;            &amp;lt;option&amp;gt;&lt;span style="color: #dcd8d3;"&gt;Choose another option&lt;/span&gt;&amp;lt;/option&amp;gt;&lt;br /&gt;            &amp;lt;option&amp;gt;&lt;span style="color: #dcd8d3;"&gt;Garbled&lt;/span&gt;&amp;lt;/option&amp;gt;&lt;br /&gt;        &amp;lt;/select&amp;gt;&lt;br /&gt;    &amp;lt;/div&amp;gt;&lt;br /&gt;&amp;lt;/div&amp;gt;&lt;br /&gt;&lt;/code&gt;&lt;/pre&gt;The bug is triggered by javascript:&lt;br /&gt;&lt;pre style="background: #3a3a3a; padding: 5px;"&gt;&lt;code style="font: normal 13px 'Consolas', 'Andale Mono', monospace; color: #dcd8d3;"&gt;&lt;span style="color: #7e7e7e; font-style: italic;"&gt;// Set the fixed container's positioning to absolute&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #5481cc;"&gt;var&lt;/span&gt; element = document.&lt;span style="color: #da4939;"&gt;getElementById&lt;/span&gt;(&lt;span style="color: #a5c261;"&gt;'fixed'&lt;/span&gt;);&lt;br /&gt;element.&lt;span style="color: #a5c261;"&gt;style&lt;/span&gt;.position = &lt;span style="color: #a5c261;"&gt;'absolute'&lt;/span&gt;;&lt;br /&gt;&lt;span style="color: #7e7e7e; font-style: italic;"&gt;// Access its clientWidth or clientHeight properties&lt;/span&gt;&lt;br /&gt;element.&lt;span style="color: #a5c261;"&gt;clientWidth&lt;/span&gt;;&lt;br /&gt;element.&lt;span style="color: #a5c261;"&gt;clientHeight&lt;/span&gt;;&lt;br /&gt;&lt;span style="color: #7e7e7e; font-style: italic;"&gt;// Restore the positioning to its original value of fixed&lt;/span&gt;&lt;br /&gt;element.&lt;span style="color: #a5c261;"&gt;style&lt;/span&gt;.position = &lt;span style="color: #a5c261;"&gt;'fixed'&lt;/span&gt;;&lt;br /&gt;&lt;/code&gt;&lt;/pre&gt;&lt;br /&gt;Now, just select a different option from the drop down and it's text content will be munged with random characters.&lt;br /&gt;&lt;br /&gt;This may seem like quite a strange sequence of operations but it's actually used in the &lt;cite&gt;Prototype&lt;/cite&gt; library's &lt;a href="http://prototypejs.org/api/element/methods/getDimensions"&gt;&lt;code&gt;Element.getDimensions&lt;/code&gt;&lt;/a&gt; method [&lt;a href="http://github.com/sstephenson/prototype/blob/952feb48a39d519f8948a469d86bdcc952f5ac62/src/dom/dom.js#L431"&gt;source&lt;/a&gt;].&lt;br /&gt;&lt;br /&gt;When I discovered this bug, it was additionally causing Safari to crash if you continued to use the drop down. This test case doesn't trigger the crash, but it's almost certainly the same root cause.&lt;br /&gt;&lt;br /&gt;There a few options to workaround this issue, depending on your particular situation:&lt;br /&gt;&lt;ol&gt;&lt;li&gt;Avoid &lt;code&gt;Element.getDimensions&lt;/code&gt;.&lt;/li&gt;&lt;li&gt;Modify &lt;cite&gt;Prototype&lt;/cite&gt;'s &lt;code&gt;Element.getDimensions&lt;/code&gt; function.&lt;/li&gt;&lt;li&gt;Change the positioning of your containers.&lt;/li&gt;&lt;li&gt;Wrap the select in another &lt;code&gt;position: fixed&lt;/code&gt; element and don't call &lt;code&gt;Element.getDimensions&lt;/code&gt; on it.&lt;/li&gt;&lt;li&gt;Wait for Apple to release a new version of Safari.&lt;/li&gt;&lt;/ol&gt;&lt;br /&gt;If you choose to modify &lt;code&gt;Element.getDimensions&lt;/code&gt;, there's a handy way to do that without altering the &lt;cite&gt;Prototype&lt;/cite&gt; source code. Simply define your own version and then extend &lt;code&gt;Element&lt;/code&gt; with it by using &lt;a href="http://prototypejs.org/api/element/addMethods"&gt;&lt;code&gt;Element.addMethods&lt;/code&gt;&lt;/a&gt;. This will override the built in method.&lt;br /&gt;&lt;pre style="background: #3a3a3a; padding: 5px;"&gt;&lt;code style="font: normal 13px 'Consolas', 'Andale Mono', monospace; color: #dcd8d3;"&gt;Element.&lt;span style="color: #da4939;"&gt;addMethods&lt;/span&gt;({&lt;br /&gt;    &lt;span style="color: #ff0075;"&gt;getDimensions&lt;/span&gt;: &lt;span style="color: #5481cc;"&gt;function&lt;/span&gt;(element) {&lt;br /&gt;&lt;span style="color: #7e7e7e; font-style: italic;"&gt;        // Your version in here&lt;br /&gt;        // ...&lt;/span&gt;&lt;br /&gt;    }&lt;br /&gt;});&lt;br /&gt;&lt;/code&gt;&lt;/pre&gt;&lt;br /&gt;If you're wondering how to patch &lt;code&gt;Element.getDimensions&lt;/code&gt;, I forked &lt;cite&gt;Prototype&lt;/cite&gt; on github with a fix for this issue:&lt;br /&gt;&lt;a href="http://github.com/jwheare/prototype/commit/80275ccfd1e96b5c1cba5593505d3a708ae8b25b"&gt;Fix for &lt;code&gt;Element.getDimensions&lt;/code&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;I also filed a ticket for &lt;cite&gt;Prototype&lt;/cite&gt; to add a fix for this themselves:&lt;br /&gt;&lt;a href="http://prototype.lighthouseapp.com/projects/8886/tickets/543-elementgetdimensions-causes-issues-in-certain-conditions-in-safari#ticket-543-1"&gt;Element.getDimensions causes issues in certain conditions in Safari&lt;/a&gt;&lt;br /&gt;&lt;strong&gt;Update:&lt;/strong&gt; This fix has been &lt;a href="http://prototype.lighthouseapp.com:80/projects/8886/changesets/03512f50601dc642ee9eb1c058dfdba3356a8fa8"&gt;accepted into &lt;cite&gt;Prototype&lt;/cite&gt;&lt;/a&gt; and should make its way into a future release.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/18336893-4512899431750369978?l=james.wheare.org%2Fnotes%2Findex.php'/&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.blogger.com/feeds/18336893/4512899431750369978/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=18336893&amp;postID=4512899431750369978' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/18336893/posts/default/4512899431750369978'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/18336893/posts/default/4512899431750369978'/><link rel='alternate' type='text/html' href='http://james.wheare.org/notes/2009/02/safari-321-bug-random-unicode.php' title='Safari 3.2.1 bug: Random unicode characters munged into select drop down'/><author><name>James Wheare</name><uri>http://www.blogger.com/profile/04328642175573639022</uri><email>blogger@wheare.org</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='13849712274151939405'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-18336893.post-8002451718005781255</id><published>2007-11-28T00:59:00.002Z</published><updated>2009-02-28T21:06:55.513Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='django'/><category scheme='http://www.blogger.com/atom/ns#' term='python'/><title type='text'>Ordering related objects in Django</title><content type='html'>Django models have a meta option &lt;a href="http://www.djangoproject.com/documentation/model-api/#order-with-respect-to"&gt; &lt;code&gt;order_with_respect_to&lt;/code&gt;&lt;/a&gt; that allows you to order objects within the scope of a related ForeignKey object.&lt;br /&gt;&lt;br /&gt;This option adds an &lt;code&gt;_order&lt;/code&gt; column to the model's database table to keep track of this ordering.&lt;br /&gt;&lt;br /&gt;That's all very well, but if you need to change the sequence order you may well feel at a loss. The official documentation makes no mention of this option beyond a basic explanation of its purpose , and editing your objects in the built in admin app reveals no user interface for changing the ordering either. &lt;a href="#django-order-footnote1" id="django-order-note1"&gt;[1]&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Update Feb 2009:&lt;/strong&gt; There's now &lt;a href="http://code.djangoproject.com/ticket/8975"&gt;a ticket&lt;/a&gt; for this functionality to be added to the docs.&lt;br /&gt;&lt;br /&gt;I managed to uncover a Python interface by delving into Django's API internals &lt;a href="#django-order-footnote2" id="django-order-note2"&gt;[2]&lt;/a&gt;. An object with related models that order with respect to it is given two handy methods:&lt;br /&gt;&lt;br /&gt;&lt;code&gt;get_RELATED_order()&lt;/code&gt;&lt;br /&gt;&lt;code&gt;set_RELATED_order()&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;where &lt;code&gt;RELATED&lt;/code&gt; is the lowercased model name of the ordered objects&lt;br /&gt;&lt;pre&gt;&lt;code&gt;&lt;br /&gt;class Entry(model.Model):&lt;br /&gt;    # ... fields&lt;br /&gt;&lt;br /&gt;class Comment(model.Model):&lt;br /&gt;    entry = model.ForeignKey(Entry, related_name='comments')&lt;br /&gt;    # ... more fields&lt;br /&gt;    &lt;br /&gt;    class Meta:&lt;br /&gt;        order_with_respect_to = 'entry'&lt;br /&gt;&lt;/code&gt;&lt;/pre&gt;&lt;br /&gt;Given the above example models, you can retrieve the order of an entry's comments:&lt;br /&gt;&lt;pre&gt;&lt;code&gt;&lt;br /&gt;&amp;gt;&amp;gt;&amp;gt; entry = Entry.objects.latest()&lt;br /&gt;&amp;gt;&amp;gt;&amp;gt; entry.get_comment_order()&lt;br /&gt;[1, 2, 3, 4]&lt;br /&gt;&lt;/code&gt;&lt;/pre&gt;&lt;br /&gt;And change the ordering by passing a list of comment ids back in.&lt;br /&gt;&lt;pre&gt;&lt;code&gt;&lt;br /&gt;&amp;gt;&amp;gt;&amp;gt; entry.set_comment_order([2, 1, 4, 3])&lt;br /&gt;&lt;/pre&gt;&lt;/code&gt;&lt;br /&gt;N.B. Be sure to pass in the same ids returned by &lt;code&gt;get_comment_order&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;Two other handy methods exist for the Comment objects, &lt;code&gt;get_next_in_order&lt;/code&gt; and &lt;code&gt;get_previous_in_order&lt;/code&gt; &lt;a href="#django-order-footnote3" id="django-order-note3"&gt;[3]&lt;/a&gt;&lt;br /&gt;&lt;pre&gt;&lt;code&gt;&lt;br /&gt;&amp;gt;&amp;gt;&amp;gt; comment = Comment.objects.get(pk=3)&lt;br /&gt;&amp;gt;&amp;gt;&amp;gt; comment.get_next_in_order()&lt;br /&gt;&amp;lt;Comment: 4&amp;gt;&lt;br /&gt;&amp;gt;&amp;gt;&amp;gt; comment.get_previous_in_order()&lt;br /&gt;&amp;lt;Comment: 2&amp;gt;&lt;br /&gt;&lt;/code&gt;&lt;/pre&gt;&lt;br /&gt;&lt;ol&gt;&lt;br /&gt;    &lt;li id="django-order-footnote1"&gt;A very &lt;a href="http://code.djangoproject.com/ticket/13"&gt;early ticket&lt;/a&gt; is still open to restore this functionality to the admin app, and recent activity suggests it may well reappear soon. See also &lt;a href="http://groups.google.com/group/django-developers/browse_thread/thread/2af467c292b87067/0b64ccf351cf7542"&gt;this thread&lt;/a&gt; on the django-developers mailing list. &lt;a href="#django-order-note1"&gt;back&lt;/a&gt;&lt;/li&gt;&lt;br /&gt;    &lt;li id="django-order-footnote2"&gt;Look particularly at the two helper functions &lt;code&gt;method_set_order&lt;/code&gt; and &lt;code&gt;method_get_order&lt;/code&gt; in &lt;code&gt;django.db.models.base&lt;/code&gt;. &lt;a href="#django-order-note2"&gt;back&lt;/a&gt;&lt;/li&gt;&lt;br /&gt;    &lt;li id="django-order-footnote3"&gt;Theoretically at least, there's still a bug in &lt;code&gt;get_previous_in_order&lt;/code&gt; but it &lt;a href="http://code.djangoproject.com/ticket/6088"&gt;should be fixed soon&lt;/a&gt;. &lt;strong&gt;Update:&lt;/strong&gt; Fixed by the &lt;a href="http://code.djangoproject.com/changeset/7477"&gt;queryset-refactor&lt;/a&gt; &lt;a href="#django-order-note3"&gt;back&lt;/a&gt;&lt;/li&gt;&lt;br /&gt;&lt;/ol&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/18336893-8002451718005781255?l=james.wheare.org%2Fnotes%2Findex.php'/&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.blogger.com/feeds/18336893/8002451718005781255/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=18336893&amp;postID=8002451718005781255' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/18336893/posts/default/8002451718005781255'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/18336893/posts/default/8002451718005781255'/><link rel='alternate' type='text/html' href='http://james.wheare.org/notes/2007/11/ordering-related-objects-in-django.php' title='Ordering related objects in Django'/><author><name>James Wheare</name><uri>http://www.blogger.com/profile/04328642175573639022</uri><email>blogger@wheare.org</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='13849712274151939405'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-18336893.post-3069390080276049468</id><published>2007-11-24T12:02:00.000Z</published><updated>2007-12-01T13:17:32.595Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='photos'/><title type='text'>Barcelona 11/07 Photos</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://flickr.com/photos/jwheare/sets/72157603253197829/"&gt;&lt;img style="margin:0px 0 10px 0;" width="240" height="160" src="http://farm3.static.flickr.com/2061/2050659555_0e963b0357_m.jpg" border="0" alt="La Pedrera" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/18336893-3069390080276049468?l=james.wheare.org%2Fnotes%2Findex.php'/&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.blogger.com/feeds/18336893/3069390080276049468/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=18336893&amp;postID=3069390080276049468' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/18336893/posts/default/3069390080276049468'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/18336893/posts/default/3069390080276049468'/><link rel='alternate' type='text/html' href='http://james.wheare.org/notes/2007/11/barcelona-1107-photos.php' title='Barcelona 11/07 Photos'/><author><name>James Wheare</name><uri>http://www.blogger.com/profile/04328642175573639022</uri><email>blogger@wheare.org</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='13849712274151939405'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-18336893.post-7533314065687328773</id><published>2007-03-18T21:41:00.000Z</published><updated>2007-12-01T13:17:46.996Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='livebus'/><title type='text'>Bus times back online</title><content type='html'>&lt;a href="http://www.livebus.org/"&gt;LiveBus.org&lt;/a&gt; is currently the first hit for "&lt;a href="http://www.google.com/search?client=safari&amp;rls=en&amp;q=mash+up+offline&amp;ie=UTF-8&amp;oe=UTF-8"&gt;mash up offline&lt;/a&gt;" on Google. Not a particularly delightful situation, but I'm happy to say that the DeadBus has risen!&lt;br /&gt;&lt;br /&gt;I've moved the site to a sultry new virtual private server at &lt;a href="http://www.rimuhosting.com"&gt;RimuHosting&lt;/a&gt; and real time bus updates are flowing once more. You shouldn't notice a difference, but I've now got a lot more freedom to tweak performance behind the scenes, and future downtime of this sort should be rare.&lt;br /&gt;&lt;small&gt;Disclaimer: &lt;em&gt;Rare&lt;/em&gt;, not impossible&lt;/small&gt;&lt;br /&gt;&lt;br /&gt;Do let me know if you're seeing funny stuff, things may have become muddled in the move.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/18336893-7533314065687328773?l=james.wheare.org%2Fnotes%2Findex.php'/&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.blogger.com/feeds/18336893/7533314065687328773/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=18336893&amp;postID=7533314065687328773' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/18336893/posts/default/7533314065687328773'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/18336893/posts/default/7533314065687328773'/><link rel='alternate' type='text/html' href='http://james.wheare.org/notes/2007/03/bus-times-back-online.php' title='Bus times back online'/><author><name>James Wheare</name><uri>http://www.blogger.com/profile/04328642175573639022</uri><email>blogger@wheare.org</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='13849712274151939405'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-18336893.post-1207173651095614315</id><published>2007-02-14T19:06:00.000Z</published><updated>2007-12-01T13:17:46.997Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='livebus'/><title type='text'>LiveBus.org down</title><content type='html'>Due to some server configuration issues, I've had to take &lt;a href="http://www.livebus.org/"&gt;LiveBus&lt;/a&gt; down until further notice. I'll hopefully have the problems solved soon and will make another announcement as soon as the site returns.&lt;br /&gt;&lt;br /&gt;Sorry for the annoyance.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Update:&lt;/strong&gt; The site's &lt;a href="http://james.wheare.org/notes/2007/03/bus-times-back-online/"&gt;back online&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/18336893-1207173651095614315?l=james.wheare.org%2Fnotes%2Findex.php'/&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.blogger.com/feeds/18336893/1207173651095614315/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=18336893&amp;postID=1207173651095614315' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/18336893/posts/default/1207173651095614315'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/18336893/posts/default/1207173651095614315'/><link rel='alternate' type='text/html' href='http://james.wheare.org/notes/2007/02/livebusorg-down.php' title='LiveBus.org down'/><author><name>James Wheare</name><uri>http://www.blogger.com/profile/04328642175573639022</uri><email>blogger@wheare.org</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='13849712274151939405'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-18336893.post-2803377352413896346</id><published>2007-02-08T01:42:00.000Z</published><updated>2007-12-01T13:17:46.997Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='livebus'/><title type='text'>LiveBus.org launched</title><content type='html'>As part of a demo at the inaugural &lt;a href="http://oxford.geeknights.net/2007/february-7th/"&gt;Oxford Geek Night&lt;/a&gt; &lt;em&gt;(&lt;strong&gt;Update:&lt;/strong&gt; podcasts now online at that link - hooray for immortalised mumblings!)&lt;/em&gt; on Wednesday night, I finally gave in and launched the project I've been working on for the last many months.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.livebus.org/"&gt;LiveBus.org&lt;/a&gt; is a free service that lets you find bus stops and routes on a map and look up live arrival times. It currently covers most routes in Oxfordshire and Surrey, and will hopefully be expanded in the future.&lt;br /&gt;&lt;br /&gt;More info on LiveBus is at the &lt;a href="http://www.livebus.org/about/" title="About LiveBus.org"&gt;about page&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Comments/questions/suggestions welcomed and encouraged.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/18336893-2803377352413896346?l=james.wheare.org%2Fnotes%2Findex.php'/&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.blogger.com/feeds/18336893/2803377352413896346/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=18336893&amp;postID=2803377352413896346' title='13 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/18336893/posts/default/2803377352413896346'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/18336893/posts/default/2803377352413896346'/><link rel='alternate' type='text/html' href='http://james.wheare.org/notes/2007/02/livebusorg-launched.php' title='LiveBus.org launched'/><author><name>James Wheare</name><uri>http://www.blogger.com/profile/04328642175573639022</uri><email>blogger@wheare.org</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='13849712274151939405'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>13</thr:total></entry><entry><id>tag:blogger.com,1999:blog-18336893.post-2207990977389627936</id><published>2007-01-17T23:06:00.000Z</published><updated>2007-12-01T13:18:35.265Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='typography'/><title type='text'>How to piss me off...</title><content type='html'>&lt;img src="http://james.wheare.org/notes/images/papyrus.gif" width="440" height="200" alt="Insert Corporate Identity Here" /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.myfonts.com/fonts/letraset/papyrus/"&gt;Papyrus&lt;/a&gt;? Just say no.&lt;br /&gt;&lt;br /&gt;Yes, I am a font nerd.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/18336893-2207990977389627936?l=james.wheare.org%2Fnotes%2Findex.php'/&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.blogger.com/feeds/18336893/2207990977389627936/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=18336893&amp;postID=2207990977389627936' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/18336893/posts/default/2207990977389627936'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/18336893/posts/default/2207990977389627936'/><link rel='alternate' type='text/html' href='http://james.wheare.org/notes/2007/01/how-to-piss-me-off.php' title='How to piss me off...'/><author><name>James Wheare</name><uri>http://www.blogger.com/profile/04328642175573639022</uri><email>blogger@wheare.org</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='13849712274151939405'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-18336893.post-114102322364628939</id><published>2006-02-27T05:51:00.000Z</published><updated>2007-12-01T13:18:21.225Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='architecture'/><title type='text'>Pen to paper</title><content type='html'>I hate technical drawing.&lt;br /&gt;&lt;br /&gt;Sitting down at a drawing board with a T-square and scale ruler to draw precise plans, elevations and the like can be a real chore when you're used to living the cosy Moleskine and biro lifestyle. I'd much rather churn out wobbly sketches of spidery landscaping and funkily shaded walls than spend hours accurately measuring out windows and scratching away ink smudges before scrapping my work and starting again because I was out by half a metre.&lt;br /&gt;&lt;br /&gt;Alas, this is a necessary evil of the course, even with the modern luxury of eager &lt;acronym title="Computer Aided Design"&gt;CAD&lt;/acronym&gt; monkeys slaving away in the dungeons of architectural practice. So here's what I've got to do:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Plan&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Four elevations&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Section&lt;/li&gt;&lt;li&gt;Isometric&lt;/li&gt;&lt;li&gt;Sectional perspective showing construction details&lt;/li&gt;&lt;li&gt;Model at 1:50 scale&lt;/li&gt;&lt;/ul&gt;When what I really want to be coming up with is more stuff like this:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://james.wheare.org/bath/DSC_9308.jpg" title="Colour sketch and rough isometric of ideal family home"&gt;&lt;img src="http://james.wheare.org/bath/DSC_9308-thumb.jpg" alt="" height="292" width="440" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Such is the life of a student these days...&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/18336893-114102322364628939?l=james.wheare.org%2Fnotes%2Findex.php'/&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.blogger.com/feeds/18336893/114102322364628939/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=18336893&amp;postID=114102322364628939' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/18336893/posts/default/114102322364628939'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/18336893/posts/default/114102322364628939'/><link rel='alternate' type='text/html' href='http://james.wheare.org/notes/2006/02/pen-to-paper.php' title='Pen to paper'/><author><name>James Wheare</name><uri>http://www.blogger.com/profile/04328642175573639022</uri><email>blogger@wheare.org</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='13849712274151939405'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-18336893.post-114057171728444649</id><published>2006-02-21T22:42:00.000Z</published><updated>2007-12-01T13:18:21.225Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='architecture'/><title type='text'>Foamboard fabrication and Photoshop</title><content type='html'>Well I'm back from an extended hiatus, suitably replenished and motivated to get on with larnin' me some buildin' designin' skillz.&lt;br /&gt;&lt;br /&gt;We've started our first individual project now. The brief: to design a family house for an 'Ideal Home Exhibition.' Salient conditions:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;20 x 20 plot&lt;/li&gt;&lt;li&gt;Maximum interior space: 200m²&lt;/li&gt;&lt;li&gt;Masonry construction (bricks/stone/concrete blocks)&lt;/li&gt;&lt;/ul&gt;It's liberating being responsible for the entire design process and I'm a lot more inspired this time around.&lt;br /&gt;&lt;br /&gt;Here's my concept model:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://james.wheare.org/bath/DSC_9140.jpg" title="Project 4: Family Home - Concept model"&gt;&lt;img src="http://james.wheare.org/bath/DSC_9140-thumb.jpg" alt="" 440="" height="292" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;And here's an unsolicited paintover &lt;a href="http://www.stidston.org/freddie/" title="Fred Stidston"&gt;Fred&lt;/a&gt; worked up in a couple of hours and sent back to me:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://james.wheare.org/bath/jw_model.jpg" title="Fred Stidston: Paintover of family house concept model by James Wheare"&gt;&lt;img src="http://james.wheare.org/bath/jw_model-thumb.jpg" alt="" height="292" width="440" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;This really helped make my day. Such an awesome contribution and visualisation tool. Thanks Fred, you never cease to amaze.&lt;br /&gt;&lt;br /&gt;&lt;hr /&gt;&lt;br /&gt;Anyway, these status updates helped keep me on track last semester, so I'll try to keep things moving along here.&lt;br /&gt;&lt;br /&gt;Oh and a warm welcome to all &lt;a href="http://iamcal.com"&gt;iamcal.com&lt;/a&gt; visitors!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/18336893-114057171728444649?l=james.wheare.org%2Fnotes%2Findex.php'/&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.blogger.com/feeds/18336893/114057171728444649/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=18336893&amp;postID=114057171728444649' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/18336893/posts/default/114057171728444649'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/18336893/posts/default/114057171728444649'/><link rel='alternate' type='text/html' href='http://james.wheare.org/notes/2006/02/foamboard-fabrication-and-photoshop.php' title='Foamboard fabrication and Photoshop'/><author><name>James Wheare</name><uri>http://www.blogger.com/profile/04328642175573639022</uri><email>blogger@wheare.org</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='13849712274151939405'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-18336893.post-113327002404775777</id><published>2005-11-29T12:41:00.000Z</published><updated>2007-12-01T13:18:21.225Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='architecture'/><title type='text'>Home stretch</title><content type='html'>Phew, that's two projects out the way... For the next three weeks we'll be crunching numbers on a roof system. The brief is to design a covered market area to fit in the library car park of Bradford-on-Avon. A truly dismal site but this project has more of an engineering slant anyway.&lt;br /&gt;&lt;br /&gt;As for the writer's studio, the last few weeks were dedicated to frantically finishing our model, churning out last minute drawings and collating the juiciest material in an A3 brochure. I'm pretty happy with the result and generally had a lot of fun on this project.&lt;br /&gt;&lt;br /&gt;Here's the completed brochure for you to feast your eyes upon.&lt;br /&gt;&lt;br /&gt;&lt;a href="/bath/writer/brochure.pdf" title="Project 2: Writer's Studio - Brochure (PDF)"&gt;&lt;img src="/bath/writer/brochure-cover.jpg" width="440" height="311" alt="Project 2: Writer's Studio - Brochure cover page" /&gt;&lt;br /&gt;brochure.pdf (1.4MB)&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/18336893-113327002404775777?l=james.wheare.org%2Fnotes%2Findex.php'/&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.blogger.com/feeds/18336893/113327002404775777/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=18336893&amp;postID=113327002404775777' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/18336893/posts/default/113327002404775777'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/18336893/posts/default/113327002404775777'/><link rel='alternate' type='text/html' href='http://james.wheare.org/notes/2005/11/home-stretch.php' title='Home stretch'/><author><name>James Wheare</name><uri>http://www.blogger.com/profile/04328642175573639022</uri><email>blogger@wheare.org</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='13849712274151939405'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-18336893.post-113158007695501739</id><published>2005-11-09T23:09:00.000Z</published><updated>2007-12-01T13:18:21.226Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='architecture'/><title type='text'>The tedium of drafting</title><content type='html'>While I appreciate it's a handy skill to have, and producing a really stunning drawing can be very satisfying, repeatedly drawing and redrawing the same scheme in the same plane is a bit of a pain.&lt;br /&gt;&lt;br /&gt;I redrew the plan for our writer's studio earlier tonight (which admittedly wasn't too bad since it was mostly tracing) and took a little webcam movie of the process for kicks. Check it out:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://james.wheare.org/bath/james-plan.gif"&gt;&lt;cite&gt;Drafting a writer's studio in plan&lt;/cite&gt;&lt;/a&gt; starring James  Wheare. (917kb)&lt;br /&gt;&lt;br /&gt;I stumbled upon a fantastic blog earlier today, written by a third year Graphic Design student at Bath Spa University, just down the road. &lt;a href="http://graphicdesignstudentboard.typepad.com/" title="Thoughts of a Graphic Design student"&gt;Claire Mills&lt;/a&gt; is examining the state of Graphic Design education and laying out what she feels such an experience should involve. Readers are encouraged to contribute their thoughts on the site, which may well be incorporated into her final major project.&lt;br /&gt;&lt;br /&gt;As an Architecture student, her thoughts and ideas apply just as much to me as to anyone pursuing a design education and I'd definitely recommend you give it a look.&lt;br /&gt;&lt;br /&gt;While I'm here, I'd just like to point you in the direction of an incredibly talented artist I went to school with. &lt;a href="http://www.stidston.org/freddie/" title="Fred Stidston"&gt;Fred Stidston's paintings&lt;/a&gt; are breathtaking, vivid and teaming with character and you should all run to his site this instant!&lt;br /&gt;&lt;br /&gt;Right, now for some two-point perspective love...&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/18336893-113158007695501739?l=james.wheare.org%2Fnotes%2Findex.php'/&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.blogger.com/feeds/18336893/113158007695501739/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=18336893&amp;postID=113158007695501739' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/18336893/posts/default/113158007695501739'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/18336893/posts/default/113158007695501739'/><link rel='alternate' type='text/html' href='http://james.wheare.org/notes/2005/11/tedium-of-drafting.php' title='The tedium of drafting'/><author><name>James Wheare</name><uri>http://www.blogger.com/profile/04328642175573639022</uri><email>blogger@wheare.org</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='13849712274151939405'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-18336893.post-113107025903108243</id><published>2005-11-04T01:53:00.000Z</published><updated>2007-12-01T13:18:21.226Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='architecture'/><title type='text'>No Balustrades</title><content type='html'>We started building a balsa wood model today after some tedious number crunching to sort out dimensions. Gotta work up some larger scale construction details to show all the exciting joint work we've planned. Hmm... yes well I hope this is more interesting:&lt;br /&gt;&lt;br /&gt;&lt;img src="/bath/freehand.jpg" width="440" height="330" alt="Project 2: Writer's studio freehand drawings." /&gt;&lt;br /&gt;&lt;br /&gt;More later perhaps.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/18336893-113107025903108243?l=james.wheare.org%2Fnotes%2Findex.php'/&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.blogger.com/feeds/18336893/113107025903108243/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=18336893&amp;postID=113107025903108243' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/18336893/posts/default/113107025903108243'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/18336893/posts/default/113107025903108243'/><link rel='alternate' type='text/html' href='http://james.wheare.org/notes/2005/11/no-balustrades.php' title='No Balustrades'/><author><name>James Wheare</name><uri>http://www.blogger.com/profile/04328642175573639022</uri><email>blogger@wheare.org</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='13849712274151939405'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-18336893.post-113071742043447896</id><published>2005-10-30T23:29:00.000Z</published><updated>2007-12-01T13:18:21.227Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='architecture'/><title type='text'>Reaching skyward</title><content type='html'>Determining heights and proportions from scratch with no scaled reference is a bit of a pain, but eminently doable.&lt;br /&gt;&lt;br /&gt;&lt;img src="/bath/DSC_7834.jpg" width="440" height="336" alt="Project 2: Writer's studio scale cross-section of scheme." /&gt;&lt;br /&gt;&lt;br /&gt;Yes, I'm aware of the unintelligible nature of this cross-section and the distinct lack of a roof. Take it as an opportunity to stretch your imaginative flair.&lt;br /&gt;&lt;br /&gt;Ruby's been visiting from Wimbledon for the weekend on retreat from designing costumes. That's a working retreat... of course. In the main, this work has involved languishing in bed calling out eccentricities such as "If you were a Norse God, who would you be?" and generally being a lady of consummate splendour.&lt;br /&gt;&lt;br /&gt;What a muse.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/18336893-113071742043447896?l=james.wheare.org%2Fnotes%2Findex.php'/&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.blogger.com/feeds/18336893/113071742043447896/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=18336893&amp;postID=113071742043447896' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/18336893/posts/default/113071742043447896'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/18336893/posts/default/113071742043447896'/><link rel='alternate' type='text/html' href='http://james.wheare.org/notes/2005/10/reaching-skyward.php' title='Reaching skyward'/><author><name>James Wheare</name><uri>http://www.blogger.com/profile/04328642175573639022</uri><email>blogger@wheare.org</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='13849712274151939405'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-18336893.post-113062379895839277</id><published>2005-10-29T22:33:00.000+01:00</published><updated>2007-12-01T13:18:21.227Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='architecture'/><title type='text'>As promised</title><content type='html'>So, here's what I spent three hours doing today.&lt;br /&gt;&lt;br /&gt;&lt;img src="/bath/DSC_7831.jpg" width="440" height="296" alt="Project 2: Writer's studio scale plan of scheme." /&gt;&lt;br /&gt;&lt;br /&gt;Three hours?! Yeah, scale drawing is a bitch. As should be obvious from this plan, the scheme involves a contemporary reinterpretation of the traditional Japanese Machiya construction style for use as a writer's studio.&lt;br /&gt;&lt;br /&gt;Yes... quite.&lt;br /&gt;&lt;br /&gt;So er... while I'm down here, I'd like to shout out to my homey Hugh, who's serving up some compsci magic at Cambridge. Word up in your shizzle, dog.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/18336893-113062379895839277?l=james.wheare.org%2Fnotes%2Findex.php'/&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.blogger.com/feeds/18336893/113062379895839277/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=18336893&amp;postID=113062379895839277' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/18336893/posts/default/113062379895839277'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/18336893/posts/default/113062379895839277'/><link rel='alternate' type='text/html' href='http://james.wheare.org/notes/2005/10/as-promised.php' title='As promised'/><author><name>James Wheare</name><uri>http://www.blogger.com/profile/04328642175573639022</uri><email>blogger@wheare.org</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='13849712274151939405'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-18336893.post-113046064308037907</id><published>2005-10-28T01:36:00.000+01:00</published><updated>2007-12-01T13:18:21.227Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='architecture'/><title type='text'>Webcam</title><content type='html'>As you can probably see, I've got my webcam set up in the sidebar over there. Now you can keep an eye on me procrastinating or if you're lucky, draughting some architectural masterpiece.&lt;br /&gt;&lt;br /&gt;Speaking of which, I've now started project 2, a timber framed writer's studio. I'll have some drawings to share with you tomorrow but until then, here's a teaser.&lt;br /&gt;&lt;br /&gt;&lt;img src="/bath/DSCN0635.jpg" width="440" height="290" alt="Traditional Japanese interior" /&gt;&lt;br /&gt;&lt;br /&gt;Well, at least, I hope that turns out to be an accurate teaser.&lt;br /&gt;&lt;br /&gt;Fare thee well, o ye wonders of the modern world.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/18336893-113046064308037907?l=james.wheare.org%2Fnotes%2Findex.php'/&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.blogger.com/feeds/18336893/113046064308037907/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=18336893&amp;postID=113046064308037907' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/18336893/posts/default/113046064308037907'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/18336893/posts/default/113046064308037907'/><link rel='alternate' type='text/html' href='http://james.wheare.org/notes/2005/10/webcam.php' title='Webcam'/><author><name>James Wheare</name><uri>http://www.blogger.com/profile/04328642175573639022</uri><email>blogger@wheare.org</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='13849712274151939405'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-18336893.post-113037968528870828</id><published>2005-10-27T03:11:00.000+01:00</published><updated>2007-12-01T13:18:21.228Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='architecture'/><title type='text'>Dilatory inauguration</title><content type='html'>Well here we have it, I'm blogging (again) and I still hate that word. I'm not sure what sort of goodness will be cropping up here but I expect it'll be along the lines of thoughts, commentary, imagery and criticism. You know, the usual.&lt;br /&gt;&lt;br /&gt;Righto, just because text is boring (?), here's a sample of what I've been up to these past few weeks:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://james.wheare.org/bath/cover.jpg"&gt;&lt;img src="http://james.wheare.org/bath/cover-small.jpg" width="440" height="307" alt="Project 1: A space defined; group 38 brochure cover" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/18336893-113037968528870828?l=james.wheare.org%2Fnotes%2Findex.php'/&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.blogger.com/feeds/18336893/113037968528870828/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=18336893&amp;postID=113037968528870828' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/18336893/posts/default/113037968528870828'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/18336893/posts/default/113037968528870828'/><link rel='alternate' type='text/html' href='http://james.wheare.org/notes/2005/10/dilatory-inauguration.php' title='Dilatory inauguration'/><author><name>James Wheare</name><uri>http://www.blogger.com/profile/04328642175573639022</uri><email>blogger@wheare.org</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='13849712274151939405'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry></feed>