<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/atom10full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><feed xmlns="http://www.w3.org/2005/Atom">
    <title>
        Another guy named Mike    </title>
        
    
        <link href="http://www.publicstatic.net/" />
    
        
    <updated>2012-07-01T14:02:05Z</updated>

    <id>/atom/posts.xml/</id>

            <atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/atom+xml" href="http://feeds.feedburner.com/AnotherGuyNamedMike" /><feedburner:info xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" uri="anotherguynamedmike" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><feedburner:emailServiceId xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0">AnotherGuyNamedMike</feedburner:emailServiceId><feedburner:feedburnerHostname xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0">http://feedburner.google.com</feedburner:feedburnerHostname><entry>
            <title type="html">Jep 3.1 Released</title>
            <author><name>Mike Johnson</name></author>
            <link href="/2012/06/jep_3.1/" />
            <updated>2012-06-10T12:41:40Z</updated>
            <published>2012-06-10T12:41:40Z</published>
            <id>/2012/06/jep_3.1/</id>

            <content type="html">
                                          &lt;p&gt;I have just released &lt;a href="http://pypi.python.org/pypi/jep/"&gt;Jep 3.1&lt;/a&gt; on PyPi. Get it now: &lt;code&gt;pip install jep&lt;/code&gt;.&lt;/p&gt;            </content>
        </entry>
            <entry>
            <title type="html">Interested in a Teradata Python Driver?</title>
            <author><name>Mike Johnson</name></author>
            <link href="/2012/04/teradata-python-driver/" />
            <updated>2012-04-15T08:45:40Z</updated>
            <published>2012-04-15T08:45:40Z</published>
            <id>/2012/04/teradata-python-driver/</id>

            <content type="html">
                                          &lt;p&gt;Teradata is big in the data warehousing world, but it has &lt;a href="http://www.mrj0.com/2010/11/30/install-tora-with-teradata-on-ubuntu/"&gt;horrible support&lt;/a&gt;
for all of my favorite platforms. I've been thinking about writing a native
Python DBAPI 2.0 driver for Teradata. I have to use this database for work,
and I'd like to have first class Python support on all my platforms
(OS X and much more modern Linux distributions than they support).&lt;/p&gt;            </content>
        </entry>
            <entry>
            <title type="html">Thanks @rdegges - 100 carb habit</title>
            <author><name>Mike Johnson</name></author>
            <link href="/2012/02/thanks-rdegges/" />
            <updated>2012-02-29T21:33:40Z</updated>
            <published>2012-02-29T21:33:40Z</published>
            <id>/2012/02/thanks-rdegges/</id>

            <content type="html">
                                          &lt;p&gt;Randall Degges wrote about his &lt;a href="http://rdegges.com/new-habit-100-carbs"&gt;ketogenic diet&lt;/a&gt; about a month ago. I'm not going to pretend
to know much about diet, but the more I read about it the more sense it made to me.&lt;/p&gt;            </content>
        </entry>
            <entry>
            <title type="html">Python string formatting</title>
            <author><name>Mike Johnson</name></author>
            <link href="/2011/12/08/python_format/" />
            <updated>2011-12-08T09:22:40Z</updated>
            <published>2011-12-08T09:22:40Z</published>
            <id>/2011/12/08/python_format/</id>

            <content type="html">
                                          &lt;p&gt;Because I can never find it when I want to, here's how to quickly
format a US dollar amount:&lt;/p&gt;
&lt;div class="codehilite"&gt;&lt;pre&gt;&lt;span class="o"&gt;&amp;gt;&amp;gt;&amp;gt;&lt;/span&gt; &lt;span class="kn"&gt;from&lt;/span&gt; &lt;span class="nn"&gt;decimal&lt;/span&gt; &lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;Decimal&lt;/span&gt;
&lt;span class="o"&gt;&amp;gt;&amp;gt;&amp;gt;&lt;/span&gt; &lt;span class="s"&gt;&amp;#39;{:,.2f}&amp;#39;&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;format&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;Decimal&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;&amp;#39;12312123.1231212&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;))&lt;/span&gt;
&lt;span class="s"&gt;&amp;#39;12,312,123.12&amp;#39;&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;


