<?xml version="1.0" encoding="iso-8859-15"?>
<!-- generator="Kukkaisvoima version 15" -->
<rss version="2.0"
xmlns:content="http://purl.org/rss/1.0/modules/content/"
xmlns:wfw="http://wellformedweb.org/CommentAPI/"
xmlns:dc="http://purl.org/dc/elements/1.1/"
>
<channel>
<title>Tim's Bits and Pieces: Work</title>
<link>http://blog.timp.com.au</link>
<description>My personal blog, covering many random topics</description>
<pubDate>Wed, 25 Aug 2010 23:03:54 +0200</pubDate>
<lastBuildDate>Wed, 25 Aug 2010 23:03:54 +0200</lastBuildDate>
<generator>http://23.fi/kukkaisvoima/</generator>
<language>en</language>
<item>
<title>Speedup of Trac Static Content
</title>
<link>http://blog.timp.com.au/speedup_of_trac_static_content%3A2010-08-25%3AComputers%2CLinux%2CWork</link>
<comments>http://blog.timp.com.au/speedup_of_trac_static_content%3A2010-08-25%3AComputers%2CLinux%2CWork#comments</comments>
<pubDate>Wed, 25 Aug 2010 23:03:54 +0200</pubDate>
<dc:creator>TimP</dc:creator>
<category>Computers</category>
<category>Linux</category>
<category>Work</category>
<guid isPermaLink="false">http://blog.timp.com.au/speedup_of_trac_static_content%3A2010-08-25%3AComputers%2CLinux%2CWork/</guid>
<description><![CDATA[ <p>At <a href='http://codesion.com'>work</a> I recently spent some time working on
 [...]]]></description>
<content:encoded><![CDATA[
<p>At <a href='http://codesion.com'>work</a> I recently spent some time working on
 getting our <a href='http://codesion.com/screenshots/wiki-hosting.shtml'>hosted
 	Trac</a> to run faster. I found one simple little trick that gave up to a
 20% speed improvement, so I thought I'd share it here.</p>
 
 <p>The basic idea is that Trac has a lot of overhead due to executing a pile of
 Python code for each requested file including static content like the logos,
 background images, CSS, <acronym title="Latin: Et Cetera; English: and so
 on">etc</acronym>. If you tell Apache just to skip the Python code
 for the static content you can save a lot of time and processing power. All the
 default static content is under
 "<em>/python/library/path</em>/site-packages/trac/htdocs" which Trac servers up
 as "/chrome/common/". Basically a request for
 http://server.com/trac/chrome/common/logo.png will get a file from somewhere
 like /usr/lib/python2.5/site-packages/trac/htdocs/logo.png on the harddisk. To
 skip Trac for this we want to add something like the following to the Apache
 configuration (AliasMatch is part of <a
 	href='http://httpd.apache.org/docs/2.2/mod/mod_alias.html#aliasmatch'>mod_alias</a>):</p>
 
 <pre class='code'>
 	AliasMatch ^/(.+)/chrome/common(.*) /usr/lib/python2.5/site-packages/trac/htdocs$2
 </pre>
 
 <p>This matches any request for a path that matches
 /<em>something</em>/chrome/common/<em>something_else</em>, and then sends back
 the file located at
 /usr/lib/python2.5/site-packages/trac/htdocs/<em>something_else</em>; preventing
 the Trac Python code from running. Since there is about a dozen images, CSS
 files, and JavaScript files for each Trac page the time saved by this very
 quickly adds up.</p>
 ]]></content:encoded>
<wfw:commentRss>http://blog.timp.com.au/speedup_of_trac_static_content%3A2010-08-25%3AComputers%2CLinux%2CWork/feed/</wfw:commentRss>
</item>
<item>
<title>Joel on DRCS
</title>
<link>http://blog.timp.com.au/joel_on_drcs%3A2010-03-22%3AComputers%2CWork</link>
<comments>http://blog.timp.com.au/joel_on_drcs%3A2010-03-22%3AComputers%2CWork#comments</comments>
<pubDate>Mon, 22 Mar 2010 23:03:54 +0200</pubDate>
<dc:creator>TimP</dc:creator>
<category>Computers</category>
<category>Work</category>
<guid isPermaLink="false">http://blog.timp.com.au/joel_on_drcs%3A2010-03-22%3AComputers%2CWork/</guid>
<description><![CDATA[ <p>We where talking about merging today and one of my co-workers pointed out
 [...]]]></description>
