<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/rss2full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><rss xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" version="2.0"><channel><title>Revolution Systems Blog</title><link>http://revsys.com/blog/</link><description /><language>en-us</language><lastBuildDate>Thu, 17 Sep 2009 12:52:52 -0600</lastBuildDate><geo:lat>38.983551</geo:lat><geo:long>-95.232023</geo:long><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" href="http://feeds.feedburner.com/RevolutionSystemsBlog" type="application/rss+xml" /><feedburner:browserFriendly>This is an XML content feed. It is intended to be viewed in a newsreader or syndicated to another site, subject to copyright and fair use.</feedburner:browserFriendly><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com" /><item><title>Django 1.0 Template Development Review</title><link>http://feedproxy.google.com/~r/RevolutionSystemsBlog/~3/XgUiM3Wb9m4/</link><description>&lt;p&gt; 
&lt;a href="http://www.packtpub.com/django-1.0-template-design-practical-guide/mid/210909irxdzd?utm_source=revsys.com&amp;utm_medium=bookrev&amp;utm_content=other&amp;utm_campaign=mdb_000707"&gt;Django 1.0 Template Development&lt;/a&gt; by Scott Newman actually surprised me in it's depth of covering the topic. 
&lt;/p&gt; 
&lt;p&gt;
I assumed it would be written with the absolute Django Template beginner in mind.  While it is definitely an appropriate book for beginners, it also covers more advanced topics such as: 
&lt;/p&gt;
&lt;ul&gt; 
   &lt;li&gt;Writing custom template tags and filters, Chapter 7&lt;/li&gt;
   &lt;li&gt;Covers pagination quite well in Chapter 8&lt;/li&gt; 
   &lt;li&gt;Customizing the Django admin's look and feel in Chapter 9&lt;/li&gt; 
   &lt;li&gt;And gives a good designer intro to caching in Chapter 10&lt;/li&gt;
&lt;/ul&gt; 