&lt;p&gt;This is for Python 2.7 and above.&lt;/p&gt;
&lt;p&gt;Thanks, &lt;a href="http://rhettinger.wordpress.com/"&gt;Raymond&lt;/a&gt;!&lt;/p&gt;            </content>
        </entry>
            <entry>
            <title type="html">My fab file</title>
            <author><name>Mike Johnson</name></author>
            <link href="/2011/12/03/my_fab_file/" />
            <updated>2011-12-03T09:47:40Z</updated>
            <published>2011-12-03T09:47:40Z</published>
            <id>/2011/12/03/my_fab_file/</id>

            <content type="html">
                                          &lt;p&gt;There aren't enough examples online of Fabric scripts as used in the
real world. The documentation is good but a real example is always
better.&lt;/p&gt;            </content>
        </entry>
            <entry>
            <title type="html">Backup GMail</title>
            <author><name>Mike Johnson</name></author>
            <link href="/2011/11/06/backup_gmail/" />
            <updated>2011-11-06T13:51:40Z</updated>
            <published>2011-11-06T13:51:40Z</published>
            <id>/2011/11/06/backup_gmail/</id>

            <content type="html">
                                          &lt;p&gt;Google might disable an account for a number of reasons. Accounts may
be disabled because Google requires real names or because an algorithm
decided an account was being used to spam. Accounts can be locked and
users are left at the mercy of Google's &lt;a href="https://twitter.com/#!/avdi/status/131813191658373120"&gt;weak customer service&lt;/a&gt;.&lt;/p&gt;            </content>
        </entry>
            <entry>
            <title type="html">Site ported to Hyde</title>
            <author><name>Mike Johnson</name></author>
            <link href="/2011/10/30/site-ported-to-hyde/" />
            <updated>2011-10-30T17:28:40Z</updated>
            <published>2011-10-30T17:28:40Z</published>
            <id>/2011/10/30/site-ported-to-hyde/</id>

            <content type="html">
                                          &lt;p&gt;I have ported this site to use &lt;a href="http://hyde.github.com/"&gt;Hyde&lt;/a&gt;, a static website generator
written in Python. I had been actually running a static version of my
Django blog for sometime (using wget mirror), but Hyde does a great
job of making generating a new site, links and templates very easy.&lt;/p&gt;            </content>
        </entry>
            <entry>
            <title type="html">Added Import hook for Jep</title>
            <author><name>Mike Johnson</name></author>
            <link href="/2011/07/30/added-import-hook-jep/" />
            <updated>2011-07-30T10:00:00Z</updated>
            <published>2011-07-30T10:00:00Z</published>
            <id>/2011/07/30/added-import-hook-jep/</id>

            <content type="html">
                                          &lt;p&gt;It's been a while since I removed the old monkey patched import function from
Jep. I finally got around to adding a nice import hook, so now stuff like this
works without breaking things like numpy:&lt;/p&gt;            </content>
        </entry>
            <entry>
            <title type="html">uWSGI init script</title>
            <author><name>Mike Johnson</name></author>
            <link href="/2011/05/06/outage/" />
            <updated>2011-05-06T10:00:00Z</updated>
            <published>2011-05-06T10:00:00Z</published>
            <id>/2011/05/06/outage/</id>

            <content type="html">
                                          &lt;p&gt;This site (and accompanying backend for &lt;a href="/namedropper/"&gt; NameDropper &lt;/a&gt; ) went down about
4am PST this morning due to a &lt;a href="https://twitter.com/#%21/linode/status/66448638410366977"&gt; Linode outage &lt;/a&gt; .&lt;/p&gt;            </content>
        </entry>
            <entry>
            <title type="html">No, flash is not relevant</title>
            <author><name>Mike Johnson</name></author>
            <link href="/2011/05/01/no-flash-not-relevant/" />
            <updated>2011-05-01T10:00:00Z</updated>
            <published>2011-05-01T10:00:00Z</published>
            <id>/2011/05/01/no-flash-not-relevant/</id>

            <content type="html">
                                                      </content>
        </entry>
            <entry>
            <title type="html">Popping the Higher Education Bubble</title>
            <author><name>Mike Johnson</name></author>
            <link href="/2011/04/24/popping-higher-education-bubble/" />
            <updated>2011-04-24T10:00:00Z</updated>
            <published>2011-04-24T10:00:00Z</published>
            <id>/2011/04/24/popping-higher-education-bubble/</id>

            <content type="html">
                                          &lt;p&gt;As a current CS student and full time programmer, I am keenly aware of both