<content:encoded><![CDATA[
<p>We where talking about merging today and one of my co-workers pointed out
 that some of the advantages of Distributed Revision Control Systems (<acronym
 	title="Distributed Revision Control Systems">DRCS</acronym>), are
 actually more of a case of "distributed <acronym title='revision control
 	systems'>rcs</acronym> rules because I never read the
 manual for <acronym title='Subversion'>svn</acronym> and <acronym
 	title="Distributed Revision Control Systems">drcs</acronym> is complex enough that it forced me to read the manual".
 For example Joel Spolsky (of Joel on Software) writes about <a
 	href='http://www.joelonsoftware.com/items/2010/03/17.html'>Mercurial</a>:</p>
 
 <blockquote>
 	<p>The interesting part is that these systems think in terms of changes, not
 	in terms of versions.</p>
 
 	<p>That's a very zen-like thing to say, I know. Traditional version control
 	thinks: OK, I have version 1. And now I have version 2. And now I have
 	version 3.</p>
 
 	<p>And distributed version control thinks, I had nothing. And then I got
 	these changes. And then I got these other changes.</p>
 </blockquote>
 
 <p>Uhmm, no, that's not quite right. On the back-end Subversion stores changesets
 not versions, and since way back in the 1.0 days the documentation has always
 encouraged a model of thinking about changes not versions, see <a
 	href='http://svnbook.red-bean.com/en/1.0/ch04s03.html'>the section on
 	merging</a> in the old Subversion book for instance. The difference is that
 when he didn't understand Subversion it was forgiving enough that he could still
 use it, but with Mecurial he had to go and read the manual. Not that there
 aren't real benefits to using Mecurial or Git, but they often "solve" problems
 with Subversion that are just as well solved by reading the Subversion
 manual.</p>
 
 <p>By the way Technically most revision control systems store changesets rather
 than versions, and then generate the "version" you need when you request it, at
 least back to <acronym title='Revision Control System'>RCS</acronym> from
 '82. Though some would encourage you to have a mental model of versions instead
 of changesets.</p>
 
 <p>PS. I use Git myself for most of my personal projects, and the company I work
 for (<a href="http://codesion.com">Codesion</a>) plans to add support for Git
 some time this year, and also switch our internal development over to Git at
 some point, so it's not like I have some sort of hatred of <acronym
 	title="Distributed Revision Control Systems">DRCS</acronym>.</p>
 ]]></content:encoded>
<wfw:commentRss>http://blog.timp.com.au/joel_on_drcs%3A2010-03-22%3AComputers%2CWork/feed/</wfw:commentRss>
</item>
<item>
<title>The Company Formerly Known as CVSDude
</title>
<link>http://blog.timp.com.au/the_company_formerly_known_as_cvsdude%3A2010-02-02%3AWork</link>
<comments>http://blog.timp.com.au/the_company_formerly_known_as_cvsdude%3A2010-02-02%3AWork#comments</comments>
<pubDate>Tue, 02 Feb 2010 23:03:54 +0200</pubDate>
<dc:creator>TimP</dc:creator>
<category>Work</category>
<guid isPermaLink="false">http://blog.timp.com.au/the_company_formerly_known_as_cvsdude%3A2010-02-02%3AWork/</guid>
<description><![CDATA[ <p>The company I work for has changed it's name from <a
 [...]]]></description>
<content:encoded><![CDATA[
<p>The company I work for has changed it's name from <a
 	href='http://blog.cvsdude.com/bid/30233/The-Dude-Abides-No-More-Say-Hello-to-Codesion'>CVSDude
 	to Codesion</a>. I'm going to miss CVSDude, but I think Codesion is probably
 better.</p>
 
 <p>The main reason for the change is to make our company more enterprisy.
 Apparently our sales team where having some problems in the enterprise market,
 with both the CVS and Dude parts of the name.  CVS is an obsolete technology,
 90%-95% of our customers use the more modern Subversion instead, and with the
 planned addition of Git later this year, it would become even worse. In addition
 some people apparently have trouble trusting a company with Dude in it's name.</p>
 ]]></content:encoded>
<wfw:commentRss>http://blog.timp.com.au/the_company_formerly_known_as_cvsdude%3A2010-02-02%3AWork/feed/</wfw:commentRss>
</item>
<item>
<title>Bulk emails should not come from support
</title>
<link>http://blog.timp.com.au/bulk_emails_should_not_come_from_support%3A2009-12-18%3AComputers%2CHumour%2CWork</link>
<comments>http://blog.timp.com.au/bulk_emails_should_not_come_from_support%3A2009-12-18%3AComputers%2CHumour%2CWork#comments</comments>
<pubDate>Fri, 18 Dec 2009 23:03:53 +0200</pubDate>
<dc:creator>TimP</dc:creator>
<category>Computers</category>
<category>Humour</category>
<category>Work</category>
<guid isPermaLink="false">http://blog.timp.com.au/bulk_emails_should_not_come_from_support%3A2009-12-18%3AComputers%2CHumour%2CWork/</guid>
<description><![CDATA[ <p>Today my company sent out a bunch of emails about a service update to our
 [...]]]></description>
<content:encoded><![CDATA[
<p>Today my company sent out a bunch of emails about a service update to our
 customers. Approximately 16,000 emails. To make things easy for customers who
 wanted to ask questions about the changes we set the reply to field on the
 emails to be our support email address. This was a mistake. The first problem is
 that out of 16,000 people a reasonable number are going to be out of the office
 a week before Christmas, but that was OK, you just delete the dozen or so new
 Cases with "Out of Office Auto-reply" in the subject. No, the real problem was
 the infinite loops of auto-replies that our case management system created with
 some customers ticket systems.</p>
 ]]></content:encoded>
<wfw:commentRss>http://blog.timp.com.au/bulk_emails_should_not_come_from_support%3A2009-12-18%3AComputers%2CHumour%2CWork/feed/</wfw:commentRss>
</item>
</channel>
</rss>
