<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
     xmlns:content="http://purl.org/rss/1.0/modules/content/"
     xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
     xmlns:atom="http://www.w3.org/2005/Atom"
     xmlns:dc="http://purl.org/dc/elements/1.1/"
     xmlns:wfw="http://wellformedweb.org/CommentAPI/"
     >
  <channel>
    <title>/code - a blog</title>
    <link>http://asktherelic.com/code</link>
    <description>Programming 'n stuff</description>
    <pubDate>Fri, 18 May 2012 06:17:52 GMT</pubDate>
    <generator>Blogofile</generator>
    <sy:updatePeriod>hourly</sy:updatePeriod>
    <sy:updateFrequency>1</sy:updateFrequency>
    <item>
      <title>Django Deployment Experiences with SeatMe.com</title>
      <link>http://asktherelic.com/2012/05/17/django-deployment-experiences-with-seatme.com</link>
      <pubDate>Thu, 17 May 2012 23:11:23 EDT</pubDate>
      <category><![CDATA[Life]]></category>
      <guid isPermaLink="true">http://asktherelic.com/2012/05/17/django-deployment-experiences-with-seatme.com</guid>
      <description>Django Deployment Experiences with SeatMe.com</description>
      <content:encoded><![CDATA[<p>Wednesday night <a href="http://www.meetup.com/The-San-Francisco-Django-Meetup-Group/events/62536212/">I gave a presentation on</a> how I deploy SeatMe.com @ the Life360
offices in SF. It was pretty fun and had a good turnout! Here's that
presentation:</p>
<script async class="speakerdeck-embed" data-id="4fb454b6cef64e0022010fa7" data-ratio="1.7297297297297298" src="//speakerdeck.com/assets/embed.js"></script>

<p>One other idea someone had mentioned afterward for running a local PyPI was to
run a Squid proxy in front of PyPI and set a 1 year cache on everything. The
more I think about, it's pretty ingenious and simple, versus running a full
Python app.</p>]]></content:encoded>
    </item>
    <item>
      <title>Journal 0.3 Released</title>
      <link>http://asktherelic.com/2012/05/13/journal-0.3-released</link>
      <pubDate>Sun, 13 May 2012 13:29:36 EDT</pubDate>
      <category><![CDATA[Life]]></category>
      <guid isPermaLink="true">http://asktherelic.com/2012/05/13/journal-0.3-released</guid>
      <description>Journal 0.3 Released</description>
      <content:encoded><![CDATA[<p>After some recent emails from new users of Journal, I've released version  0.3. (Journal is a CLI tool to help with keeping a work/personal journal, https://github.com/askedrelic/journal).</p>
<p>If you have Journal installed with pip, you can</p>
<pre><code>$ pip install -U journal
</code></pre>
<h3>What's New</h3>
<p>This version has been a long time coming, pulling in some patches from my friend Drew and changing how arguments passing to Journal are handled. Here is the official list:</p>
<ul>
<li>added support for multiple journals and journal locations</li>
<li>added ~/.journalrc for storing default configurations of journals/locations</li>
<li>changed argument handling to add all arguments to the same entry instead of    splitting them up</li>
</ul>
<h3>In Detail</h3>
<p>Multiple journals have been in the master branch for awhile, but never officially released. Likewise for multiple Journal locations. With the .journalrc now and the multiple locations, you can keep your journal files in Dropbox now and easily sync them across multiple computers. In the future, I am looking to use the Dropbox API to have this happen automatically maybe, or perhaps allow syncing with some sort of iPhone app.</p>
<p>The change to the argument handling was to done to make things easier for new users. I think this was one UX decision that I made wrong when releasing Journal originally:</p>
<pre><code>v0.2.0
$ journal "one entry" "two entry"

v0.3.0
$ journal one large entry "and still part of first entry"
$ journal two entry
</code></pre>
<p>Allowing multiple entries at a time from one run of the program is cool and limits issues with single/double quotes, but a confusing because people aren't used to having to quote things by default. Overall, I think this is more Unix-y and simler to understand.</p>
<h3>In The Future</h3>
<p>Two things I'm looking at improving on are tests and long messages: </p>
<ul>
<li>I want to use a "fake FS" to limit be able to to unit test the features of Journal (something like <a href="http://www.willmcgugan.com/blog/tech/2011/3/20/creating-a-virtual-filesystem-with-python-and-why-you-need-one/">this</a>)</li>
<li>Entering long messages from the command line using $EDITOR; <code>journal edit</code> or something, which opens your editor in with a temporary file and when you save/close that file, that entire file gets saved. Perhaps integrating with the clipboard as well, for autosaving snippets of things. Journal all the things! </li>
</ul>]]></content:encoded>
    </item>
    <item>
      <title>PyCon 2012 Planning</title>
      <link>http://asktherelic.com/2012/03/06/pycon-2012-planning</link>
      <pubDate>Tue, 06 Mar 2012 22:52:27 EST</pubDate>
      <category><![CDATA[Life]]></category>
      <guid isPermaLink="true">http://asktherelic.com/2012/03/06/pycon-2012-planning</guid>
      <description>PyCon 2012 Planning</description>
      <content:encoded><![CDATA[<p>I'm really looking forward to attending my first PyCon this weekend. After
moving to SF, it's great to have so many cool conferences right in my backyard!
It's sold out this year, which might be a first? The talks look great, but I'm
just as hopeful to meet a bunch of cool people and trade ideas on projects and
Python. After writing Python for around 5-6 years now, I'm finally beginning to
understand most things and hopeful to begin contributing to large projects or
things that might help improve the language.</p>
<p>Some of the Python talks began already, with Graham Dumpleton's "Web Server
Bottlenecks And Performance Tuning" talk last night at the local <a href="http://www.meetup.com/sfpython/events/54525922/">Django/Python
meetup</a> and it was quite good. I'm expecting big things this PyCon!</p>
<h3>My Schedule</h3>
<p>Below is my tentative schedule after flipping through the <a href="https://us.pycon.org/2012/schedule/">schedule</a>. Not to
be a buzz kill, but this isn't SXSW, I'm ready to schedule and get as much
learning as possible!</p>
<p>For <strong>Friday</strong>, having Paul Graham keynote should be quite interesting. After
that, I'm planning on mostly staying on Track 4 for heavy low-level Python and
then mixing it up.</p>
<ul>
<li>10:50AM - <a href="https://us.pycon.org/2012/schedule/presentation/64/">Introduction to Metaclasses</a></li>
<li>11:30AM - <a href="https://us.pycon.org/2012/schedule/presentation/399/">The Art of Subclassing</a></li>
<li>12:10PM - <a href="https://us.pycon.org/2012/schedule/presentation/352/">Stop Writing Classes</a></li>
<li>1:45PM - <a href="https://us.pycon.org/2012/schedule/presentation/45/">The Magic of Metaprogramming</a></li>
<li>2:40PM - <a href="http://">Interfaces and Python</a></li>
<li>3:20PM - <a href="https://us.pycon.org/2012/schedule/presentation/114/">Make Sure Your Programs Cras</a></li>
<li>5:20PM - <a href="https://us.pycon.org/2012/schedule/presentation/12/">Practicing Continuous Deployment</a></li>
</ul>
<p>For <strong>Saturday</strong>, it's a better mix of topics, which seem more web related. I'm
totally happy with that!</p>
<ul>
<li>10:25AM - <a href="https://us.pycon.org/2012/schedule/presentation/255/">What you need to know about datetimes</a></li>
<li>11:05AM - <a href="https://us.pycon.org/2012/schedule/presentation/420/">Django Form Processing Deep Dive</a></li>
<li>11:45AM - <a href="https://us.pycon.org/2012/schedule/presentation/141/">Pragmatic Unicode, or, How do I stop the pain?</a></li>
<li>1:20PM - <a href="https://us.pycon.org/2012/schedule/presentation/104/">Coroutines, event loops, and the history of Python generators</a></li>
<li>2:15PM - <a href="https://us.pycon.org/2012/schedule/presentation/61/">RESTful APIs With Tastypie</a></li>
<li>2:55PM - <a href="https://us.pycon.org/2012/schedule/presentation/25/">Using fabric to standardize the development process</a></li>
</ul>
<p>By <strong>Sunday</strong>, I think I will be happy to still be standing.</p>
<h3>What I'm Looking To Takeaway</h3>
<p>I'm really looking forward to chatting with main Python people to get thoughts
on Python3 and packaging. </p>
<p>I have yet to fully port any of my libraries to Python3, but I have a few
branches started.. I'm always curious for more people opinions on what's good
and bad with Python3.</p>
<p>For packaging, I would love to see what I can do to improve things or see what
people are working on with packaging. It seems like everything with packaging
has caveats and is not as nice as RubyGems or CPAN and I want to fix that.</p>
<p>If you read my blog or follow me on twitter, send me a message, I'd love to
meetup!</p>]]></content:encoded>
    </item>
    <item>
      <title>Interesting Trends in Vim</title>
      <link>http://asktherelic.com/2012/01/15/interesting-trends-in-vim</link>
      <pubDate>Sun, 15 Jan 2012 14:31:28 EST</pubDate>
      <category><![CDATA[Vim]]></category>
      <guid isPermaLink="true">http://asktherelic.com/2012/01/15/interesting-trends-in-vim</guid>
      <description>Interesting Trends in Vim</description>
      <content:encoded><![CDATA[<p>Something I've noticed lately with vim plugins are that miniscripts and smaller vim tweaks, any sort of vim functionality, are being packaged and shared as a proper vim plugins via git, not just big IDE style plugins. This may not be an entirely new idea, but I think it's becoming more of the norm to use pathogen and git submodules to share everything vim related, rather than copying and pasting actual code, I think the idea of managing everything via git, github, and git submodules is pretty neat.</p>
<ul>
<li>Thanks to <a href="https://github.com/tpope/vim-pathogen">Pathogen</a>, plugins can remain separate from your main configuration, which great decreases the friction of trying new plugins and keeping your existing plugins organized.</li>
<li>Thanks to git, plugins have revision history and stable versions (tags).</li>
<li>Thanks to github, plugins have easy and stable endpoints to install from, to get updates from, and to complain about for bugs. Additionally, forking makes it easy to fix bugs yourself or make any tweaks you want, while still keeping everything in git.</li>
<li>Thanks to <a href="http://vimcasts.org/episodes/synchronizing-plugins-with-git-submodules-and-pathogen/">git submodules</a>, you can store your list of installed vim plugins, update them when necessary, and share them between multiple machines.</li>
<li>With <a href="https://github.com/gmarik/vundle">vundle</a> or <a href="https://github.com/MarcWeber/vim-addon-manager">vim-addon-manager</a>, you can search and install new plugins, all from within vim.</li>
</ul>
<h3>The Theory</h3>
<p>My dotfiles and vimrc have been in source control for years. I've always kept a selection of vim plugins in my dotfiles repo, specific versions of plugins that I know work together. Pathogen was an easy switch and made it much easier to try new plugins and figure out if a new plugin played well with my current configuration.</p>
<p>With git submodules and keeping everything in git, I've come to realize, you get all of that and more. Want to try a new plugin? Download it to your vim bundle directory and give it a try. Git status will show you that it's an untracked directory and you haven't added it your dotfiles yet. When you decide you like it, you can add it as a submodule and checkout version X, which you know works correctly with your system. </p>
<p>Want to try out the latest dev version? Is there even a newer version to try? Pull latest in that plugin's git repo and see if there are updates. If you like those updates, commit the latest version in the git submodules, otherwise reset everything to the last known working state.</p>
<p>Want to fix something in the plugin? Like some new features, but want to keep some of the old features? Fork the plugin, delete the official submodule from your dotfiles, and checkout your fork as a submodule. Everything can remain in git still.</p>
<h3>The Practice</h3>
<p>One of the best examples I've seen recently was a <a href="http://stackoverflow.com/questions/8168320/can-vim-highlight-matching-html-tags-like-notepad">Stack Overflow question</a> a few months back. Someone asked how to add highlighting to paired html tags. The answer was a <a href="https://github.com/gregsexton/MatchTag">simple plugin</a> that added that exact functionality. Not source code or a link to a vim wiki, but a full plugin, that with the setup I just described, is a one-step process to try out.</p>
<p>I feel plugins have traditionally been complex things in vim, but by having this easy and module process available and understood, more cool plugins will be made. Looks like it's time to <a href="http://learnvimscriptthehardway.stevelosh.com/">Learn Vimscript the Hard Way</a> and start writing my own plugins now!</p>]]></content:encoded>
    </item>
    <item>
      <title>Backup Everything You Did Last Year</title>
      <link>http://asktherelic.com/2012/01/02/backup-everything-you-did-last-year</link>
      <pubDate>Mon, 02 Jan 2012 08:58:59 EST</pubDate>
      <category><![CDATA[Life]]></category>
      <guid isPermaLink="true">http://asktherelic.com/2012/01/02/backup-everything-you-did-last-year</guid>
      <description>Backup Everything You Did Last Year</description>
      <content:encoded><![CDATA[<p>A habit I've developed over the last few years is to backup all of my online
artifacts and identities once the year ends. Maybe I'm just a bit paranoid, but
in this day and age with more and more things being stored in the cloud, control
and access to your data is being shifted to faceless servers and scripts that
can disconnect you quite easily with little recourse. Whether it's a TOS
violation, a change in a company's policy, or just <a href="http://mashable.com/2009/09/25/bank-sues-google/">something else
screwy</a>, it's not something to
worry about daily, but it's better to be prepared.</p>
<p>It's not all gloom and doom: having a local backup of your data is great for
searching and viewing in ways that the original provider didn't think about. I
think it's cool to be able see how emails I get year over year. A benefit of
being in this day and age is that storage is cheap: storing everything you've
ever created and done online is entirely possible.</p>
<h3>What To Backup</h3>
<p>I started out with emails and figuring out to organize things. I then moved onto
email contacts, chat logs, Delicious bookmarks, and social site data. As of
late, I've been working on receipts and finances, trying to move to toward
existing entirely paper free! Here are some ideas, feel free to add suggestions
in the comments.</p>
<ul>
<li>Email</li>
<li>Contacts (from GMail, Facebook, or LinkedIn)</li>
<li>Chatlogs (Adium)</li>
<li>Bookmarks (Delicious, Pinboard)</li>
<li>Social site data (Twitter, FB, LinkedIn, Google+, Reddit)</li>
<li>Pictures (Flickr, Picasa)</li>
</ul>
<h3>How To Backup</h3>
<p>Having a simple way to backup your data and having easy access to your data from
a website is also another important social topic that has come up the last
couple years. Having open APIs and an easy way to export your data is something
you should look for and if a website doesn't have one, you should ask why not.
Facebook didn't even have an export ability until the middle of 2010. Here some
sites and tools that I've been using to help me:</p>
<ul>
<li>
<p><a href="http://mail.google.com">Google Mail</a>:
  <a href="http://www.gmail-backup.com/">http://www.gmail-backup.com/</a> is my recommended
  tool for backing up GMail. Unfortunately it's closed source but the site has
  been around for years and the software has seemed reputable enough. It has a
  simple GUI or CLI interface that allows you to select date ranges to backup;
  all email from 2010, and it works for me.</p>
<p>Once you download the 0.107 version, you can backup all 2011 email with a command like this: (you might need an app password if you have 2-step auth enabled)</p>
<p><code>$ ./gmail-backup.sh backup email-2011 &lt;EMAIL&gt; &lt;PASSWORD&gt; 20110101 20111231</code></p>
</li>
<li>
<p>Gmail Contacts: While logged into GMail, you can go to the Contacts window and
  export your contacts in multiple formats.</p>
</li>
<li>
<p>All your Google data: Google is quite good about being open, but has a wide
  range of services, which don't all have the same ease of exportability. While
  logged in, go to
  <a href="https://plus.google.com/u/0/settings/exportdata">https://plus.google.com/u/0/settings/exportdata</a>
  and you should be able to backup your G+, Picasa, and most other data Google
  has on you.</p>
</li>
<li>
<p><a href="http://adium.im/">Adium</a> is an open source OSX chat client which keeps XML
  logs of all your conversations, which includes your FB and GChat accounts if
  you have them enabled. All logs should be kept at <code>~/Library/Application
  Support/Adium 2.0/Users/Default/Logs</code>. Since it's hard to pull out specific
  date ranged logs, I just back the whole log folder each year.</p>
</li>
<li>
<p><a href="http://pinboard.in/">Pinboard</a>: I switched from Delicious this year and have
  been quite happy with Pinboard for my online bookmarking needs. To export, go
  to <a href="http://pinboard.in/export/">http://pinboard.in/export/</a></p>
</li>
</ul>
<p>For most social sites, there is a lot of money in owning your data and every
site has a different obtuse backup policy. My friend
<a href="https://twitter.com/#!/synack">Jeremy</a> has created a one stop shop for easily
and safely backing up your data from FB, Twitter, LinkedIn, Gowalla, and Google+
which I would recommend: <a href="http://export.synack.me/">http://export.synack.me/</a></p>
<p>Another interesting idea for controlling your online data is what
<a href="https://www.greplin.com/">Greplin</a> provides: simple instant search of all your
online data. You can easily look across all of your data, although I don't think
exporting that data is something they offer.</p>
<h3>Final Thoughts</h3>
<p>Once you have all this data, don't skimp on your own physical backups. Storing
all of your financial and personal data unencrypted in one place is a hacker's
dream. This is something I am still exploring: I use OSX's built-in DMG
encryption, but that is not too portable. </p>
<p>Also look into <a href="https://www.dropbox.com/">Dropbox</a> for having access to your
data across all your machines or <a href="http://www.backblaze.com/">Backblaze</a> for
having a simple external backup of everything on your laptop.</p>]]></content:encoded>
    </item>
    <item>
      <title>2012 Python Meme</title>
      <link>http://asktherelic.com/2011/12/31/2012-python-meme</link>
      <pubDate>Sat, 31 Dec 2011 14:43:50 EST</pubDate>
      <category><![CDATA[Life]]></category>
      <guid isPermaLink="true">http://asktherelic.com/2011/12/31/2012-python-meme</guid>
      <description>2012 Python Meme</description>
      <content:encoded><![CDATA[<p>I wanted to do some kind of reflection this year, so may as well hop on the bandwagon.</p>
<h3>What’s the coolest Python application, framework or library you have discovered in 2011?</h3>
<p><strong>Fabric</strong>. For a good six months of this year, I was managing everything
server-wise at my last job through Fabric and learned a good deal about it,
<a href="/2011/02/17/dynamic-fabric-commands-for-managing-cloud-servers/">hacking in some features</a> and
<a href="/2011/06/22/fabric-for-python-automation/">giving a presentation</a> on it at the
local <a href="http://pghpython.org/">Pittsburgh users group</a>. It's great to be able to
automate things and to have that ability in Python.</p>
<h3>What new programming technique did you learn in 2011?</h3>
<p>I can't think of a specific area I focused on, but overall: I've broaden my
knowledge of Python unit testing, deployment, and project packaging. I've also
ben diving deep into background processing with
<a href="http://celeryproject.org/">Celery</a> lately, which really interests me.</p>
<h3>What’s the name of the open source project you contributed the most in 2011? What did you do?</h3>
<p>Unfortunately, I don't think I have contributed back too much.
<a href="https://github.com/askedrelic/journal">Journal</a>, a Python script for keeping a
CLI journal, was probably my most complete project for the year, but I haven't
been hacking on it recently. Reaching out more via Github and interacting more
with other developers is my goal for next year.</p>
<h3>What was the Python blog or website you read the most in 2011?</h3>
<p><a href="http://news.ycombinator.com/">HackerNews</a>. After moving to San Francisco,
getting a job via the monthly job threads, and meeting up with people from the
site, I've really come to enjoy the dialogue available on programming and
Python.</p>
<h3>What are the three top things you want to learn in 2012?</h3>
<ul>
<li>Logging, metrics, and monitoring. Or applying the latest techniques and practices in production: using JSON for logged messages, realtime monitoring and alerting, longterm  storage, indexing, and searching.</li>
<li>A new language.  I know a great deal about Python, but it's time to start fresh. Haskell has always been high on my list, but I've never set specific goals and forced myself to start anything. Time to change that.</li>
<li>More Python? I've been diving into packaging once again, but maybe I should try and figure out how to help fix what I don't like about Python. I'm looking forward to attending PyCon US 2012 this year, hoping to get some great ideas.</li>
</ul>
<h3>What are the top software, app or lib you wish someone would write in 2012?</h3>
<p>Unify/fix Python packaging? More Python3 releases? I still need to convert all
my scripts to Python3. I have a bunch of Github improvements I'd love see
happen, but maybe with the v3 API I can hack them in myself.</p>
<p>Want to do your own list? Here’s how:</p>
<ul>
<li>copy-paste the questions and answer to them in your blog</li>
<li>tweet it with the <a href="https://twitter.com/#!/search/%232012pythonmeme">#2012pythonmeme</a> hashtag</li>
</ul>]]></content:encoded>
    </item>
    <item>
      <title>Book Review - Design For Hackers</title>
      <link>http://asktherelic.com/2011/12/30/book-review---design-for-hackers</link>
      <pubDate>Fri, 30 Dec 2011 16:54:02 EST</pubDate>
      <category><![CDATA[BookReviews]]></category>
      <guid isPermaLink="true">http://asktherelic.com/2011/12/30/book-review---design-for-hackers</guid>
      <description>Book Review - Design For Hackers</description>
      <content:encoded><![CDATA[<p><span class="aligncenter">
<img alt="design for hackers" src="/pic/design-for-hackers.jpg" />
</span></p>
<p><a href="http://www.amazon.com/gp/product/1119998956/ref=as_li_ss_tl?ie=UTF8&amp;tag=asktherelic-20&amp;linkCode=as2&amp;camp=1789&amp;creative=390957&amp;creativeASIN=1119998956">Design For Hackers</a><br />
David Kadavy<br />
ISBN: 1119998956</p>
<h3>What’s The Point?</h3>
<p>Design, layout, fonts, and color theory for websites and web applications.
Kadavy covers all the main points of design, how design affects how we use
things, and through understanding your design decisions, how you can make
better decisions.</p>
<h3>How Was It?</h3>
<p>A useful and interesting read! The hacker in me likes well organized and
straightforward things. Each of the main elements of design were given a
chapter and covered thoroughly: what they are, how they work and why they exist
in a historical context. There were plenty of visual examples that were current
and useful.</p>
<p>Typography and fonts were given special preference, given the importance and
history, and a practical guide for using them in most situations was given in
an appendix.</p>
<h3>Who Should Read It?</h3>
<p>Programmers and hackers new to the topic. As an overall guide to design, it's a
great starting point and covers the bases, but is not a detailed guide on any
topic.</p>
<h3>Notes:</h3>
<p>I met the author through a <a href="http://www.grubwithus.com/">GrubWithUs</a> group meal.
He was using group meals as a kind of book tour and it was an interesting
experience to eat and discuss the book together! I also got my copy signed!</p>]]></content:encoded>
    </item>
    <item>
      <title>Version 1.0 of Comcast Bandwidth Usage</title>
      <link>http://asktherelic.com/2011/11/08/version-1.0-of-comcast-bandwidth-usage</link>
      <pubDate>Tue, 08 Nov 2011 01:01:01 EST</pubDate>
      <category><![CDATA[Life]]></category>
      <guid isPermaLink="true">http://asktherelic.com/2011/11/08/version-1.0-of-comcast-bandwidth-usage</guid>
      <description>Version 1.0 of Comcast Bandwidth Usage</description>
      <content:encoded><![CDATA[<p>After receiving some patches on GitHub this weekend and renewing my interest in this project, I've decided to tag a 1.0 version of my <a href="https://github.com/askedrelic/comcast-bw/">Comcast Bandwidth Usage</a> script! After being stable for atleast a year and combined with these new feature, it's probably worth finally tagging a stable version.</p>
<p>What's new in 1.0?</p>
<ul>
<li>Android Notifications of your usage via <a href="http://nma.usk.bz/">Notify My Android</a></li>
<li>The ability to easily run the script on Heroku instead of your own server</li>
<li>Now using standard config.ini configuration for your Comcast username/password</li>
</ul>
<p>What's already there; what is this script?</p>
<ul>
<li>A simple way to scrape your current bandwidth usage from Comcast's website with the ability to specific warn you if are coming close to the 250GB soft limit</li>
</ul>
<p>Download 1.0 <a href="https://github.com/askedrelic/comcast-bw/zipball/v1.0">now</a> (zip).</p>
<h3>Upgrading</h3>
<p>If you have already been running script, it might be easiest to download the 1.0 and re-enter your Comcast login into the config.ini. The previous method of editing the script itself was pretty bad and left a lot of room for errors with source control.</p>
<h3>Android Notifications</h3>
<p>With commits from <a href="https://github.com/Adalan">Adalan</a>, you can now add your API key from <a href="http://nma.usk.bz/">Notify My Android</a> and will be able to get your usage notifications via a push notification to your phone.</p>
<p>Attach the <code>-a</code> flag when running the script to enable these notifications.</p>
<h3>Running On Heroku</h3>
<p>This is a unique feature of the script, but was an idea I wanted to try: not everyone has a server running 24x7 or a place where they can easily run Python scripts like this daily.</p>
<p>With Heroku's new Cedar stack, while oriented for running web applications, you can run any Python script on a daily schedule for free. It took a bit of hacking detailed <a href="/2011/11/05/unix-style-cron-on-heroku's-cedar-stack">here</a>, but wasn't impossible.</p>
<p>See the <a href="https://github.com/askedrelic/comcast-bw/blob/master/HEROKU_USAGE.markdown">HEROKU_USAGE.markdown</a> document and try running the script on Heroku!</p>
<p>Until bandwidth limits disappear, enjoy the script!</p>]]></content:encoded>
    </item>
    <item>
      <title>Unix Style Cron on Heroku's Cedar Stack</title>
      <link>http://asktherelic.com/2011/11/05/unix-style-cron-on-heroku's-cedar-stack</link>
      <pubDate>Sat, 05 Nov 2011 15:40:02 EDT</pubDate>
      <category><![CDATA[Life]]></category>
      <guid isPermaLink="true">http://asktherelic.com/2011/11/05/unix-style-cron-on-heroku's-cedar-stack</guid>
      <description>Unix Style Cron on Heroku's Cedar Stack</description>
      <content:encoded><![CDATA[<p>I've been playing with Heroku for a project and wanted to use the default
<code>cron</code> addon to run a Python script and only email if that script printed
anything to stdout; regular Unix style.</p>
<p><a href="https://github.com/askedrelic/heroku-cedar-cron">This repo is my attempt that</a>.</p>
<p>Overall, I definitely accomplished what I set out to do! I've been very impressed with Heroku's Cedar stack and how flexible it is. It's awesome being able to script the creation of an enviroment and instantly see if my script is working or not.</p>
<p>With that repo, you can basically use Heroku as a free cron running system you control. The whole stack is free and if you just have to run something once a day, that's still free. If you don't have a VPS or a server running 24x7, you can now push stuff onto Heroku and not have to worry about keeping it online, it will just work.</p>]]></content:encoded>
    </item>
    <item>
      <title>A Return To Normal</title>
      <link>http://asktherelic.com/2011/10/26/a-return-to-normal</link>
      <pubDate>Wed, 26 Oct 2011 22:35:39 EDT</pubDate>
      <category><![CDATA[Life]]></category>
      <guid isPermaLink="true">http://asktherelic.com/2011/10/26/a-return-to-normal</guid>
      <description>A Return To Normal</description>
      <content:encoded><![CDATA[<p>The last few months have been a bit hectic: a few weeks traveling through NYC
and DC, a new job in San Francisco, a cross country drive, and a few apartment
moves. Thankfully, my life has finally reached the point where I am comfortable
again and can start coding and writing in peace. My new job has kept me
quite busy, but what little free time I find, I try and make good use of.</p>
<p>I found an article through HackerNews recently that, while quite old, still
seemed quite relevent and impressed me greatly: <a href="http://www.paulgraham.com/hamming.html">"You and Your Research,"</a> a
transcription of a talk given by Richard Hamming in 1986, the year I was born.</p>
<p>Of the many great quotes and ideas in his talk, this stood out to me:</p>
<p><code>"You should do your job in such a fashion that others can build on top of it"</code></p>
<p>That is the best way to describe my goal for this blog, along with the code in
my github repos. It's time to accomplish great things.</p>]]></content:encoded>
    </item>
  </channel>
</rss>