the rising tuition costs and utter uselessness of a degree as a &lt;a href="http://techcrunch.com/2011/04/24/higher-education%E2%80%99s-toughest-test/"&gt; "signaling"
tool &lt;/a&gt; to potential employers.&lt;/p&gt;            </content>
        </entry>
            <entry>
            <title type="html">LA Open Source Hackathon</title>
            <author><name>Mike Johnson</name></author>
            <link href="/2011/04/07/la-open-source-hackathon/" />
            <updated>2011-04-07T10:00:00Z</updated>
            <published>2011-04-07T10:00:00Z</published>
            <id>/2011/04/07/la-open-source-hackathon/</id>

            <content type="html">
                                          &lt;p&gt;I have procured special permission from the wife so I'm going to the hackathon
this weekend. There are still &lt;a href="http://oshackathon-eorg.eventbrite.com/"&gt; available tickets &lt;/a&gt; .&lt;/p&gt;
&lt;p&gt;I'm looking forward to hacking &lt;a href="http://pydanny.blogspot.com/2011/04/python-packages-sprint-on-sunday.html"&gt; Packaginator &lt;/a&gt; , too.&lt;/p&gt;            </content>
        </entry>
            <entry>
            <title type="html">Think Quarterly 01 Data</title>
            <author><name>Mike Johnson</name></author>
            <link href="/2011/04/01/think-quarterly-01-data/" />
            <updated>2011-04-01T10:00:00Z</updated>
            <published>2011-04-01T10:00:00Z</published>
            <id>/2011/04/01/think-quarterly-01-data/</id>

            <content type="html">
                                          &lt;p&gt;Interesting and beautifully designed. Check &lt;a href="http://thinkquarterly.co.uk/"&gt; Think Quarterly &lt;/a&gt; out.&lt;/p&gt;            </content>
        </entry>
            <entry>
            <title type="html">What the naysayers don't get about Cloud Computing</title>
            <author><name>Mike Johnson</name></author>
            <link href="/2011/04/01/what-naysayers-dont-get-about-cloud-computing/" />
            <updated>2011-04-01T10:00:00Z</updated>
            <published>2011-04-01T10:00:00Z</published>
            <id>/2011/04/01/what-naysayers-dont-get-about-cloud-computing/</id>

            <content type="html">
                                          &lt;p&gt;Sadly, while Cloud Computing platforms are getting easier to use every day, IT
at my company spends a significant amount of its time designing even more
cumbersome forms. Due to mandated change controls, IT is slowly wresting
greater control over core systems, but it may not notice its share of
responsibility is being eclipsed, quickly.&lt;/p&gt;            </content>
        </entry>
            <entry>
            <title type="html">Ceridian automation</title>
            <author><name>Mike Johnson</name></author>
            <link href="/2011/03/28/ceridian-automation/" />
            <updated>2011-03-28T10:00:00Z</updated>
            <published>2011-03-28T10:00:00Z</published>
            <id>/2011/03/28/ceridian-automation/</id>

            <content type="html">
                                          &lt;p&gt;I used to waste a significant amount of time entering hours into Ceridian.
Then I heard from HR that I can't just put the same hours in every day. :-)&lt;/p&gt;            </content>
        </entry>
            <entry>
            <title type="html">uWSGI for fast Django apps</title>
            <author><name>Mike Johnson</name></author>
            <link href="/2011/03/07/uwsgi-fast-django-apps/" />
            <updated>2011-03-07T10:00:00Z</updated>
            <published>2011-03-07T10:00:00Z</published>
            <id>/2011/03/07/uwsgi-fast-django-apps/</id>

            <content type="html">
                                          &lt;p&gt;Nice to see uWSGI still &lt;a href="http://nichol.as/benchmark-of-python-web-servers?source=g"&gt; cleaning up on the benchmarks &lt;/a&gt; . This site is