&lt;p&gt;
This book should definitely be required reading for web designers that are looking to use Django.  As someone who has read and re-read the wonderful &lt;a href="http://www.djangoproject.com/en/dev/"&gt;Django Documentation&lt;/a&gt; many times this book does a great job of distilling all of that reference knowledge into book form.  
&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/RevolutionSystemsBlog/~4/XgUiM3Wb9m4" height="1" width="1"/&gt;</description><pubDate>Thu, 17 Sep 2009 12:52:52 -0600</pubDate><guid isPermaLink="false">http://revsys.com/blog/2009/sep/17/django-10-template-development-review/</guid><feedburner:origLink>http://revsys.com/blog/2009/sep/17/django-10-template-development-review/</feedburner:origLink></item><item><title>Django Training</title><link>http://feedproxy.google.com/~r/RevolutionSystemsBlog/~3/RXvSrEOeNG0/</link><description>&lt;p&gt;I'm pleased to announce that this September, Revolution Systems will be offering a &lt;a class="reference external" href="http://www.revsys.com/training/django/sept-2009/"&gt;four-day Django training course&lt;/a&gt; here in Kansas City, taught by Jacob Kaplan-Moss. Jacob has taught a number of similar courses privately in the past, but this is the first time we're opening this up to the public.&lt;/p&gt;
&lt;p&gt;If you've been wanting to really learn Django, this is a great chance. The class is intended for relative beginners to Django, but by the time you leave you'll know enough to create some pretty awesome websites.&lt;/p&gt;
&lt;p&gt;The class will be Monday, September 21 - Friday, September 25, 2009 in Kansas City, MO.&lt;/p&gt;
&lt;p&gt;For more, or to sign up, &lt;a class="reference external" href="http://www.revsys.com/training/django/sept-2009/"&gt;check out the full details&lt;/a&gt;.&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/RevolutionSystemsBlog/~4/RXvSrEOeNG0" height="1" width="1"/&gt;</description><pubDate>Thu, 16 Jul 2009 13:14:31 -0600</pubDate><guid isPermaLink="false">http://revsys.com/blog/2009/jul/16/django-training/</guid><feedburner:origLink>http://revsys.com/blog/2009/jul/16/django-training/</feedburner:origLink></item><item><title>Some quick updates</title><link>http://feedproxy.google.com/~r/RevolutionSystemsBlog/~3/s9AeDl-kjt8/</link><description>&lt;p&gt;It's been a busy and exciting week for us.&amp;nbsp; Jacob has been at &lt;a href="http://us.pycon.org/2009/about/" title="US Python Conference"&gt;PyCon&lt;/a&gt; in Chicago where he is participating in a number of panel discussions and giving quite a &lt;a href="http://jacobian.org/speaking/" title="talks by Jacob Kaplan-Moss"&gt;few talks&lt;/a&gt; as well. &amp;nbsp; Right now I imagine he's neck deep in code in the &lt;a href="http://us.pycon.org/2009/sprints/projects/django/" title="django code sprint"&gt;Django sprint&lt;/a&gt; helping to finish up the upcoming &lt;a href="http://www.djangoproject.com/weblog/2009/mar/23/11-beta-1/"&gt;1.1 release&lt;/a&gt;. If you're running a production site built with Django you should absolutely check out the talk he is giving with &lt;a href="http://b-list.org"&gt;James Bennett&lt;/a&gt; on &lt;a href="http://jacobian.org/speaking/2009/real-world-django/"&gt;Real World Django&lt;/a&gt;. &lt;/p&gt;&lt;p&gt;While my week has been busy hacking away on several client projects and moving my main work machine to a shiny new &lt;a href="http://www.amazon.com/gp/product/B000VR3P9K?ie=UTF8&amp;amp;tag=revosystblog-20&amp;amp;linkCode=as2&amp;amp;camp=1789&amp;amp;creative=9325&amp;amp;creativeASIN=B000VR3P9K"&gt;MacBook Pro&lt;/a&gt; (can't recommend these highly enough),&lt;img  alt="" src="http://www.assoc-amazon.com/e/ir?t=revosystblog-20&amp;amp;l=as2&amp;amp;o=1&amp;amp;a=B000VR3P9K" style="border: medium none ! important; margin: 0px ! important;" height="1" width="1"&gt;
I was interviewed by Daniel Dern of Business Trends Quarterly in his post about scaling and performance titled &lt;a href="http://www.btquarterly.com/?mc=brain-brawn&amp;amp;page=btp-viewarticle"&gt;For Scaling, Brains May Beat Brawn&lt;/a&gt;. We talk about how just throwing more money and hardware at a problem is not always the best solution.&amp;nbsp; Often there are architectural, design, and/or configuration changes that can bring significant cost savings to your project.&amp;nbsp; Both in terms of the hardware necessary to keep everything flowing, but also in on going system maintenance labor costs.&amp;nbsp; I'm not talking about pre-optimization evils or complicating things for your admin, often these changes are transparent to day to day operations, but certainly not to your bottom line. For example, just using the proper RAID levels and physical disk configurations for your particular PostgreSQL database can be a huge win in performance. &lt;/p&gt;&lt;p&gt;I also added a tidbit of wisdom in an advice post to budding entrepreneurs called &lt;a href="http://www.toiletpaperentrepreneur.com/blog/163-ways-how-to-become-an-entrepreneur"&gt;163 Ways How To Become An Entrepreneur&lt;/a&gt;. &lt;/p&gt;&amp;nbsp;&lt;br&gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&lt;img src="http://feeds.feedburner.com/~r/RevolutionSystemsBlog/~4/s9AeDl-kjt8" height="1" width="1"/&gt;</description><pubDate>Mon, 30 Mar 2009 10:15:46 -0600</pubDate><guid isPermaLink="false">http://revsys.com/blog/2009/mar/30/some-quick-updates/</guid><feedburner:origLink>http://revsys.com/blog/2009/mar/30/some-quick-updates/</feedburner:origLink></item><item><title>Welcome Jacob Kaplan-Moss</title><link>http://feedproxy.google.com/~r/RevolutionSystemsBlog/~3/TOFdLHEXZ-0/</link><description>&lt;p&gt;I&amp;#39;m very pleased to announce that &lt;a href="http://www.revsys.com/about/bio/jkm.html" title="Short biography for Jacob Kaplan-Moss"&gt;Jacob Kaplan-Moss&lt;/a&gt; has joined Revolution Systems to head up a new line of services around the ever growing&amp;#0160;&lt;a href="http://www.djangoproject.com"&gt;Django&lt;/a&gt; web development framework. First up are &lt;a href="http://www.revsys.com/services/django/" title="Django Support Plans and Packages"&gt;commercial Django Support Plans&lt;/a&gt;, but look for more Django related offerings in the near future. &lt;/p&gt;&lt;p&gt;Jacob has been a good friend of mine since before Django was even released.&amp;#0160; It was a pleasure to work with him at our previous day jobs and I&amp;#39;m very excited for the future ahead.&amp;#0160; Not only is he &lt;em&gt;obviously&lt;/em&gt; an authority on Django, he&amp;#39;s an amazing developer and generally an expert on all things tech. Jacob and Adrian are both great examples of how to lead an Open Source project and grow a real community around it.&lt;/p&gt;&lt;p&gt;By offering &lt;a href="http://www.revsys.com/services/django/"&gt;Django Support&lt;/a&gt; packages we hope to help adoption of Django in the business world, which helps grow the community at large. &amp;#0160; &lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/RevolutionSystemsBlog/~4/TOFdLHEXZ-0" height="1" width="1"/&gt;</description><pubDate>Thu, 05 Mar 2009 07:02:23 -0600</pubDate><guid isPermaLink="false">http://revsys.com/blog/2009/mar/05/welcome-jacob-kaplan-moss/</guid><feedburner:origLink>http://revsys.com/blog/2009/mar/05/welcome-jacob-kaplan-moss/</feedburner:origLink></item><item><title>ORD Camp a Huge Success</title><link>http://feedproxy.google.com/~r/RevolutionSystemsBlog/~3/LktcMPiFm8w/</link><description>&lt;p&gt;I was luck enough to be invited to attend &lt;a href="http://www.ordcamp.com"&gt;ORD Camp&lt;/a&gt; this last weekend in blisteringly cold Chicago.&amp;#0160; ORD Camp is an invite only, FooCamp style unconference targeted at geeks living in the Midwest. Having never attended a FooCamp style event I wasn&amp;#39;t sure what to expect.&amp;#0160; I can now say if you ever have the opportunity to attend an event like this it is well worth your time. &lt;/p&gt;&lt;p&gt;As you can see from the &lt;a href="http://www.ordcamp.com/whos-coming"&gt;attendee list&lt;/a&gt; it was a very diverse group of people, not just the usual crowd of notable Open Source geeks.&amp;#0160; The amount of brain power in that room was simply amazing and I can&amp;#39;t remember when I had as much fun.&amp;#0160; Some sessions were presentations, others were just focused discussions.&amp;#0160; Everything from how words work, brewing beer, life hacking, to what not to do as a startup.&amp;#0160; &lt;/p&gt;&lt;p&gt;While I loved the sessions the most fun was getting into random conversations ( some ended up being NSFW after midnight and many beers ) others were more typical.&amp;#0160; Spent some time talking with people about PostgreSQL&amp;#39;s advantages over MySQL, alternative business models, how a certain entrepreneur might improve the performance of their servers, etc. &lt;/p&gt;&lt;p&gt;It is difficult to determine how important this conference will be to my business in the future, but I can easily say that it has increased my drive, ambition, and overall excitement level.&amp;#0160; Passionate people, doing amazing things will do that to you! I can&amp;#39;t wait to attend next year. &lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/RevolutionSystemsBlog/~4/LktcMPiFm8w" height="1" width="1"/&gt;</description><pubDate>Tue, 03 Feb 2009 01:30:39 -0600</pubDate><guid isPermaLink="false">http://revsys.com/blog/2009/feb/03/ord-camp-a-huge-success/</guid><feedburner:origLink>http://revsys.com/blog/2009/feb/03/ord-camp-a-huge-success/</feedburner:origLink></item><item><title>ResumeBucket.com Launches</title><link>http://feedproxy.google.com/~r/RevolutionSystemsBlog/~3/-vf0cHWwn5I/</link><description>&lt;p&gt;I hope everyone had a great holiday this year.&amp;nbsp; For the past few months I've been working on &lt;a href="http://www.resumebucket.com" title="ResumeBucket -- Online Resume Service"&gt;an online resume site ResumeBucket.com&lt;/a&gt; and I need your help taking it for a test drive.&amp;nbsp; Our goal with this site is to create a site where you can upload your current resume in Word form, build a new resume using our online resume creation tool, or even just type in what you want using using our online text editor.&amp;nbsp; &lt;/p&gt;&lt;p&gt;The site gives you a unique URL you can give out to friends and prospective employers so they can instantly access an up to date copy of your resume.&amp;nbsp; There are options for them to also download a copy of your resume in Word or PDF format.&amp;nbsp; For an example of how your resume can look see our &lt;a href="http://www.resumebucket.com/joshstomel"&gt;CEO's resume&lt;/a&gt; page. &lt;/p&gt;&lt;p&gt;Unlike the other resume services out there, employers are able to search the database without paying any huge fees which will drive more qualified employment leads to your INBOX. &lt;/p&gt;&lt;p&gt;Please take a few minutes to kick the tires.&amp;nbsp; You can leave feedback here in the comments or E-mail me at &lt;a href="mailto:frank@revsys.com"&gt;frank@revsys.com&lt;/a&gt;. Thanks! &lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/RevolutionSystemsBlog/~4/-vf0cHWwn5I" height="1" width="1"/&gt;</description><pubDate>Mon, 29 Dec 2008 12:19:16 -0600</pubDate><guid isPermaLink="false">http://revsys.com/blog/2008/dec/29/resumebucketcom-launches/</guid><feedburner:origLink>http://revsys.com/blog/2008/dec/29/resumebucketcom-launches/</feedburner:origLink></item><item><title>Why isn&amp;#39;t PostgreSQL using my index? </title><link>http://feedproxy.google.com/~r/RevolutionSystemsBlog/~3/15fXlPUaeY8/</link><description>&lt;p&gt;This is a common question I see from PostgreSQL users.&amp;nbsp; In fact, someone was just in IRC asking it and it prompted this post.&amp;nbsp; The exchange usually goes: &lt;/p&gt;
&lt;p&gt;Steve: I have this column foo and I have an index on it, but when I do SELECT * FROM table WHERE foo = X, EXPLAIN doesn't use the index.&amp;nbsp; What am I doing wrong? &lt;/p&gt;
&lt;p&gt;90% of the time the answer is unfortunately &amp;quot;Because the query optimizer is smarter than you are&amp;quot;. Or maybe it's &lt;em&gt;fortunately&lt;/em&gt; depending on how you think about it! &lt;/p&gt;
&lt;p&gt;In this user's particular case he was mocking up a database schema and had only one row in the table he was querying against.&amp;nbsp; People who are more familiar with PostgreSQL will probably roll their eyes at the question, but if you put yourself in the user's shoes I can see how people would be confused by this.&amp;nbsp; They are thinking, &lt;em&gt;&amp;quot;I put an index on there on purpose, why the hell isn't it working?&amp;quot;&lt;/em&gt;.&amp;nbsp; &lt;/p&gt;
&lt;p&gt;PostgreSQL's query optimizer is &lt;strong&gt;smart, &lt;em&gt;really smart&lt;/em&gt;&lt;/strong&gt; and unless you have evidence otherwise you should trust what it is doing.&amp;nbsp; In this particular case, the optimizer realizes that if a table has only a few rows that using the index is actually &lt;em&gt;slower&lt;/em&gt; than just spinning through the entire table.&amp;nbsp; Just because PostgreSQL isn't using your index today with a small number of rows, does not mean it won't choose to use it later when you have more data or the query changes. Because he was just mocking up a design he didn't have real world data, which is almost always a bad way to performance tune your system unless you are very familiar with how PostgreSQL behaves.&amp;nbsp; &lt;/p&gt;
&lt;p&gt;Now there are other reasons why it might not be using the index.&amp;nbsp; If you have lots of data and the query you're running appears that it would benefit from the index, it might be a simple matter of forgetting to run an ANALYZE on the table or not having autovacuum turned on.&amp;nbsp; Until PostgreSQL re-analyzes your table it doesn't really &amp;quot;know&amp;quot; about that index to take it into account when building the query plan.&amp;nbsp; &lt;/p&gt;
&lt;p&gt;While performance tuning PostgreSQL is much easier and better documented than in days gone by, it can still be very confusing and time consuming for the inexperienced.&amp;nbsp; If your business needs help tuning their system you might consider my &lt;a href="http://www.revsys.com/services/postgresql/tuning"&gt;PostgreSQL Tuning Service&lt;/a&gt;. &lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/RevolutionSystemsBlog/~4/15fXlPUaeY8" height="1" width="1"/&gt;</description><pubDate>Tue, 16 Sep 2008 10:16:49 -0600</pubDate><guid isPermaLink="false">http://revsys.com/blog/2008/sep/16/why-isnt-postgresql-using-my-index/</guid><feedburner:origLink>http://revsys.com/blog/2008/sep/16/why-isnt-postgresql-using-my-index/</feedburner:origLink></item><item><title>Fret Free -- Introduction to Django and the Django Software Foundation</title><link>http://feedproxy.google.com/~r/RevolutionSystemsBlog/~3/yt7AosP3Z2g/</link><description>&lt;p&gt;&lt;a href="http://www.linuxpromagazine.com"&gt;LinuxPro Magazine&lt;/a&gt; just released my latest article, an introduction to &lt;a href="http://www.djangoproject.com"&gt;Django&lt;/a&gt; and some discussion about the newly created &lt;a href="http://www.djangoproject.com/foundation/"&gt;Django Software Foundation&lt;/a&gt;.  Being a life long Perl user, I didn't think I would enjoy Django at all. I have to admit that it is a VERY polished system.&amp;nbsp; It has great PostgreSQL support, in fact the core developers smartly prefer it over MySQL for their own systems. &lt;/p&gt;
&lt;p&gt;You can download a PDF copy of the article at, &lt;a href="http://www.linuxpromagazine.com/issues/2008/95/fret_free"&gt;Fret Free -- Django and the Django Software Foundation&lt;/a&gt;.&amp;nbsp; The print issue will hit the stands in October.&amp;nbsp; Hope you enjoy it!&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/RevolutionSystemsBlog/~4/yt7AosP3Z2g" height="1" width="1"/&gt;</description><pubDate>Wed, 20 Aug 2008 12:07:40 -0600</pubDate><guid isPermaLink="false">http://revsys.com/blog/2008/aug/20/fret-free-introduction-to-django-and-the-django-software-foundation/</guid><feedburner:origLink>http://revsys.com/blog/2008/aug/20/fret-free-introduction-to-django-and-the-django-software-foundation/</feedburner:origLink></item><item><title>Installing Apache2::Request on a 64-bit system</title><link>http://feedproxy.google.com/~r/RevolutionSystemsBlog/~3/WWSWi2xnqLo/</link><description>&lt;p&gt;I usually shy away from using 64-bit systems unless there is a clear need for it.&amp;nbsp; But with more and more hosting companies installing 64-but Linux distrobutions by default I sometimes have to suffer through. &lt;/p&gt;
&lt;p&gt;Today I ran into a very small bug in installing Apache2::Request modules via the CPAN shell.&amp;nbsp; This simply installs the default libapreq2 library with the Perl bindings for you. When attempting to start Apache I received this error: &lt;/p&gt;&lt;blockquote&gt;&lt;p&gt;Can't load '/usr/lib64/perl5/site_perl/5.8.8/x86_64-linux-thread-multi/auto/APR/Request/Request.so' for module APR::Request: libapreq2.so.2: cannot open shared object file: No such file or directory at /usr/lib64/perl5/5.8.8/x86_64-linux-thread-multi/DynaLoader.pm line 230. at /usr/lib64/perl5/site_perl/5.8.8/x86_64-linux-thread-multi/APR/Request/Param.pm line 27 Compilation failed in require at /usr/lib64/perl5/site_perl/5.8.8/x86_64-linux-thread-multi/APR/Request/Param.pm line 27. BEGIN failed--compilation aborted at /usr/lib64/perl5/site_perl/5.8.8/x86_64-linux-thread-multi/APR/Request/Param.pm line 27. Compilation failed in require at /usr/lib64/perl5/site_perl/5.8.8/x86_64-linux-thread-multi/Apache2/Request.pm line 2. BEGIN failed--compilation aborted at /usr/lib64/perl5/site_perl/5.8.8/x86_64-linux-thread-multi/Apache2/Request.pm line 2. &lt;/p&gt;&lt;/blockquote&gt;&lt;p&gt;Basically it is saying it can't load libapreq2.so.2.&amp;nbsp; Digging around in the system I found it had installed them in /usr/lib instead of the proper /usr/lib64.&amp;nbsp; The actual shared library was compiled for 64-bit, but was just installed in the wrong location.&amp;nbsp; A quick symlink like this fixes the isuse: &lt;/p&gt;&lt;blockquote&gt;&lt;p&gt;ln -s /usr/lib/libapreq2.so.2 /usr/lib64/libapreq2.so.2&lt;/p&gt;&lt;/blockquote&gt;&lt;p&gt;Hope this helps you get over this small issue. &lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/RevolutionSystemsBlog/~4/WWSWi2xnqLo" height="1" width="1"/&gt;</description><pubDate>Tue, 17 Jun 2008 02:44:02 -0600</pubDate><guid isPermaLink="false">http://revsys.com/blog/2008/jun/17/installing-apache2request-on-a-64-bit-system/</guid><feedburner:origLink>http://revsys.com/blog/2008/jun/17/installing-apache2request-on-a-64-bit-system/</feedburner:origLink></item><item><title>Django Software Foundation</title><link>http://feedproxy.google.com/~r/RevolutionSystemsBlog/~3/zfRPPx9uTUA/</link><description>&lt;p&gt;The &lt;a href="http://www.djangoproject.com"&gt;Django&lt;/a&gt; guys have scored another milestone today with the creation of the &lt;a href="http://www.djangoproject.com/foundation/"&gt;Django Software Foundation&lt;/a&gt;. Being a huge Open Source advocate I love hearing great news like this.&amp;nbsp; You can read more about the foundation at: &lt;/p&gt;
&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.djangoproject.com/weblog/2008/jun/17/foundation/"&gt;Announcing the Django Software Foundation&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www2.ljworld.com/news/2008/jun/17/new_foundation_django/"&gt;New Foundation for Django&lt;/a&gt; &lt;/li&gt;&lt;/ul&gt;
&lt;p&gt;On an unrelated note, an article I wrote for &lt;a href="http://www.linux-magazine.com"&gt;LinuxPro Magazine&lt;/a&gt; last November about using &lt;a href="http://www.danga.com/perlbal"&gt;Perlbal&lt;/a&gt; was recently put online.&amp;nbsp; You can read it at &lt;a href="http://w3.linux-magazine.com/issue/84/Perlbal.pdf"&gt;The Juggler -- Let the nimble Perlbal webserver keep your traffic in balance &lt;/a&gt;. &lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/RevolutionSystemsBlog/~4/zfRPPx9uTUA" height="1" width="1"/&gt;</description><pubDate>Tue, 17 Jun 2008 01:38:38 -0600</pubDate><guid isPermaLink="false">http://revsys.com/blog/2008/jun/17/django-software-foundation/</guid><feedburner:origLink>http://revsys.com/blog/2008/jun/17/django-software-foundation/</feedburner:origLink></item></channel></rss>
