<?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" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0">

  <title><![CDATA[Binary Lion Studios]]></title>
  
  <link href="http://binarylionstudios.com/" />
  <updated>2012-03-04T10:33:45-06:00</updated>
  <id>http://binarylionstudios.com/</id>
  <author>
    <name><![CDATA[RJ Regenold]]></name>
    
  </author>
  <generator uri="http://octopress.org/">Octopress</generator>

  
  <atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/atom+xml" href="http://feeds.feedburner.com/binarylionstudios" /><feedburner:info uri="binarylionstudios" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><feedburner:browserFriendly></feedburner:browserFriendly><entry>
    <title type="html"><![CDATA[Reuse Tab - A Chrome extension to make pinned tabs even better]]></title>
    <link href="http://binarylionstudios.com/blog/2012/03/04/reuse-tab-a-chrome-extension-to-make-pinned-tabs-even-better/" />
    <updated>2012-03-04T09:13:00-06:00</updated>
    <id>http://binarylionstudios.com/blog/2012/03/04/reuse-tab-a-chrome-extension-to-make-pinned-tabs-even-better</id>
    <content type="html"><![CDATA[<h2>Pinned tabs</h2>

<p>Pinned tabs in Chrome are a great way to manage sites you have open all the time. For
example, I have Rhapsody and Pivotal Tracker pinned in Chrome right now.</p>

<p><img src="http://binarylionstudios.com/static/img/pinned-tabs.jpg"></p>

<p>Pinned tabs are conveniently sized to just show the site favicon and placed over
on the left side of the tab bar. Whenever Chrome is restarted, the pinned tabs
are automatically opened again.</p>

<!-- more -->


<p><strong>Note:</strong> You can pin a tab by right clicking it and selecting <em>Pin Tab</em>.</p>

<h2>The problem</h2>

<p>The problem with pinned tabs is that links opened from external apps (Mail,
Adium, etc) are always opened in a new tab. Normally this is fine, but if I get
an email from Pivotal Tracker (which I have pinned) and click the link to view the story, it opens a new tab rather than using my pinned tab. I&#8217;m terrible about closing tabs when I&#8217;m done with them, so I end up having 10 tabs with Pivotal Tracker opened by the end of the day.</p>

<h2>The solution</h2>

<p><a href="https://chrome.google.com/webstore/detail/nlcidfhncfjhgibckbbkfbcefcghldpc">Reuse Tab</a> is a Chrome extension I wrote that looks at the host of any tab opened
from an external source and compares it to the hosts of your pinned tabs. If
a match is found, it opens the link in the pinned tab instead of creating a new tab<sup id='fnref:1'><a href='#fn:1' rel='footnote'>1</a></sup>. This way the pinned tab is reused and you don&#8217;t have to deal with multiple tabs opened to the same site.</p>

<h2>Resources</h2>

<ul>
<li><a href="https://chrome.google.com/webstore/detail/nlcidfhncfjhgibckbbkfbcefcghldpc">Check out the extension</a> in the Chrome Web Store.</li>
<li><a href="https://github.com/rjregenold/reusetab-chrome/blob/master/reusetab.js">Check out the source</a> (all 15 lines of it!) if you&#8217;re into that sort of thing.</li>
</ul>


<div class="footnotes">
    <ol>
        <li id='fn:1'>Actually it updates the pinned tab with the new tab URL, sets it as active and closes the new tab. <a href='#fnref:1' rev='footnote'>↩</a></li>
    </ol>
</div>



]]></content>
  </entry>
  
  <entry>
    <title type="html"><![CDATA[Backbone Layout Manager and ICanHaz]]></title>
    <link href="http://binarylionstudios.com/blog/2012/02/26/backbone-layout-manager-and-icanhaz/" />
    <updated>2012-02-26T11:08:00-06:00</updated>
    <id>http://binarylionstudios.com/blog/2012/02/26/backbone-layout-manager-and-icanhaz</id>
    <content type="html"><![CDATA[<p>A simple way to use <a href="http://icanhazjs.com/">ICanHaz.js</a> as the template engine for <a href="http://tbranyen.github.com/backbone.layoutmanager/">Backbone Layout Manager</a>:</p>

<figure class='code'><figcaption><span></span></figcaption><div class="highlight"><table><tr><td class="gutter"><pre class="line-numbers"><span class='line-number'>1</span>
<span class='line-number'>2</span>
<span class='line-number'>3</span>
<span class='line-number'>4</span>
<span class='line-number'>5</span>
</pre></td><td class='code'><pre><code class='javascript'><span class='line'><span class="nx">Backbone</span><span class="p">.</span><span class="nx">LayoutManager</span><span class="p">.</span><span class="nx">configure</span><span class="p">({</span>
</span><span class='line'>  <span class="nx">fetch</span><span class="o">:</span> <span class="kd">function</span><span class="p">(</span><span class="nx">path</span><span class="p">)</span> <span class="p">{</span>
</span><span class='line'>    <span class="k">return</span> <span class="nx">ich</span><span class="p">[</span><span class="nx">path</span><span class="p">.</span><span class="nx">slice</span><span class="p">(</span><span class="mi">1</span><span class="p">)];</span>
</span><span class='line'>  <span class="p">}</span>
</span><span class='line'><span class="p">});</span>
</span></code></pre></td></tr></table></div></figure>


<p>Then you can define your template:</p>

<figure class='code'><figcaption><span></span></figcaption><div class="highlight"><table><tr><td class="gutter"><pre class="line-numbers"><span class='line-number'>1</span>
<span class='line-number'>2</span>
<span class='line-number'>3</span>
</pre></td><td class='code'><pre><code class='html'><span class='line'><span class="nt">&lt;script </span><span class="na">id=</span><span class="s">&quot;myView&quot;</span> <span class="na">type=</span><span class="s">&quot;text/html&quot;</span><span class="nt">&gt;</span>
</span><span class='line'>  <span class="o">&lt;</span><span class="nx">div</span><span class="o">&gt;</span><span class="nx">Hello</span><span class="p">.</span><span class="o">&lt;</span><span class="err">/div&gt;</span>
</span><span class='line'><span class="nt">&lt;/script&gt;</span>
</span></code></pre></td></tr></table></div></figure>


<p>and use it as the layout for your view:</p>

<figure class='code'><figcaption><span></span></figcaption><div class="highlight"><table><tr><td class="gutter"><pre class="line-numbers"><span class='line-number'>1</span>
<span class='line-number'>2</span>
<span class='line-number'>3</span>
<span class='line-number'>4</span>
</pre></td><td class='code'><pre><code class='javascript'><span class='line'><span class="nx">MyView</span> <span class="o">=</span> <span class="nx">Backbone</span><span class="p">.</span><span class="nx">View</span><span class="p">.</span><span class="nx">extend</span><span class="p">({</span>
</span><span class='line'>  <span class="nx">layout</span><span class="o">:</span> <span class="s2">&quot;#myView&quot;</span><span class="p">,</span>
</span><span class='line'>  <span class="c1">// ...</span>
</span><span class='line'><span class="p">});</span>
</span></code></pre></td></tr></table></div></figure>


<p>I am slicing off the <code>#</code> from the selector to keep the selectors compatible with
other template engines. If you don&#8217;t care about that, you can save yourself
a character like this:</p>

<figure class='code'><figcaption><span></span></figcaption><div class="highlight"><table><tr><td class="gutter"><pre class="line-numbers"><span class='line-number'>1</span>
<span class='line-number'>2</span>
<span class='line-number'>3</span>
<span class='line-number'>4</span>
<span class='line-number'>5</span>
</pre></td><td class='code'><pre><code class='javascript'><span class='line'><span class="nx">Backbone</span><span class="p">.</span><span class="nx">LayoutManager</span><span class="p">.</span><span class="nx">configure</span><span class="p">({</span>
</span><span class='line'>  <span class="nx">fetch</span><span class="o">:</span> <span class="kd">function</span><span class="p">(</span><span class="nx">path</span><span class="p">)</span> <span class="p">{</span>
</span><span class='line'>    <span class="k">return</span> <span class="nx">ich</span><span class="p">[</span><span class="nx">path</span><span class="p">];</span>
</span><span class='line'>  <span class="p">}</span>
</span><span class='line'><span class="p">});</span>
</span></code></pre></td></tr></table></div></figure>


<p>and update your view:</p>

<figure class='code'><figcaption><span></span></figcaption><div class="highlight"><table><tr><td class="gutter"><pre class="line-numbers"><span class='line-number'>1</span>
<span class='line-number'>2</span>
<span class='line-number'>3</span>
<span class='line-number'>4</span>
</pre></td><td class='code'><pre><code class='javascript'><span class='line'><span class="nx">MyView</span> <span class="o">=</span> <span class="nx">Backbone</span><span class="p">.</span><span class="nx">View</span><span class="p">.</span><span class="nx">extend</span><span class="p">({</span>
</span><span class='line'>  <span class="nx">layout</span><span class="o">:</span> <span class="s2">&quot;myView&quot;</span><span class="p">,</span>
</span><span class='line'>  <span class="c1">// ...</span>
</span><span class='line'><span class="p">});</span>
</span></code></pre></td></tr></table></div></figure>

]]></content>
  </entry>
  
  <entry>
    <title type="html"><![CDATA[Lift RestHelper format]]></title>
    <link href="http://binarylionstudios.com/blog/2012/02/16/lift-resthelper-format/" />
    <updated>2012-02-16T22:20:00-06:00</updated>
    <id>http://binarylionstudios.com/blog/2012/02/16/lift-resthelper-format</id>
    <content type="html"><![CDATA[<p>To require a certain suffix in a REST request using Lift, you can use the
unapply method on the Req object.</p>

<figure class='code'><figcaption><span></span></figcaption><div class="highlight"><table><tr><td class="gutter"><pre class="line-numbers"><span class='line-number'>1</span>
<span class='line-number'>2</span>
<span class='line-number'>3</span>
<span class='line-number'>4</span>
</pre></td><td class='code'><pre><code class='scala'><span class='line'><span class="n">serve</span><span class="o">(</span><span class="s">&quot;api&quot;</span> <span class="o">/</span> <span class="s">&quot;users&quot;</span> <span class="n">prefix</span> <span class="o">{</span>
</span><span class='line'>  <span class="k">case</span> <span class="nc">AsLong</span><span class="o">(</span><span class="n">id</span><span class="o">)</span> <span class="o">::</span> <span class="s">&quot;posts&quot;</span> <span class="o">::</span> <span class="k">_</span> <span class="nc">Get</span> <span class="nc">Req</span><span class="o">(</span><span class="n">_</span><span class="o">,</span> <span class="s">&quot;xls&quot;</span><span class="o">,</span> <span class="n">_</span><span class="o">)</span> <span class="k">=&gt;</span>
</span><span class='line'>    <span class="c1">// do your thing. </span>
</span><span class='line'><span class="o">})</span>
</span></code></pre></td></tr></table></div></figure>


<p>This would match <code>/api/users/1/posts.xls</code>.</p>
]]></content>
  </entry>
  
  <entry>
    <title type="html"><![CDATA[Octopress migration]]></title>
    <link href="http://binarylionstudios.com/blog/2012/01/03/octopress-migration/" />
    <updated>2012-01-03T20:36:00-06:00</updated>
    <id>http://binarylionstudios.com/blog/2012/01/03/octopress-migration</id>
    <content type="html"><![CDATA[<p>I finished migrating my blog from <a href="https://www.tumblr.com/">Tumblr</a> over to <a href="http://octopress.org/">Octopress</a> this weekend. The
idea of a static site generator has always intrigued me. The minimalistic
approach to blogging along with an easy setup that can be hosted pretty much
anywhere is very appealing. Also, being able to write all my posts in markdown
and store them in git as well as Dropbox makes me feel more in control of my
content.</p>

<p>Octopress has been getting really popular lately, so it seemed like the obvious
choice. It was painless to setup and the default theme is really nice. The code
snippet support out of the box is incredible. That was always my biggest
complaint with Tumblr. I blog strictly to share code and Tumblr is clearly not
made for that.</p>

<p>I&#8217;m very happy with Octopress and feel like the ease of writing new posts will
help me blog more often. Plus, writing blog posts in Vim just feels right!
Thanks for reading.</p>

<p><em>Note: If you subscribe to the RSS feed, please update it to <a href="http://feeds.feedburner.com/binarylionstudios">my new FeedBurner account</a>.</em></p>
]]></content>
  </entry>
  
  <entry>
    <title type="html"><![CDATA[Console alarm clock]]></title>
    <link href="http://binarylionstudios.com/blog/2011/12/21/console-alarm-clock/" />
    <updated>2011-12-21T18:23:00-06:00</updated>
    <id>http://binarylionstudios.com/blog/2011/12/21/console-alarm-clock</id>
    <content type="html"><![CDATA[<p>Wake up with a warm cup of Coffeescript. I am constantly amazed at how simple
it is to write one-off scripts and small utilities with node.js &amp; coffeescript.</p>

<p>I wanted an easy way to set reminders for myself throughout the day. For
example, if I put the kettle on the stove, come back to my office and crank
Gungor, I&#8217;m not going to hear the kettle whistling when the water is boiled.
Instead, when I get back to my office I want to open a new tab in Terminal and
type:</p>

<figure class='code'><div class="highlight"><table><tr><td class="gutter"><pre class="line-numbers"><span class='line-number'>1</span>
</pre></td><td class='code'><pre><code class=''><span class='line'>$ remindme +5min "Check the kettle."</span></code></pre></td></tr></table></div></figure>


<p>Ideally, this will show me a Growl notification and play a sound to remind me to
go check on the kettle.</p>

<p>Using <a href="https://github.com/visionmedia/node-growl">node-growl</a>, <a href="http://www.datejs.com/">datejs</a> and <a href="https://github.com/marak/play.js">play.js</a> the final script is as simple as this:</p>

<figure class='code'><figcaption><span></span></figcaption><div class="highlight"><table><tr><td class="gutter"><pre class="line-numbers"><span class='line-number'>1</span>
<span class='line-number'>2</span>
<span class='line-number'>3</span>
<span class='line-number'>4</span>
<span class='line-number'>5</span>
<span class='line-number'>6</span>
<span class='line-number'>7</span>
<span class='line-number'>8</span>
<span class='line-number'>9</span>
<span class='line-number'>10</span>
<span class='line-number'>11</span>
<span class='line-number'>12</span>
<span class='line-number'>13</span>
<span class='line-number'>14</span>
<span class='line-number'>15</span>
<span class='line-number'>16</span>
<span class='line-number'>17</span>
<span class='line-number'>18</span>
<span class='line-number'>19</span>
<span class='line-number'>20</span>
<span class='line-number'>21</span>
<span class='line-number'>22</span>
<span class='line-number'>23</span>
<span class='line-number'>24</span>
<span class='line-number'>25</span>
<span class='line-number'>26</span>
<span class='line-number'>27</span>
<span class='line-number'>28</span>
<span class='line-number'>29</span>
<span class='line-number'>30</span>
<span class='line-number'>31</span>
<span class='line-number'>32</span>
<span class='line-number'>33</span>
<span class='line-number'>34</span>
</pre></td><td class='code'><pre><code class='coffeescript'><span class='line'><span class="c1">#!/usr/bin/env coffee</span>
</span><span class='line'>
</span><span class='line'><span class="nv">nm = </span><span class="s">&quot;</span><span class="si">#{</span><span class="nx">__dirname</span><span class="si">}</span><span class="s">/node_modules&quot;</span>
</span><span class='line'>
</span><span class='line'><span class="nx">require</span> <span class="s">&quot;</span><span class="si">#{</span><span class="nx">nm</span><span class="si">}</span><span class="s">/datejs&quot;</span>
</span><span class='line'>
</span><span class='line'><span class="nv">growl = </span><span class="nx">require</span> <span class="s">&quot;</span><span class="si">#{</span><span class="nx">nm</span><span class="si">}</span><span class="s">/growl&quot;</span>
</span><span class='line'><span class="nv">play = </span><span class="nx">require</span> <span class="s">&quot;</span><span class="si">#{</span><span class="nx">nm</span><span class="si">}</span><span class="s">/play&quot;</span>
</span><span class='line'>
</span><span class='line'><span class="nv">usage = </span><span class="o">-&gt;</span>
</span><span class='line'>  <span class="nx">console</span><span class="p">.</span><span class="nx">log</span> <span class="s">&#39;&#39;&#39;</span>
</span><span class='line'><span class="s">    usage: remindme time msg</span>
</span><span class='line'>
</span><span class='line'><span class="s">      time - the time to show the reminder</span>
</span><span class='line'><span class="s">      msg  - the message to show when the reminder goes off</span>
</span><span class='line'><span class="s">    &#39;&#39;&#39;</span>
</span><span class='line'>
</span><span class='line'><span class="nv">main = </span><span class="o">-&gt;</span>
</span><span class='line'>  <span class="p">[</span><span class="nx">time</span><span class="p">,</span> <span class="nx">msg</span><span class="p">]</span> <span class="o">=</span> <span class="nx">process</span><span class="p">.</span><span class="nx">argv</span><span class="p">[</span><span class="mi">2</span><span class="p">..</span><span class="mi">3</span><span class="p">]</span>
</span><span class='line'>  <span class="k">if</span> <span class="o">not</span> <span class="nx">time</span><span class="o">?</span> <span class="o">or</span> <span class="o">not</span> <span class="nx">msg</span><span class="o">?</span>
</span><span class='line'>    <span class="nx">usage</span><span class="p">()</span>
</span><span class='line'>    <span class="nx">process</span><span class="p">.</span><span class="nx">exit</span> <span class="mi">1</span>
</span><span class='line'>  <span class="nv">showReminder = </span><span class="o">-&gt;</span>
</span><span class='line'>    <span class="nx">play</span><span class="p">.</span><span class="nx">sound</span> <span class="s">&quot;</span><span class="si">#{</span><span class="nx">__dirname</span><span class="si">}</span><span class="s">/audio/alarm.wav&quot;</span>
</span><span class='line'>    <span class="nx">growl</span> <span class="nx">msg</span><span class="p">,</span>
</span><span class='line'>      <span class="nv">title: </span><span class="s">&#39;Reminder&#39;</span>
</span><span class='line'>      <span class="nv">sticky: </span><span class="kc">true</span>
</span><span class='line'>  <span class="nv">remindAt = </span><span class="nb">Date</span><span class="p">.</span><span class="nx">parse</span><span class="p">(</span><span class="nx">time</span><span class="p">)</span>
</span><span class='line'>  <span class="nv">delta = </span><span class="nx">remindAt</span> <span class="o">-</span> <span class="nb">Date</span><span class="p">.</span><span class="nx">now</span><span class="p">()</span>
</span><span class='line'>  <span class="nx">console</span><span class="p">.</span><span class="nx">log</span> <span class="s">&quot;reminding you at </span><span class="si">#{</span><span class="nx">remindAt</span><span class="p">.</span><span class="nx">toString</span><span class="p">()</span><span class="si">}</span><span class="s">.&quot;</span>
</span><span class='line'>  <span class="nx">console</span><span class="p">.</span><span class="nx">log</span> <span class="s">&quot;that is in </span><span class="si">#{</span><span class="nx">delta</span><span class="si">}</span><span class="s">ms, if you were wondering.&quot;</span>
</span><span class='line'>  <span class="nx">setTimeout</span> <span class="nx">showReminder</span><span class="p">,</span> <span class="nx">delta</span>
</span><span class='line'>
</span><span class='line'><span class="nx">main</span><span class="p">()</span>
</span></code></pre></td></tr></table></div></figure>


<p>Now I can leverage the power of datejs on the console, which gives me a lot of
flexibility when setting alarms. Again, I&#8217;m impressed at the number of quality
libs available for node.js and the speed of which an idea can go from concept to
working script.</p>

<p>I plan to package this script up as an npm module and make the source available
on Github soon.</p>
]]></content>
  </entry>
  
  <entry>
    <title type="html"><![CDATA[Lift embed snippet execution failure]]></title>
    <link href="http://binarylionstudios.com/blog/2011/11/30/lift-embed-snippet-execution-failure/" />
    <updated>2011-11-30T19:54:00-06:00</updated>
    <id>http://binarylionstudios.com/blog/2011/11/30/lift-embed-snippet-execution-failure</id>
    <content type="html"><![CDATA[<p>If you are getting an Execution Failure while trying to use the builtin embed snippet in Lift, you need to make sure the following are true:</p>

<ul>
<li>the embedded template name must start with an underscore (ie: <code>_sample.html</code>)</li>
<li>do not include the <code>.html</code> extension on the name in the tag</li>
<li>make sure you have a top level tag in the embedded template that contains all the content
For example, this is how to embed a template using designer friendly templates:</li>
</ul>


<figure class='code'><figcaption><span></span></figcaption><div class="highlight"><table><tr><td class="gutter"><pre class="line-numbers"><span class='line-number'>1</span>
</pre></td><td class='code'><pre><code class='html'><span class='line'><span class="nt">&lt;div</span> <span class="na">class=</span><span class="s">&quot;lift:embed?what=/templates-hidden/dashboards/_admin&quot;</span><span class="nt">&gt;&lt;/div&gt;</span>
</span></code></pre></td></tr></table></div></figure>


<p>Then the actual contents of the <code>_admin.html</code> template should look like this:</p>

<figure class='code'><figcaption><span>_admin.html</span></figcaption><div class="highlight"><table><tr><td class="gutter"><pre class="line-numbers"><span class='line-number'>1</span>
<span class='line-number'>2</span>
<span class='line-number'>3</span>
<span class='line-number'>4</span>
<span class='line-number'>5</span>
<span class='line-number'>6</span>
</pre></td><td class='code'><pre><code class='html'><span class='line'><span class="nt">&lt;div&gt;</span>
</span><span class='line'>  <span class="nt">&lt;p&gt;</span>This is an admin template.<span class="nt">&lt;/p&gt;</span>
</span><span class='line'>  <span class="nt">&lt;div&gt;</span>
</span><span class='line'>    ... other content/snippets here ...
</span><span class='line'>  <span class="nt">&lt;/div&gt;</span>
</span><span class='line'><span class="nt">&lt;div&gt;</span>
</span></code></pre></td></tr></table></div></figure>


<p>If you don’t put a top container around your embedded content, only the first node will get embedded.</p>
]]></content>
  </entry>
  
  <entry>
    <title type="html"><![CDATA[Verify In-App Purchase receipts]]></title>
    <link href="http://binarylionstudios.com/blog/2011/06/14/verify-in-app-purchase-receipts/" />
    <updated>2011-06-14T09:49:00-05:00</updated>
    <id>http://binarylionstudios.com/blog/2011/06/14/verify-in-app-purchase-receipts</id>
    <content type="html"><![CDATA[<p>If you have services that are validating In App Purchase receipts, Apple’s documentation doesn’t clearly state whether you should continue validating those receipts against the sandbox or production environment while the app is in review. The answer is, however, found at the bottom of <a href="http://developer.apple.com/library/ios/#technotes/tn2259/_index.html">Technical Note TN2259</a>:</p>

<p>What url should I use to verify my receipt?</p>

<ul>
<li>Use the sandbox url <code>https://sandbox.itunes.apple.com/verifyReceipt</code> while testing your application in the sandbox and while your application is in review.</li>
<li>Use the production url <code>http://buy.itunes.apple.com/verifyReceipt</code> once your application is live in the App Store.</li>
</ul>


<p>Once your application is approved, you should switch your services over to use the production environment.</p>
]]></content>
  </entry>
  
  <entry>
    <title type="html"><![CDATA[Ajax with Facebook C# SDK]]></title>
    <link href="http://binarylionstudios.com/blog/2011/04/07/ajax-with-facebook-c%23-sdk/" />
    <updated>2011-04-07T11:00:00-05:00</updated>
    <id>http://binarylionstudios.com/blog/2011/04/07/ajax-with-facebook-c#-sdk</id>
    <content type="html"><![CDATA[<p>To make an Ajax call from a Facebook Canvas app, you need to pass the signed request along. The Facebook C# SDK does not use cookies for Canvas apps (yay!), so it needs the signed request to establish context. Using Razor, it might look something like this:</p>

<figure class='code'><figcaption><span></span></figcaption><div class="highlight"><table><tr><td class="gutter"><pre class="line-numbers"><span class='line-number'>1</span>
<span class='line-number'>2</span>
<span class='line-number'>3</span>
<span class='line-number'>4</span>
</pre></td><td class='code'><pre><code class='javascript'><span class='line'><span class="kd">var</span> <span class="nx">url</span> <span class="o">=</span> <span class="s2">&quot;@Url.Action(&quot;</span><span class="nx">Action</span><span class="s2">&quot;, new { signed_request = Request[&quot;</span><span class="nx">signed_request</span><span class="s2">&quot;] })&quot;</span><span class="p">;</span>
</span><span class='line'><span class="nx">$</span><span class="p">.</span><span class="nx">get</span><span class="p">(</span><span class="nx">url</span><span class="p">,</span> <span class="kd">function</span><span class="p">(</span><span class="nx">data</span><span class="p">)</span> <span class="p">{</span>
</span><span class='line'>    <span class="nx">$</span><span class="p">(</span><span class="s2">&quot;#contentHolder&quot;</span><span class="p">).</span><span class="nx">html</span><span class="p">(</span><span class="nx">data</span><span class="p">);</span>
</span><span class='line'><span class="p">});</span>
</span></code></pre></td></tr></table></div></figure>



]]></content>
  </entry>
  
  <entry>
    <title type="html"><![CDATA[C functions in Objective-C]]></title>
    <link href="http://binarylionstudios.com/blog/2011/03/27/c-functions-in-objective-c/" />
    <updated>2011-03-27T20:16:00-05:00</updated>
    <id>http://binarylionstudios.com/blog/2011/03/27/c-functions-in-objective-c</id>
    <content type="html"><![CDATA[<p>If you are including a header <code>.h</code> and implementation file <code>.c</code> for C functions in your Objective-C project and get errors like:</p>

<figure class='code'><div class="highlight"><table><tr><td class="gutter"><pre class="line-numbers"><span class='line-number'>1</span>
</pre></td><td class='code'><pre><code class=''><span class='line'>error: expected '=', ',', ';', 'asm' or '__attribute__' before 'CGRect'</span></code></pre></td></tr></table></div></figure>


<p>there is an easy solution. Change the extension of the implementation file from <code>.c</code> to <code>.m</code>.</p>
]]></content>
  </entry>
  
  <entry>
    <title type="html"><![CDATA[dd_belatedpng pages blank in iframe]]></title>
    <link href="http://binarylionstudios.com/blog/2011/03/07/dd_belatedpng-pages-blank-in-iframe/" />
    <updated>2011-03-07T13:04:00-06:00</updated>
    <id>http://binarylionstudios.com/blog/2011/03/07/dd_belatedpng-pages-blank-in-iframe</id>
    <content type="html"><![CDATA[<p>Ran into an issue today when testing a Facebook application in IE6. The page is a canvas page that is rendered in an iFrame. It uses the excellent <a href="http://html5boilerplate.com/">HTML5 Boilerplate</a> and thus, the dd_belatedpng library to provide transparent PNG support in IE6. I found that whenever the CSS selector passed to fix() matched more than a single element, the entire page would become blank.</p>

<p>I found a workaround on an <a href="http://forums.adobe.com/thread/546050?decorator=print&amp;displayFullThread=true">Adobe thread</a>. Apparently dd_belatedpng sets the position to relative on the HTML tag. This is what was causing the issues. The workaround is to (ugg) modify the dd_belatedpng source and add the following conditional (on line 138 of the non-minified 0.0.8a release):</p>

<figure class='code'><figcaption><span></span></figcaption><div class="highlight"><table><tr><td class="gutter"><pre class="line-numbers"><span class='line-number'>1</span>
<span class='line-number'>2</span>
<span class='line-number'>3</span>
</pre></td><td class='code'><pre><code class='javascript'><span class='line'><span class="k">if</span> <span class="p">(</span><span class="nx">el</span><span class="p">.</span><span class="nx">nodeName</span> <span class="o">!=</span> <span class="s1">&#39;HTML&#39;</span><span class="p">)</span> <span class="p">{</span>
</span><span class='line'>    <span class="nx">el</span><span class="p">.</span><span class="nx">style</span><span class="p">.</span><span class="nx">position</span> <span class="o">=</span> <span class="s1">&#39;relative&#39;</span><span class="p">;</span>
</span><span class='line'><span class="p">}</span>
</span></code></pre></td></tr></table></div></figure>


<p>That ensures the HTML tag doesn’t get its position set to relative. It’s a hack, but so is IE6, so I’ll still sleep at night.</p>
]]></content>
  </entry>
  
  <entry>
    <title type="html"><![CDATA[error: stdarg.h: No such file or directory]]></title>
    <link href="http://binarylionstudios.com/blog/2011/01/30/error-stdarg.h-no-such-file-or-directory/" />
    <updated>2011-01-30T22:25:00-06:00</updated>
    <id>http://binarylionstudios.com/blog/2011/01/30/error-stdarg.h-no-such-file-or-directory</id>
    <content type="html"><![CDATA[<p>When trying to install PIL on Snow Leopard 10.6.6 with the stock Python 2.6.6 install, I was running into the following error:</p>

<figure class='code'><div class="highlight"><table><tr><td class="gutter"><pre class="line-numbers"><span class='line-number'>1</span>
</pre></td><td class='code'><pre><code class=''><span class='line'>error: stdarg.h: No such file or directory</span></code></pre></td></tr></table></div></figure>


<p>The solution was to reinstall Xcode and check the Mac OSX 10.4 SDK (which isn’t selected by default).</p>
]]></content>
  </entry>
  
  <entry>
    <title type="html"><![CDATA[Create iOS Development Certificate error]]></title>
    <link href="http://binarylionstudios.com/blog/2011/01/11/create-ios-development-certificate-error/" />
    <updated>2011-01-11T11:21:00-06:00</updated>
    <id>http://binarylionstudios.com/blog/2011/01/11/create-ios-development-certificate-error</id>
    <content type="html"><![CDATA[<p>You may see the following error while trying to upload your CSR in Chrome:</p>

<p>We are unable to upload this Certificate file because it is invalid. Please check the file and try again.</p>

<p>I was able to get around this error by uploading the CSR in Safari. Exact same CSR … just a different browser and it worked.</p>
]]></content>
  </entry>
  
  <entry>
    <title type="html"><![CDATA[ZipKit example]]></title>
    <link href="http://binarylionstudios.com/blog/2011/01/09/zipkit-example/" />
    <updated>2011-01-09T08:55:00-06:00</updated>
    <id>http://binarylionstudios.com/blog/2011/01/09/zipkit-example</id>
    <content type="html"><![CDATA[<p>Quick and easy way to inflate an archive using the fantastic <a href="https://bitbucket.org/kolpanic/zipkit/wiki/Home">ZipKit</a>.</p>

<figure class='code'><figcaption><span></span></figcaption><div class="highlight"><table><tr><td class="gutter"><pre class="line-numbers"><span class='line-number'>1</span>
<span class='line-number'>2</span>
<span class='line-number'>3</span>
<span class='line-number'>4</span>
<span class='line-number'>5</span>
<span class='line-number'>6</span>
<span class='line-number'>7</span>
<span class='line-number'>8</span>
<span class='line-number'>9</span>
<span class='line-number'>10</span>
<span class='line-number'>11</span>
<span class='line-number'>12</span>
<span class='line-number'>13</span>
<span class='line-number'>14</span>
<span class='line-number'>15</span>
<span class='line-number'>16</span>
<span class='line-number'>17</span>
<span class='line-number'>18</span>
<span class='line-number'>19</span>
<span class='line-number'>20</span>
<span class='line-number'>21</span>
<span class='line-number'>22</span>
<span class='line-number'>23</span>
<span class='line-number'>24</span>
<span class='line-number'>25</span>
<span class='line-number'>26</span>
<span class='line-number'>27</span>
<span class='line-number'>28</span>
<span class='line-number'>29</span>
<span class='line-number'>30</span>
<span class='line-number'>31</span>
<span class='line-number'>32</span>
<span class='line-number'>33</span>
<span class='line-number'>34</span>
</pre></td><td class='code'><pre><code class='objc'><span class='line'><span class="k">-</span> <span class="p">(</span><span class="kt">void</span><span class="p">)</span><span class="nf">inflateArchive</span> <span class="p">{</span>
</span><span class='line'>  <span class="n">NSAutoreleasePool</span> <span class="o">*</span><span class="n">pool</span> <span class="o">=</span> <span class="p">[[</span><span class="n">NSAutoreleasePool</span> <span class="n">alloc</span><span class="p">]</span> <span class="n">init</span><span class="p">];</span>
</span><span class='line'>
</span><span class='line'>  <span class="n">NSString</span> <span class="o">*</span><span class="n">archivePath</span> <span class="o">=</span> <span class="p">[</span><span class="n">self</span> <span class="n">archivePath</span><span class="p">];</span>
</span><span class='line'>  <span class="n">ZKFileArchive</span> <span class="o">*</span><span class="n">archive</span> <span class="o">=</span> <span class="p">[</span><span class="n">ZKFileArchive</span> <span class="nl">archiveWithArchivePath:</span><span class="n">archivePath</span><span class="p">];</span>
</span><span class='line'>  <span class="p">[</span><span class="n">archive</span> <span class="nl">setDelegate:</span><span class="n">self</span><span class="p">];</span>
</span><span class='line'>  <span class="p">[</span><span class="n">self</span> <span class="nl">setArchiveSize:</span><span class="p">[[[</span><span class="n">archive</span> <span class="n">centralDirectory</span><span class="p">]</span> <span class="nl">valueForKeyPath:</span><span class="s">@&quot;@sum.uncompressedSize&quot;</span><span class="p">]</span> <span class="n">unsignedLongValue</span><span class="p">]];</span>
</span><span class='line'>  <span class="p">[</span><span class="n">archive</span> <span class="nl">inflateToDiskUsingResourceFork:</span><span class="n">NO</span><span class="p">];</span>
</span><span class='line'>
</span><span class='line'>  <span class="c1">// do something with inflated archive. </span>
</span><span class='line'>  <span class="c1">// zipkit puts all inflated files in the same directory as the archive.</span>
</span><span class='line'>
</span><span class='line'>  <span class="p">[</span><span class="n">self</span> <span class="nl">performSelectorOnMainThread:</span><span class="k">@selector</span><span class="p">(</span><span class="n">inflateComplete</span><span class="p">)</span> <span class="nl">withObject:</span><span class="nb">nil</span> <span class="nl">waitUntilDone:</span><span class="n">NO</span><span class="p">];</span>
</span><span class='line'>
</span><span class='line'>  <span class="p">[</span><span class="n">pool</span> <span class="n">drain</span><span class="p">];</span>
</span><span class='line'><span class="p">}</span>
</span><span class='line'>
</span><span class='line'><span class="k">-</span> <span class="p">(</span><span class="kt">void</span><span class="p">)</span><span class="nf">inflateComplete</span> <span class="p">{</span>
</span><span class='line'>  <span class="c1">// do something after inflate finishes.</span>
</span><span class='line'><span class="p">}</span>
</span><span class='line'>
</span><span class='line'><span class="cp"># pragma mark - ZKArchive delegate methods</span>
</span><span class='line'>
</span><span class='line'><span class="k">-</span> <span class="p">(</span><span class="kt">void</span><span class="p">)</span><span class="nf">onZKArchive:</span><span class="p">(</span><span class="n">ZKArchive</span> <span class="o">*</span><span class="p">)</span> <span class="n">archive</span> <span class="nl">didUpdateBytesWritten:</span><span class="p">(</span><span class="kt">unsigned</span> <span class="kt">long</span> <span class="kt">long</span><span class="p">)</span><span class="nv">byteCount</span> <span class="p">{</span>
</span><span class='line'>  <span class="p">[</span><span class="n">self</span> <span class="nl">setArchiveProgress:</span><span class="p">[</span><span class="n">self</span> <span class="n">archiveProgress</span><span class="p">]</span> <span class="o">+</span> <span class="n">byteCount</span><span class="p">];</span>
</span><span class='line'>
</span><span class='line'>  <span class="k">if</span> <span class="p">([</span><span class="n">self</span> <span class="n">archiveSize</span><span class="p">]</span> <span class="o">&lt;=</span> <span class="mi">0</span><span class="p">)</span> <span class="k">return</span><span class="p">;</span>
</span><span class='line'>
</span><span class='line'>  <span class="p">[[</span><span class="n">self</span> <span class="n">progressView</span><span class="p">]</span> <span class="nl">setProgress:</span><span class="p">(</span><span class="kt">float</span><span class="p">)[</span><span class="n">self</span> <span class="n">archiveProgress</span><span class="p">]</span> <span class="o">/</span> <span class="p">(</span><span class="kt">float</span><span class="p">)[</span><span class="n">self</span> <span class="n">archiveSize</span><span class="p">]];</span>
</span><span class='line'><span class="p">}</span>
</span><span class='line'>
</span><span class='line'><span class="k">-</span> <span class="p">(</span><span class="kt">BOOL</span><span class="p">)</span><span class="nf">zkDelegateWantsSizes</span> <span class="p">{</span>
</span><span class='line'>  <span class="k">return</span> <span class="n">YES</span><span class="p">;</span>
</span><span class='line'><span class="p">}</span>
</span></code></pre></td></tr></table></div></figure>



]]></content>
  </entry>
  
  <entry>
    <title type="html"><![CDATA[Handy one liners for pycrypto]]></title>
    <link href="http://binarylionstudios.com/blog/2010/11/01/handy-one-liners-for-pycrypto/" />
    <updated>2010-11-01T18:00:00-05:00</updated>
    <id>http://binarylionstudios.com/blog/2010/11/01/handy-one-liners-for-pycrypto</id>
    <content type="html"><![CDATA[<figure class='code'><figcaption><span></span></figcaption><div class="highlight"><table><tr><td class="gutter"><pre class="line-numbers"><span class='line-number'>1</span>
<span class='line-number'>2</span>
<span class='line-number'>3</span>
<span class='line-number'>4</span>
<span class='line-number'>5</span>
<span class='line-number'>6</span>
<span class='line-number'>7</span>
<span class='line-number'>8</span>
<span class='line-number'>9</span>
<span class='line-number'>10</span>
<span class='line-number'>11</span>
<span class='line-number'>12</span>
</pre></td><td class='code'><pre><code class='python'><span class='line'><span class="kn">import</span> <span class="nn">base64</span>
</span><span class='line'>
</span><span class='line'><span class="kn">from</span> <span class="nn">Crypto.Cipher</span> <span class="kn">import</span> <span class="n">Blowfish</span>
</span><span class='line'>
</span><span class='line'>
</span><span class='line'><span class="n">cipher</span> <span class="o">=</span> <span class="k">lambda</span><span class="p">:</span> <span class="n">Blowfish</span><span class="o">.</span><span class="n">new</span><span class="p">(</span><span class="s">&#39;abc123&#39;</span><span class="p">)</span>
</span><span class='line'><span class="n">encrypt</span> <span class="o">=</span> <span class="k">lambda</span> <span class="n">c</span><span class="p">,</span> <span class="n">s</span><span class="p">:</span> <span class="n">base64</span><span class="o">.</span><span class="n">b64encode</span><span class="p">(</span><span class="n">c</span><span class="o">.</span><span class="n">encrypt</span><span class="p">(</span><span class="n">s</span><span class="p">))</span>
</span><span class='line'><span class="n">decrypt</span> <span class="o">=</span> <span class="k">lambda</span> <span class="n">c</span><span class="p">,</span> <span class="n">e</span><span class="p">:</span> <span class="n">c</span><span class="o">.</span><span class="n">decrypt</span><span class="p">(</span><span class="n">base64</span><span class="o">.</span><span class="n">b64decode</span><span class="p">(</span><span class="n">e</span><span class="p">))</span>
</span><span class='line'>
</span><span class='line'><span class="n">c</span> <span class="o">=</span> <span class="n">cipher</span><span class="p">()</span>
</span><span class='line'><span class="n">enc</span> <span class="o">=</span> <span class="n">encrypt</span><span class="p">(</span><span class="n">c</span><span class="p">,</span> <span class="s">&#39;this is a secret&#39;</span><span class="p">)</span>
</span><span class='line'><span class="n">dec</span> <span class="o">=</span> <span class="n">decrypt</span><span class="p">(</span><span class="n">c</span><span class="p">,</span> <span class="n">enc</span><span class="p">)</span>
</span></code></pre></td></tr></table></div></figure>


<p>Source: <a href="http://www.codekoala.com/blog/2009/aes-encryption-python-using-pycrypto/">http://www.codekoala.com/blog/2009/aes-encryption-python-using-pycrypto/</a></p>
]]></content>
  </entry>
  
  <entry>
    <title type="html"><![CDATA[Using FileMerge for merges with Mercurial]]></title>
    <link href="http://binarylionstudios.com/blog/2010/09/23/using-filemerge-for-merges-with-mercurial/" />
    <updated>2010-09-23T10:29:00-05:00</updated>
    <id>http://binarylionstudios.com/blog/2010/09/23/using-filemerge-for-merges-with-mercurial</id>
    <content type="html"><![CDATA[<p>As a follow-up to the <a href="http://binarylionstudios.com/blog/2010/09/23/using-filemerge-for-diffs-with-mercurial/">last post</a>, you can also use FileMerge to handle merges with Mercurial.</p>

<h3>Write a script and put it on your $PATH</h3>

<p>First, you need to write a script that will force opendiff to wait before returning during a merge. Name the script <code>opendiff-w</code>.</p>

<figure class='code'><div class="highlight"><table><tr><td class="gutter"><pre class="line-numbers"><span class='line-number'>1</span>
<span class='line-number'>2</span>
</pre></td><td class='code'><pre><code class=''><span class='line'># opendiff-w
</span><span class='line'>opendiff "$@" | cat</span></code></pre></td></tr></table></div></figure>


<p>Then you need to make it executable.</p>

<figure class='code'><div class="highlight"><table><tr><td class="gutter"><pre class="line-numbers"><span class='line-number'>1</span>
</pre></td><td class='code'><pre><code class=''><span class='line'>$ chmod u+x opendiff-w</span></code></pre></td></tr></table></div></figure>


<p>Finally, put the script on your <code>$PATH</code>. I put mine in a folder called <code>~/development/scripts/path</code>, and added this to my <code>~/.profile</code>:</p>

<figure class='code'><div class="highlight"><table><tr><td class="gutter"><pre class="line-numbers"><span class='line-number'>1</span>
</pre></td><td class='code'><pre><code class=''><span class='line'>export PATH=$PATH:~development/scripts/path</span></code></pre></td></tr></table></div></figure>


<p>Source the file and make sure you can execute the file you just created.</p>

<figure class='code'><div class="highlight"><table><tr><td class="gutter"><pre class="line-numbers"><span class='line-number'>1</span>
<span class='line-number'>2</span>
<span class='line-number'>3</span>
</pre></td><td class='code'><pre><code class=''><span class='line'>$ source ~/.profile
</span><span class='line'>$ opendiff-w
</span><span class='line'>opendiff[1234:56f] too few arguments</span></code></pre></td></tr></table></div></figure>


<h3>Tell Mercurial to use <code>opendiff-w</code> for merges</h3>

<p>Edit your <code>~/.hgrc</code> file and add the following:</p>

<figure class='code'><figcaption><span>~/.hgrc</span></figcaption><div class="highlight"><table><tr><td class="gutter"><pre class="line-numbers"><span class='line-number'>1</span>
<span class='line-number'>2</span>
<span class='line-number'>3</span>
<span class='line-number'>4</span>
<span class='line-number'>5</span>
<span class='line-number'>6</span>
</pre></td><td class='code'><pre><code class='text'><span class='line'>[merge-patterns]
</span><span class='line'>** = filemerge
</span><span class='line'>
</span><span class='line'>[merge-tools]
</span><span class='line'>filemerge.executable = /Users/user.name/path/to/opendiff-w
</span><span class='line'>filemerge.args = $local $other -ancestor $base -merge $output
</span></code></pre></td></tr></table></div></figure>


<p>Make sure your executable path includes the <code>opendiff-w</code> at the end. For example, mine is:</p>

<figure class='code'><figcaption><span></span></figcaption><div class="highlight"><table><tr><td class="gutter"><pre class="line-numbers"><span class='line-number'>1</span>
</pre></td><td class='code'><pre><code class='text'><span class='line'>filemerge.executable = /Users/user.name/development/scripts/path/opendiff-w
</span></code></pre></td></tr></table></div></figure>


<p>You are good to go. Next time you do a <code>hg merge</code>, Mercurial will use FileMerge to let you manually fix the conflict.</p>
]]></content>
  </entry>
  
  <entry>
    <title type="html"><![CDATA[Using FileMerge for diffs with Mercurial]]></title>
    <link href="http://binarylionstudios.com/blog/2010/09/23/using-filemerge-for-diffs-with-mercurial/" />
    <updated>2010-09-23T09:43:00-05:00</updated>
    <id>http://binarylionstudios.com/blog/2010/09/23/using-filemerge-for-diffs-with-mercurial</id>
    <content type="html"><![CDATA[<p>Mercurial allows you to setup an external diff tool to handle viewing diffs. Here is how you can get Mercurial to use FileMerge (the merge tool that is installed with the OSX developer tools).</p>

<h3>Install the fmscripts wrapper.</h3>

<p><a href="http://www.defraine.net/~brunod/fmdiff/fmscripts-20100225.tar.gz">Download the scripts</a>, unpack them, and install them.</p>

<figure class='code'><div class="highlight"><table><tr><td class="gutter"><pre class="line-numbers"><span class='line-number'>1</span>
<span class='line-number'>2</span>
<span class='line-number'>3</span>
<span class='line-number'>4</span>
<span class='line-number'>5</span>
</pre></td><td class='code'><pre><code class=''><span class='line'>$ cd ~/Downloads
</span><span class='line'>$ curl -OL http://www.defraine.net/~brunod/fmdiff/fmscripts-20100225.tar.gz
</span><span class='line'>$ tar xzvf fmscripts-20100225.tar.gz
</span><span class='line'>$ cd fmscripts-20100225
</span><span class='line'>$ sudo make install</span></code></pre></td></tr></table></div></figure>


<h3>Tell Mercurial to use FileMerge</h3>

<p>Edit your <code>~/.hgrc</code> file and add the following:</p>

<figure class='code'><figcaption><span>~/.hgrc</span></figcaption><div class="highlight"><table><tr><td class="gutter"><pre class="line-numbers"><span class='line-number'>1</span>
<span class='line-number'>2</span>
<span class='line-number'>3</span>
<span class='line-number'>4</span>
<span class='line-number'>5</span>
</pre></td><td class='code'><pre><code class='text'><span class='line'>[extensions]
</span><span class='line'>extdiff=
</span><span class='line'>
</span><span class='line'>[extdiff]
</span><span class='line'>cmd.opendiff = fmdiff
</span></code></pre></td></tr></table></div></figure>


<h3>Use FileMerge to view a diff</h3>

<p>If you have a dirty working copy, you can now view the diff between it and the tip by using the following command:</p>

<figure class='code'><figcaption><span></span></figcaption><div class="highlight"><table><tr><td class="gutter"><pre class="line-numbers"><span class='line-number'>1</span>
</pre></td><td class='code'><pre><code class='text'><span class='line'>$ hg opendiff
</span></code></pre></td></tr></table></div></figure>


<p>Of course, you can still use all the normal diff options. For example, to view the differences between two revisions, do this:</p>

<figure class='code'><figcaption><span></span></figcaption><div class="highlight"><table><tr><td class="gutter"><pre class="line-numbers"><span class='line-number'>1</span>
</pre></td><td class='code'><pre><code class='text'><span class='line'>$ hg opendiff -r100 -r101
</span></code></pre></td></tr></table></div></figure>


<p>Or for a single file:</p>

<figure class='code'><figcaption><span></span></figcaption><div class="highlight"><table><tr><td class="gutter"><pre class="line-numbers"><span class='line-number'>1</span>
</pre></td><td class='code'><pre><code class='text'><span class='line'>$ hg opendiff -r100 -r101 views.py
</span></code></pre></td></tr></table></div></figure>


<p>Or to see the difference between a revision and your working copy for a single file:</p>

<figure class='code'><figcaption><span></span></figcaption><div class="highlight"><table><tr><td class="gutter"><pre class="line-numbers"><span class='line-number'>1</span>
</pre></td><td class='code'><pre><code class='text'><span class='line'>$ hg opendiff -r101 views.py
</span></code></pre></td></tr></table></div></figure>


<p>Yay, Mercurial.</p>
]]></content>
  </entry>
  
  <entry>
    <title type="html"><![CDATA[Dynamic model form]]></title>
    <link href="http://binarylionstudios.com/blog/2010/09/22/dynamic-model-form/" />
    <updated>2010-09-22T14:57:00-05:00</updated>
    <id>http://binarylionstudios.com/blog/2010/09/22/dynamic-model-form</id>
    <content type="html"><![CDATA[<p>Create a <code>ModelForm</code> for a given model and list of fields.</p>

<figure class='code'><figcaption><span></span></figcaption><div class="highlight"><table><tr><td class="gutter"><pre class="line-numbers"><span class='line-number'>1</span>
<span class='line-number'>2</span>
<span class='line-number'>3</span>
<span class='line-number'>4</span>
<span class='line-number'>5</span>
<span class='line-number'>6</span>
<span class='line-number'>7</span>
</pre></td><td class='code'><pre><code class='python'><span class='line'><span class="k">def</span> <span class="nf">model_to_modelform</span><span class="p">(</span><span class="n">cls</span><span class="p">,</span> <span class="n">fs</span><span class="p">):</span>
</span><span class='line'>    <span class="kn">from</span> <span class="nn">django</span> <span class="kn">import</span> <span class="n">forms</span>
</span><span class='line'>    <span class="k">class</span> <span class="nc">DynaForm</span><span class="p">(</span><span class="n">forms</span><span class="o">.</span><span class="n">ModelForm</span><span class="p">):</span>
</span><span class='line'>        <span class="k">class</span> <span class="nc">Meta</span><span class="p">:</span>
</span><span class='line'>            <span class="n">model</span> <span class="o">=</span> <span class="n">cls</span>
</span><span class='line'>            <span class="n">fields</span> <span class="o">=</span> <span class="n">fs</span>
</span><span class='line'>    <span class="k">return</span> <span class="n">DynaForm</span>
</span></code></pre></td></tr></table></div></figure>


<p>Now use it.</p>

<figure class='code'><figcaption><span></span></figcaption><div class="highlight"><table><tr><td class="gutter"><pre class="line-numbers"><span class='line-number'>1</span>
<span class='line-number'>2</span>
<span class='line-number'>3</span>
</pre></td><td class='code'><pre><code class='python'><span class='line'><span class="c"># perhaps use it in a view</span>
</span><span class='line'><span class="n">form</span> <span class="o">=</span> <span class="n">model_to_modelform</span><span class="p">(</span><span class="n">User</span><span class="p">,</span> <span class="p">(</span><span class="s">&#39;username&#39;</span><span class="p">,</span> <span class="s">&#39;email&#39;</span><span class="p">,))</span>
</span><span class='line'><span class="n">dynamic_form</span> <span class="o">=</span> <span class="n">form</span><span class="p">(</span><span class="n">instance</span><span class="o">=</span><span class="n">request</span><span class="o">.</span><span class="n">user</span><span class="p">)</span>
</span></code></pre></td></tr></table></div></figure>


<p>Sources:</p>

<p><a href="http://www.agmweb.ca/blog/andy/2249/">http://www.agmweb.ca/blog/andy/2249/</a></p>
]]></content>
  </entry>
  
  <entry>
    <title type="html"><![CDATA[Installing pygraphviz OSX]]></title>
    <link href="http://binarylionstudios.com/blog/2010/09/21/installing-pygraphviz-osx/" />
    <updated>2010-09-21T09:04:00-05:00</updated>
    <id>http://binarylionstudios.com/blog/2010/09/21/installing-pygraphviz-osx</id>
    <content type="html"><![CDATA[<p>Download and install the <a href="http://www.graphviz.org/Download_macos.php">latest version of graphviz</a>.</p>

<p>Download and unpack the <a href="http://pypi.python.org/pypi/pygraphviz/">latest version of pygraphviz</a>.</p>

<p>Update the <code>library_path</code> and <code>include_path</code> in <code>setup.py</code>.</p>

<figure class='code'><figcaption><span>setup.py</span></figcaption><div class="highlight"><table><tr><td class="gutter"><pre class="line-numbers"><span class='line-number'>1</span>
<span class='line-number'>2</span>
</pre></td><td class='code'><pre><code class='python'><span class='line'><span class="n">library_path</span><span class="o">=</span><span class="s">&#39;/usr/local/lib/graphviz/&#39;</span>
</span><span class='line'><span class="n">include_path</span><span class="o">=</span><span class="s">&#39;/usr/local/include/graphviz/&#39;</span>
</span></code></pre></td></tr></table></div></figure>


<p>Install as usual:</p>

<figure class='code'><figcaption><span></span></figcaption><div class="highlight"><table><tr><td class="gutter"><pre class="line-numbers"><span class='line-number'>1</span>
</pre></td><td class='code'><pre><code class='text'><span class='line'>$ sudo python setup.py install
</span></code></pre></td></tr></table></div></figure>


<p>Test the install.</p>

<p><em>Important: Before you enter the python interpreter, make sure you leave the pygraphviz directory.</em></p>

<figure class='code'><figcaption><span></span></figcaption><div class="highlight"><table><tr><td class="gutter"><pre class="line-numbers"><span class='line-number'>1</span>
<span class='line-number'>2</span>
<span class='line-number'>3</span>
<span class='line-number'>4</span>
</pre></td><td class='code'><pre><code class='text'><span class='line'>$ cd ~
</span><span class='line'>$ python
</span><span class='line'>&gt;&gt;&gt; import pygraphviz
</span><span class='line'>&gt;&gt;&gt;
</span></code></pre></td></tr></table></div></figure>


<p>Sources:</p>

<p><a href="http://bradmontgomery.blogspot.com/2010/07/pygraphviz-on-os-x-sl-with-virtualenv.html">http://bradmontgomery.blogspot.com/2010/07/pygraphviz-on-os-x-sl-with-virtualenv.html</a></p>
]]></content>
  </entry>
  
  <entry>
    <title type="html"><![CDATA[Create a list with same value repeated]]></title>
    <link href="http://binarylionstudios.com/blog/2010/08/23/create-a-list-with-same-value-repeated/" />
    <updated>2010-08-23T21:30:00-05:00</updated>
    <id>http://binarylionstudios.com/blog/2010/08/23/create-a-list-with-same-value-repeated</id>
    <content type="html"><![CDATA[<p>A handy way to create a list with the same value repeated.</p>

<figure class='code'><div class="highlight"><table><tr><td class="gutter"><pre class="line-numbers"><span class='line-number'>1</span>
<span class='line-number'>2</span>
<span class='line-number'>3</span>
</pre></td><td class='code'><pre><code class=''><span class='line'>&gt;&gt;&gt; n = 10
</span><span class='line'>&gt;&gt;&gt; [0] * n
</span><span class='line'>[0, 0, 0, 0, 0, 0, 0, 0, 0, 0]</span></code></pre></td></tr></table></div></figure>


<p>This trick is also nifty for plotting data, where you need all points on the y-axis without a value to be a given number (usually 0).</p>

<figure class='code'><div class="highlight"><table><tr><td class="gutter"><pre class="line-numbers"><span class='line-number'>1</span>
<span class='line-number'>2</span>
<span class='line-number'>3</span>
<span class='line-number'>4</span>
<span class='line-number'>5</span>
<span class='line-number'>6</span>
<span class='line-number'>7</span>
<span class='line-number'>8</span>
</pre></td><td class='code'><pre><code class=''><span class='line'>&gt;&gt;&gt; n = 5
</span><span class='line'>&gt;&gt;&gt; x = range(5)
</span><span class='line'>&gt;&gt;&gt; x
</span><span class='line'>[0, 1, 2, 3, 4]
</span><span class='line'>&gt;&gt;&gt; zip(x, [0] * n)
</span><span class='line'>[(0, 0), (1, 0), (2, 0), (3, 0), (4, 0)]
</span><span class='line'>&gt;&gt;&gt; dict(zip(x, [0] * n))
</span><span class='line'>{0: 0, 1: 0, 2: 0, 3: 0, 4: 0}</span></code></pre></td></tr></table></div></figure>

]]></content>
  </entry>
  
  <entry>
    <title type="html"><![CDATA[Sort groups in Xcode 3.x]]></title>
    <link href="http://binarylionstudios.com/blog/2010/07/09/sort-groups-in-xcode-3.x/" />
    <updated>2010-07-09T10:36:00-05:00</updated>
    <id>http://binarylionstudios.com/blog/2010/07/09/sort-groups-in-xcode-3.x</id>
    <content type="html"><![CDATA[<p>You can sort groups in Xcode 3.x, but it’s not very intuitive. Select the group you want to sort, then do Edit->Sort->By Name. That will sort the group, but it doesn’t keep it sorted. Because sorting is in the menu, it’s very easy to assign a key binding (I did ctrl+alt+command+s).</p>

<p><img src="http://binarylionstudios.com/static/img/xcode-sort.png" title="Xcode group" alt="Xcode group" /></p>

<p>Source: <a href="http://forums.macrumors.com/showthread.php?t=564590">http://forums.macrumors.com/showthread.php?t=564590</a></p>
]]></content>
  </entry>
  
</feed>