using uWSGI already and it's worked wonderfully for both the blog and the API
backend for my Android app. I'll be adding some production servers at work
that'll be using it within the month, too.&lt;/p&gt;            </content>
        </entry>
            <entry>
            <title type="html">Selecting Time Ranges in Leemba</title>
            <author><name>Mike Johnson</name></author>
            <link href="/2011/02/11/selecting-time-ranges-leemba/" />
            <updated>2011-02-11T10:00:00Z</updated>
            <published>2011-02-11T10:00:00Z</published>
            <id>/2011/02/11/selecting-time-ranges-leemba/</id>

            <content type="html">
                                          &lt;p&gt;One of the great things about using &lt;a href="/leemba/"&gt; Leemba &lt;/a&gt; is that you can set custom
time ranges for graphs. This often comes in handy when researching past
problems, or drilling down to details to see the exact results of a
performance tune.&lt;/p&gt;            </content>
        </entry>
            <entry>
            <title type="html">Setting the gnome-terminal title in bash</title>
            <author><name>Mike Johnson</name></author>
            <link href="/2011/02/09/setting-gnome-terminal-title-bash/" />
            <updated>2011-02-09T10:00:00Z</updated>
            <published>2011-02-09T10:00:00Z</published>
            <id>/2011/02/09/setting-gnome-terminal-title-bash/</id>

            <content type="html">
                                          &lt;p&gt;There's a &lt;a href="http://ubuntuforums.org/showthread.php?t=448614"&gt; lot of confusion &lt;/a&gt; about how to set a title for the terminal
tab, particularly using gnome-terminal.&lt;/p&gt;            </content>
        </entry>
            <entry>
            <title type="html">Cache invalidation with Django staticgenerator</title>
            <author><name>Mike Johnson</name></author>
            <link href="/2011/02/06/cache-invalidation-django-staticgenerator/" />
            <updated>2011-02-06T10:00:00Z</updated>
            <published>2011-02-06T10:00:00Z</published>
            <id>/2011/02/06/cache-invalidation-django-staticgenerator/</id>

            <content type="html">
                                          &lt;p&gt;After installing staticgenerator, my site has become noticeably faster. Since
Nginx can directly serve cached files, the big Django processes on this server
are kept idle for real work, not regenerating every single page.&lt;/p&gt;            </content>
        </entry>
            <entry>
            <title type="html">Make Programming Fun Again</title>
            <author><name>Mike Johnson</name></author>
            <link href="/2011/02/05/make-programming-fun-again/" />
            <updated>2011-02-05T10:00:00Z</updated>
            <published>2011-02-05T10:00:00Z</published>
            <id>/2011/02/05/make-programming-fun-again/</id>

            <content type="html">
                                                      </content>
        </entry>
            <entry>
            <title type="html">Django caching options</title>
            <author><name>Mike Johnson</name></author>
            <link href="/2011/01/31/django-caching-options/" />
            <updated>2011-01-31T10:00:00Z</updated>
            <published>2011-01-31T10:00:00Z</published>
            <id>/2011/01/31/django-caching-options/</id>

            <content type="html">
                                          &lt;p&gt;This is a great post on &lt;a href="http://codysoyland.com/2010/jan/17/evaluating-django-caching-options/"&gt; Django caching &lt;/a&gt; that I've been reading in
preparation for writing some work stuff using Django. But I notice few options
here for cache invalidation.&lt;/p&gt;            </content>
        </entry>
            <entry>
            <title type="html">Faster Django with staticgenerator</title>
            <author><name>Mike Johnson</name></author>
            <link href="/2011/01/30/faster-django-staticgenerator/" />
            <updated>2011-01-30T10:00:00Z</updated>
            <published>2011-01-30T10:00:00Z</published>
            <id>/2011/01/30/faster-django-staticgenerator/</id>

            <content type="html">
                                          &lt;p&gt;One nice thing that I missed from Wordpress was the ability to static cache
posts using things like wp-super-cache. It's a giant waste of CPU to generate
pages for every request, especially now that I have setup disqus, page changes
are very infrequent.&lt;/p&gt;            </content>
        </entry>
            <entry>
            <title type="html">Django-cms and MPTT</title>
            <author><name>Mike Johnson</name></author>
            <link href="/2011/01/17/django-cms-and-mptt/" />
            <updated>2011-01-17T10:00:00Z</updated>
            <published>2011-01-17T10:00:00Z</published>
            <id>/2011/01/17/django-cms-and-mptt/</id>

            <content type="html">
                                          &lt;p&gt;I had quite a bit of trouble with errors like this:&lt;/p&gt;
&lt;div class="codehilite"&gt;&lt;pre&gt; &lt;span class="n"&gt;AttributeError:&lt;/span&gt; &lt;span class="s"&gt;&amp;#39;module&amp;#39;&lt;/span&gt; &lt;span class="n"&gt;object&lt;/span&gt; &lt;span class="n"&gt;has&lt;/span&gt; &lt;span class="nb"&gt;no&lt;/span&gt; &lt;span class="n"&gt;attribute&lt;/span&gt; &lt;span class="s"&gt;&amp;#39;get_ancestors&amp;#39;&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;


&lt;p&gt;I was moving to a new host and even though I had tested the exact same setup,
and created a fresh virtualenv with my requirements according to best
practices, I still had dependency problems with Django-mptt.&lt;/p&gt;
&lt;p&gt;It's not obvious from &lt;a href="http://permalink.gmane.org/gmane.comp.python.django.django-cms/1969"&gt; discussions like this &lt;/a&gt; (at least to a Django
newb), but Django-cms includes it's own copy of MPTT. But if you use pip to
install Django, it'll bundle mptt-0.4.2. You don't want this.&lt;/p&gt;
&lt;p&gt;To fix, simply uninstall the site package to use the provided version:&lt;/p&gt;
&lt;div class="codehilite"&gt;&lt;pre&gt; &lt;span class="n"&gt;pip&lt;/span&gt; &lt;span class="n"&gt;uninstall&lt;/span&gt; &lt;span class="n"&gt;django&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="n"&gt;mptt&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;


&lt;p&gt;You might need to also update Django-cms, since the MPTT version that it
provides might have been overwritten.&lt;/p&gt;
&lt;p&gt;It's worth mentioning that Django-cms plans to fix this soon, hopefully in
1.2.&lt;/p&gt;            </content>
        </entry>
            <entry>
            <title type="html">But I thought it was web scale!</title>
            <author><name>Mike Johnson</name></author>
            <link href="/2010/12/31/but-i-thought-it-was-web-scale/" />
            <updated>2010-12-31T10:00:00Z</updated>
            <published>2010-12-31T10:00:00Z</published>
            <id>/2010/12/31/but-i-thought-it-was-web-scale/</id>

            <content type="html">
                                          &lt;p&gt;Wow, Django doesn't include or use a connection pool! That's just not &lt;a href="http://nosql.mypopescu.com/post/1016320617/mongodb-is-web-scale"&gt; web
scale &lt;/a&gt; [NSFW]. This screenshot is the difference in response time after
adding pgbouncer.&lt;/p&gt;            </content>
        </entry>
            <entry>
            <title type="html">Custom Django tags</title>
            <author><name>Mike Johnson</name></author>
            <link href="/2010/12/17/custom-django-tags/" />
            <updated>2010-12-17T10:00:00Z</updated>
            <published>2010-12-17T10:00:00Z</published>
            <id>/2010/12/17/custom-django-tags/</id>

            <content type="html">
                                          &lt;p&gt;I doubt if &lt;a href="http://www.codediesel.com/security/encode-your-email-links-to-prevent-spam/"&gt; this method &lt;/a&gt; prevents much spam, but I wanted to learn how to
implement a custom Django tag. The [ documentation for tags ][2] seems fairly
straight-forward, but it often splits up examples into small code pieces which
can make it seem more difficult. (Or maybe it's just that there's too many
places to look for a quick answer.)&lt;/p&gt;            </content>
        </entry>
    </feed>
