<?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>Solutions Log</title>
  
  <link href="http://solutions.trey.cc/" />
  <updated>2011-10-30T22:38:41-05:00</updated>
  <id>http://solutions.trey.cc/</id>
  <author>
    <name>Trey Piepmeier</name>
    
  </author>

  
  <atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/atom+xml" href="http://feeds.feedburner.com/SolutionsLog" /><feedburner:info uri="solutionslog" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><entry>
    <title>Sorting JavaScript Arrays in Numerical Order</title>
    <link href="http://feedproxy.google.com/~r/SolutionsLog/~3/GtAMZPFD_2I/" />
    <updated>2011-10-14T14:21:00-05:00</updated>
    <id>http://solutions.trey.cc/2011/10/14/sorting-javascript-arrays-in-numerical-order</id>
    <content type="html">&lt;p&gt;I do not understand why this is was so difficult to figure out.&lt;/p&gt;

&lt;p&gt;You&amp;#8217;ll need &lt;a href="http://documentcloud.github.com/underscore/"&gt;Underscore.js&lt;/a&gt; to play along at home.&lt;/p&gt;

&lt;p&gt;Start with an array like&lt;/p&gt;

&lt;figure class=’code’&gt;&lt;figcaption&gt;&lt;span&gt;&lt;/span&gt;&lt;/figcaption&gt;&lt;div class="highlight"&gt;&lt;table&gt;&lt;tr&gt;&lt;td class="gutter"&gt;&lt;pre class="line-numbers"&gt;&lt;span class=’line-number’&gt;1&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;&lt;td class=’code’&gt;&lt;pre&gt;&lt;code class=’javascript’&gt;&lt;span class=’line’&gt;&lt;span class="kd"&gt;var&lt;/span&gt; &lt;span class="nx"&gt;sizes&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="mi"&gt;4&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;10&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;8&lt;/span&gt;&lt;span class="p"&gt;];&lt;/span&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;/figure&gt;


&lt;p&gt;If you just use JavaScript&amp;#8217;s built in &lt;code&gt;.sort()&lt;/code&gt; method, you&amp;#8217;ll end up with&lt;/p&gt;

&lt;figure class=’code’&gt;&lt;figcaption&gt;&lt;span&gt;&lt;/span&gt;&lt;/figcaption&gt;&lt;div class="highlight"&gt;&lt;table&gt;&lt;tr&gt;&lt;td class="gutter"&gt;&lt;pre class="line-numbers"&gt;&lt;span class=’line-number’&gt;1&lt;/span&gt;
&lt;span class=’line-number’&gt;2&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;&lt;td class=’code’&gt;&lt;pre&gt;&lt;code class=’javascript’&gt;&lt;span class=’line’&gt;&lt;span class="nx"&gt;sizes&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;sort&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;
&lt;/span&gt;&lt;span class=’line’&gt;&lt;span class="c1"&gt;// results in [1, 10, 4, 8]&lt;/span&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;/figure&gt;


&lt;p&gt;This is because it sorts lexicographically by default. Why? Because it (doesn&amp;#8217;t) love you.&lt;/p&gt;

&lt;p&gt;Here&amp;#8217;s how to do it using Underscore&amp;#8217;s &lt;code&gt;sortBy&lt;/code&gt; method:&lt;/p&gt;

&lt;figure class=’code’&gt;&lt;figcaption&gt;&lt;span&gt;&lt;/span&gt;&lt;/figcaption&gt;&lt;div class="highlight"&gt;&lt;table&gt;&lt;tr&gt;&lt;td class="gutter"&gt;&lt;pre class="line-numbers"&gt;&lt;span class=’line-number’&gt;1&lt;/span&gt;
&lt;span class=’line-number’&gt;2&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;&lt;td class=’code’&gt;&lt;pre&gt;&lt;code class=’javascript’&gt;&lt;span class=’line’&gt;&lt;span class="nx"&gt;sizes&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nx"&gt;_&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;sortBy&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt; &lt;span class="nx"&gt;sizes&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="kd"&gt;function&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt; &lt;span class="nx"&gt;val&lt;/span&gt; &lt;span class="p"&gt;){&lt;/span&gt; &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="nx"&gt;val&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; &lt;span class="p"&gt;}&lt;/span&gt; &lt;span class="p"&gt;);&lt;/span&gt;
&lt;/span&gt;&lt;span class=’line’&gt;&lt;span class="c1"&gt;// results in [1, 4, 8, 10]&lt;/span&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;/figure&gt;


&lt;p&gt;Why does this work? I&amp;#8217;m not sure. Ask your dad.&lt;/p&gt;

&lt;h3&gt;Source&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="http://stackoverflow.com/questions/4929924/how-to-sort-a-javascript-object-or-convert-it-to-an-array/4929935#4929935"&gt;Stack Overflow&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;img src="http://feeds.feedburner.com/~r/SolutionsLog/~4/GtAMZPFD_2I" height="1" width="1"/&gt;</content>
  <feedburner:origLink>http://solutions.trey.cc/2011/10/14/sorting-javascript-arrays-in-numerical-order/</feedburner:origLink></entry>
  
  <entry>
    <title>Using External Files as jQuery Templates</title>
    <link href="http://feedproxy.google.com/~r/SolutionsLog/~3/trrZjwSnv-4/" />
    <updated>2011-04-28T14:45:15-05:00</updated>
    <id>http://solutions.trey.cc/2011/04/28/using-external-files-as-jquery-templates</id>
    <content type="html">&lt;p&gt;&lt;a href="http://solutions.trey.cc/2010/10/25/jquery-templates/"&gt;Previously&amp;hellip;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;If you want to keep your templates in external files, you can load the template in like so:&lt;/p&gt;

&lt;figure class=’code’&gt;&lt;figcaption&gt;&lt;span&gt;&lt;/span&gt;&lt;/figcaption&gt;&lt;div class="highlight"&gt;&lt;table&gt;&lt;tr&gt;&lt;td class="gutter"&gt;&lt;pre class="line-numbers"&gt;&lt;span class=’line-number’&gt;1&lt;/span&gt;
&lt;span class=’line-number’&gt;2&lt;/span&gt;
&lt;span class=’line-number’&gt;3&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;&lt;td class=’code’&gt;&lt;pre&gt;&lt;code class=’javascript’&gt;&lt;span class=’line’&gt;&lt;span class="nx"&gt;$&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;get&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;/js/templates/filename.html&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="kd"&gt;function&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;template&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;span class=’line’&gt;  &lt;span class="nx"&gt;$&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;tmpl&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;template&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;data&lt;/span&gt;&lt;span class="p"&gt;).&lt;/span&gt;&lt;span class="nx"&gt;appendTo&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;#whatever&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;/span&gt;&lt;span class=’line’&gt;&lt;span class="p"&gt;});&lt;/span&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;/figure&gt;


&lt;p&gt;A couple of benefits of this method:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Organizing your templates into their own files is tidy.&lt;/li&gt;
&lt;li&gt;Your syntax highlighter will be happier, since you&amp;#8217;re not writing HTML between two &lt;code&gt;&amp;lt;script&amp;gt;&lt;/code&gt; tags.&lt;/li&gt;
&lt;/ul&gt;


&lt;h3&gt;Source&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="http://encosia.com/2010/10/05/using-external-templates-with-jquery-templates/"&gt;Dave Ward&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;img src="http://feeds.feedburner.com/~r/SolutionsLog/~4/trrZjwSnv-4" height="1" width="1"/&gt;</content>
  <feedburner:origLink>http://solutions.trey.cc/2011/04/28/using-external-files-as-jquery-templates/</feedburner:origLink></entry>
  
  <entry>
    <title>Don’t clutter your Desktop</title>
    <link href="http://feedproxy.google.com/~r/SolutionsLog/~3/a7mhO-rmtEw/" />
    <updated>2011-01-12T14:07:00-06:00</updated>
    <id>http://solutions.trey.cc/2011/01/12/dont-clutter-your-desktop</id>
    <content type="html">&lt;p&gt;To keep from putting too many files and folders on your Desktop, make your icons huge.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Click on your desktop&lt;/li&gt;
&lt;li&gt;From the menu, choose View &gt; Show View Options&lt;/li&gt;
&lt;/ul&gt;


&lt;p&gt;&lt;img src="http://slog.s3.amazonaws.com/501/show_view_options.png" alt="Show View Options" /&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Crank up the size as far as it will go&lt;/li&gt;
&lt;/ul&gt;


&lt;p&gt;&lt;img src="http://slog.s3.amazonaws.com/501/icon_size.png" alt="Crank that Icon Size" /&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Gaze at your huge, pretty icons and then get back to work&lt;/li&gt;
&lt;/ul&gt;


&lt;p&gt;&lt;img src="http://slog.s3.amazonaws.com/501/big_icon.png" alt="Big, pretty icon" /&gt;&lt;/p&gt;
&lt;img src="http://feeds.feedburner.com/~r/SolutionsLog/~4/a7mhO-rmtEw" height="1" width="1"/&gt;</content>
  <feedburner:origLink>http://solutions.trey.cc/2011/01/12/dont-clutter-your-desktop/</feedburner:origLink></entry>
  
  <entry>
    <title>How I deal with TextMate projects</title>
    <link href="http://feedproxy.google.com/~r/SolutionsLog/~3/kjzTv7zhhe4/" />
    <updated>2011-01-11T16:09:34-06:00</updated>
    <id>http://solutions.trey.cc/2011/01/11/how-i-deal-with-textmate-projects</id>
    <content type="html">&lt;ul&gt;
&lt;li&gt;Create a folder in &lt;code&gt;~/Documents&lt;/code&gt; called &lt;code&gt;TextMate Projects&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Save your TextMate Project files there (not the projects themselves)&lt;/li&gt;
&lt;li&gt;Change the icon of the folder to what the &lt;code&gt;~/Sites&lt;/code&gt; folder has (makes sense to me since I use TextMate almost entirely for websites)&lt;/li&gt;
&lt;li&gt;Drag to the right side of your Dock&lt;/li&gt;
&lt;li&gt;Right click the folder in the Dock

&lt;ul&gt;
&lt;li&gt;Display as Folder&lt;/li&gt;
&lt;li&gt;View content as list&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;


&lt;p&gt;Voilà:&lt;/p&gt;

&lt;p&gt;&lt;img src="http://slog.s3.amazonaws.com/497/TextMateProjects.png" alt="TextMate Projects folder in the OS X Dock" /&gt;&lt;/p&gt;

&lt;p&gt;Note: you&amp;#8217;ll see &lt;code&gt;.tmproj&lt;/code&gt; at the end of the project name until the next time you restart your machine or you restart the Dock (&lt;code&gt;killall Dock&lt;/code&gt;). Not sure what the deal is with that.&lt;/p&gt;
&lt;img src="http://feeds.feedburner.com/~r/SolutionsLog/~4/kjzTv7zhhe4" height="1" width="1"/&gt;</content>
  <feedburner:origLink>http://solutions.trey.cc/2011/01/11/how-i-deal-with-textmate-projects/</feedburner:origLink></entry>
  
  <entry>
    <title>Temporarily ignore a file in Git</title>
    <link href="http://feedproxy.google.com/~r/SolutionsLog/~3/nOF9_KvsmgI/" />
    <updated>2011-01-07T10:25:18-06:00</updated>
    <id>http://solutions.trey.cc/2011/01/07/temporarily-ignore-a-file-in-git</id>
    <content type="html">&lt;p&gt;Sometimes you want to temporarily ignore a file in a Git repository without throwing it out entirely by putting it in &lt;code&gt;.gitignore&lt;/code&gt;. Here&amp;#8217;s how to do it:&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;git update-index –assume-unchanged [filename]
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;To start tracking changes again:&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;git update-index –no-assume-unchanged [filename]
&lt;/code&gt;&lt;/pre&gt;

&lt;h3&gt;Source&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="http://gitready.com/intermediate/2009/02/18/temporarily-ignoring-files.html"&gt;Git Ready&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;img src="http://feeds.feedburner.com/~r/SolutionsLog/~4/nOF9_KvsmgI" height="1" width="1"/&gt;</content>
  <feedburner:origLink>http://solutions.trey.cc/2011/01/07/temporarily-ignore-a-file-in-git/</feedburner:origLink></entry>
  
  <entry>
    <title>Install and Use Django, MySQL, and VirtualEnv on Snow Leopard</title>
    <link href="http://feedproxy.google.com/~r/SolutionsLog/~3/YIsx1BsisKs/" />
    <updated>2010-12-27T12:30:51-06:00</updated>
    <id>http://solutions.trey.cc/2010/12/27/install-and-use-django-mysql-and-virtualenv-on-snow-leopard</id>
    <content type="html">&lt;h3&gt;Django&lt;/h3&gt;

&lt;pre&gt;&lt;code&gt;mkdir -p ~/src
svn co http://code.djangoproject.com/svn/django/trunk/ ~/src/django
ln -s ~/src/django/django `python -c "from distutils.sysconfig import get_python_lib; print get_python_lib()"`/django
ln -s ~/src/django/django/bin/django-admin.py ~/bin/django-admin.py
&lt;/code&gt;&lt;/pre&gt;

&lt;h3&gt;PIP, mysql-python, virtualenv, virtualenvwrapper, Mercurial&lt;/h3&gt;

&lt;p&gt;Download and install the &lt;a href="http://dev.mysql.com/downloads/mysql/"&gt;MySQL package installer&lt;/a&gt;, then:&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;easy_install pip
pip install http://downloads.sourceforge.net/project/mysql-python/mysql-python-test/1.2.3c1/MySQL-python-1.2.3c1.tar.gz?use_mirror=cdnetworks-us-2
pip install virtualenv
pip install virtualenvwrapper
pip install mercurial
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;(Note: we&amp;#8217;re installing Mercurial because a lot of PIP packages require it)&lt;/p&gt;

&lt;p&gt;In &lt;a href="https://github.com/trey/dotfiles/blob/master/bash/env"&gt;&lt;code&gt;~/bin/dotfiles/bash/env&lt;/code&gt;&lt;/a&gt;&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;export WORKON_HOME=$HOME/.virtualenvs
source /usr/local/bin/virtualenvwrapper.sh
. ~/src/django/extras/django_bash_completion
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;Then&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;mkdir -p ~/.virtualenvs
source ~/.bashrc
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;Install libjpeg from scratch (for PIL):&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;cd ~/src
curl -O http://www.ijg.org/files/jpegsrc.v8a.tar.gz
tar zxvf jpegsrc.v8a.tar.gz
cd jpeg-8a
./configure
make
make install
&lt;/code&gt;&lt;/pre&gt;

&lt;h3&gt;Setup a project&lt;/h3&gt;

&lt;pre&gt;&lt;code&gt;cd [path/to/your/project/]
mkvirtualenv [projectname]
add2virtualenv .
echo ‘cd [path/to/your/project/]’ &amp;gt;&amp;gt; $WORKON_HOME/postactivate
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;Put requirements for your project into a requirements.txt &lt;a href="http://gist.github.com/322455"&gt;like so&lt;/a&gt;:&lt;/p&gt;

&lt;p&gt;A package on its own line:&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;docutils==0.6
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;Repo noted like so:&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;-e git://github.com/mintchaos/typogrify.git#egg=Typogrify
&lt;/code&gt;&lt;/pre&gt;

&lt;h3&gt;To install things in your requirements file&lt;/h3&gt;

&lt;pre&gt;&lt;code&gt;pip install -r requirements.txt
&lt;/code&gt;&lt;/pre&gt;

&lt;h3&gt;Starting and Stopping VirtualEnvs&lt;/h3&gt;

&lt;p&gt;Start:&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;workon [project]
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;Stop:&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;deactivate
&lt;/code&gt;&lt;/pre&gt;

&lt;h3&gt;Sources&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="http://pypi.python.org/pypi/virtualenv"&gt;PyPi&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.doughellmann.com/projects/virtualenvwrapper/"&gt;VirtualEnvWrapper&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.doughellmann.com/docs/virtualenvwrapper/"&gt;VirtualEnvWrapper docs&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://gist.github.com/311159"&gt;epicserv&amp;#8217;s Gist&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://mathematism.com/2009/07/30/presentation-pip-and-virtualenv/"&gt;mathematism&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.b-list.org/weblog/2008/dec/15/pip/"&gt;b-list&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;img src="http://feeds.feedburner.com/~r/SolutionsLog/~4/YIsx1BsisKs" height="1" width="1"/&gt;</content>
  <feedburner:origLink>http://solutions.trey.cc/2010/12/27/install-and-use-django-mysql-and-virtualenv-on-snow-leopard/</feedburner:origLink></entry>
  
  <entry>
    <title>Determine if a jQuery click event was triggered by a user or a script calling the .click() method</title>
    <link href="http://feedproxy.google.com/~r/SolutionsLog/~3/Bjv6tJ8WD6E/" />
    <updated>2010-11-13T17:06:53-06:00</updated>
    <id>http://solutions.trey.cc/2010/11/13/determine-if-a-jquery-click-event-was-triggered-by-a-user-or-a-script-calling-the-click-method</id>
    <content type="html">&lt;figure class=’code’&gt;&lt;figcaption&gt;&lt;span&gt;&lt;/span&gt;&lt;/figcaption&gt;&lt;div class="highlight"&gt;&lt;table&gt;&lt;tr&gt;&lt;td class="gutter"&gt;&lt;pre class="line-numbers"&gt;&lt;span class=’line-number’&gt;1&lt;/span&gt;
&lt;span class=’line-number’&gt;2&lt;/span&gt;
&lt;span class=’line-number’&gt;3&lt;/span&gt;
&lt;span class=’line-number’&gt;4&lt;/span&gt;
&lt;span class=’line-number’&gt;5&lt;/span&gt;
&lt;span class=’line-number’&gt;6&lt;/span&gt;
&lt;span class=’line-number’&gt;7&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;&lt;td class=’code’&gt;&lt;pre&gt;&lt;code class=’javascript’&gt;&lt;span class=’line’&gt;&lt;span class="nx"&gt;$&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;.button&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;).&lt;/span&gt;&lt;span class="nx"&gt;click&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="kd"&gt;function&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;e&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;span class=’line’&gt;    &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;e&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;originalEvent&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;span class=’line’&gt;        &lt;span class="c1"&gt;// user click&lt;/span&gt;
&lt;/span&gt;&lt;span class=’line’&gt;    &lt;span class="p"&gt;}&lt;/span&gt; &lt;span class="k"&gt;else&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;span class=’line’&gt;        &lt;span class="c1"&gt;// .click()&lt;/span&gt;
&lt;/span&gt;&lt;span class=’line’&gt;    &lt;span class="p"&gt;};&lt;/span&gt;
&lt;/span&gt;&lt;span class=’line’&gt;&lt;span class="p"&gt;});&lt;/span&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;/figure&gt;


&lt;h3&gt;Source&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="http://api.jquery.com/click/#comment-49384681"&gt;chiel&amp;#8217;s comment on the jQuery API&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;img src="http://feeds.feedburner.com/~r/SolutionsLog/~4/Bjv6tJ8WD6E" height="1" width="1"/&gt;</content>
  <feedburner:origLink>http://solutions.trey.cc/2010/11/13/determine-if-a-jquery-click-event-was-triggered-by-a-user-or-a-script-calling-the-click-method/</feedburner:origLink></entry>
  
  <entry>
    <title>Optional Parameters in JavaScript Functions</title>
    <link href="http://feedproxy.google.com/~r/SolutionsLog/~3/bDH_gSRq8E8/" />
    <updated>2010-11-03T11:49:08-05:00</updated>
    <id>http://solutions.trey.cc/2010/11/03/optional-parameters-in-javascript-functions</id>
    <content type="html">&lt;figure class=’code’&gt;&lt;figcaption&gt;&lt;span&gt;Set it up&lt;/span&gt;&lt;/figcaption&gt;&lt;div class="highlight"&gt;&lt;table&gt;&lt;tr&gt;&lt;td class="gutter"&gt;&lt;pre class="line-numbers"&gt;&lt;span class=’line-number’&gt;1&lt;/span&gt;
&lt;span class=’line-number’&gt;2&lt;/span&gt;
&lt;span class=’line-number’&gt;3&lt;/span&gt;
&lt;span class=’line-number’&gt;4&lt;/span&gt;
&lt;span class=’line-number’&gt;5&lt;/span&gt;
&lt;span class=’line-number’&gt;6&lt;/span&gt;
&lt;span class=’line-number’&gt;7&lt;/span&gt;
&lt;span class=’line-number’&gt;8&lt;/span&gt;
&lt;span class=’line-number’&gt;9&lt;/span&gt;
&lt;span class=’line-number’&gt;10&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;&lt;td class=’code’&gt;&lt;pre&gt;&lt;code class=’javascript’&gt;&lt;span class=’line’&gt;&lt;span class="nx"&gt;adjustDisplay&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt; &lt;span class="kd"&gt;function&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;smooth&lt;/span&gt;&lt;span class="p"&gt;){&lt;/span&gt;
&lt;/span&gt;&lt;span class=’line’&gt;    &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;smooth&lt;/span&gt; &lt;span class="o"&gt;===&lt;/span&gt; &lt;span class="kc"&gt;undefined&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="nx"&gt;smooth&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="kc"&gt;false&lt;/span&gt; &lt;span class="p"&gt;};&lt;/span&gt;
&lt;/span&gt;&lt;span class=’line’&gt;    &lt;span class="p"&gt;…&lt;/span&gt;
&lt;/span&gt;&lt;span class=’line’&gt;    &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;smooth&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;span class=’line’&gt;        &lt;span class="nx"&gt;$&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;#content&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;).&lt;/span&gt;&lt;span class="nx"&gt;animate&lt;/span&gt;&lt;span class="p"&gt;({&lt;/span&gt;&lt;span class="nx"&gt;height&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;500px&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;},&lt;/span&gt; &lt;span class="mi"&gt;200&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;/span&gt;&lt;span class=’line’&gt;    &lt;span class="p"&gt;}&lt;/span&gt; &lt;span class="k"&gt;else&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;span class=’line’&gt;        &lt;span class="nx"&gt;$&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;#content&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;).&lt;/span&gt;&lt;span class="nx"&gt;css&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;height&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;500px&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;/span&gt;&lt;span class=’line’&gt;    &lt;span class="p"&gt;};&lt;/span&gt;
&lt;/span&gt;&lt;span class=’line’&gt;&lt;span class="p"&gt;},&lt;/span&gt;
&lt;/span&gt;&lt;span class=’line’&gt;&lt;span class="p"&gt;…&lt;/span&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;/figure&gt;




&lt;figure class=’code’&gt;&lt;figcaption&gt;&lt;span&gt;Call it&lt;/span&gt;&lt;/figcaption&gt;&lt;div class="highlight"&gt;&lt;table&gt;&lt;tr&gt;&lt;td class="gutter"&gt;&lt;pre class="line-numbers"&gt;&lt;span class=’line-number’&gt;1&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;&lt;td class=’code’&gt;&lt;pre&gt;&lt;code class=’javascript’&gt;&lt;span class=’line’&gt;&lt;span class="nx"&gt;app&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;adjustDisplay&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;smooth&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;/figure&gt;

&lt;img src="http://feeds.feedburner.com/~r/SolutionsLog/~4/bDH_gSRq8E8" height="1" width="1"/&gt;</content>
  <feedburner:origLink>http://solutions.trey.cc/2010/11/03/optional-parameters-in-javascript-functions/</feedburner:origLink></entry>
  
  <entry>
    <title>jQuery Templates</title>
    <link href="http://feedproxy.google.com/~r/SolutionsLog/~3/QpBITmJJDgY/" />
    <updated>2010-10-25T11:22:56-05:00</updated>
    <id>http://solutions.trey.cc/2010/10/25/jquery-templates</id>
    <content type="html">&lt;ul&gt;
&lt;li&gt;&lt;a href="http://github.com/jquery/jquery-tmpl"&gt;Download jquery-tmpl&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;


&lt;h3&gt;Create a Template (most basic way):&lt;/h3&gt;

&lt;figure class=’code’&gt;&lt;div class="highlight"&gt;&lt;table&gt;&lt;tr&gt;&lt;td class="gutter"&gt;&lt;pre class="line-numbers"&gt;&lt;span class=’line-number’&gt;1&lt;/span&gt;
&lt;span class=’line-number’&gt;2&lt;/span&gt;
&lt;span class=’line-number’&gt;3&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;&lt;td class=’code’&gt;&lt;pre&gt;&lt;code class=”&gt;&lt;span class=’line’&gt;&amp;lt;script id="book-template" type="text/x-jquery-tmpl"&amp;gt;
&lt;/span&gt;&lt;span class=’line’&gt;    &amp;lt;li&amp;gt;${name} (${year})&amp;lt;/li&amp;gt;
&lt;/span&gt;&lt;span class=’line’&gt;&amp;lt;/script&amp;gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;/figure&gt;


&lt;p&gt;Note that the &lt;code&gt;type&lt;/code&gt; attribute is set to &lt;code&gt;text/x-jquery-tmpl&lt;/code&gt; (&lt;code&gt;text/html&lt;/code&gt; would do the trick as well). Anything other than &lt;code&gt;text/javascript&lt;/code&gt; is ignored by the browser. Also, leaving it out entirely will default to &lt;code&gt;text/javascript&lt;/code&gt; (thank you, HTML5 for making it OK to do that).&lt;/p&gt;

&lt;h3&gt;Data:&lt;/h3&gt;

&lt;figure class=’code’&gt;&lt;figcaption&gt;&lt;span&gt;&lt;/span&gt;&lt;/figcaption&gt;&lt;div class="highlight"&gt;&lt;table&gt;&lt;tr&gt;&lt;td class="gutter"&gt;&lt;pre class="line-numbers"&gt;&lt;span class=’line-number’&gt;1&lt;/span&gt;
&lt;span class=’line-number’&gt;2&lt;/span&gt;
&lt;span class=’line-number’&gt;3&lt;/span&gt;
&lt;span class=’line-number’&gt;4&lt;/span&gt;
&lt;span class=’line-number’&gt;5&lt;/span&gt;
&lt;span class=’line-number’&gt;6&lt;/span&gt;
&lt;span class=’line-number’&gt;7&lt;/span&gt;
&lt;span class=’line-number’&gt;8&lt;/span&gt;
&lt;span class=’line-number’&gt;9&lt;/span&gt;
&lt;span class=’line-number’&gt;10&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;&lt;td class=’code’&gt;&lt;pre&gt;&lt;code class=’javascript’&gt;&lt;span class=’line’&gt;&lt;span class="kd"&gt;var&lt;/span&gt; &lt;span class="nx"&gt;books&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;
&lt;/span&gt;&lt;span class=’line’&gt;    &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="nx"&gt;name&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;The Gunslinger&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;               &lt;span class="nx"&gt;year&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;1982&amp;#39;&lt;/span&gt; &lt;span class="p"&gt;},&lt;/span&gt;
&lt;/span&gt;&lt;span class=’line’&gt;    &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="nx"&gt;name&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;The Drawing of the Three&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;     &lt;span class="nx"&gt;year&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;1987&amp;#39;&lt;/span&gt; &lt;span class="p"&gt;},&lt;/span&gt;
&lt;/span&gt;&lt;span class=’line’&gt;    &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="nx"&gt;name&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;The Waste Lands&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;              &lt;span class="nx"&gt;year&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;1991&amp;#39;&lt;/span&gt; &lt;span class="p"&gt;},&lt;/span&gt;
&lt;/span&gt;&lt;span class=’line’&gt;    &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="nx"&gt;name&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;Wizard and Glass&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;             &lt;span class="nx"&gt;year&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;1997&amp;#39;&lt;/span&gt; &lt;span class="p"&gt;},&lt;/span&gt;
&lt;/span&gt;&lt;span class=’line’&gt;    &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="nx"&gt;name&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;The Wolves of the Calla&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;      &lt;span class="nx"&gt;year&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;2003&amp;#39;&lt;/span&gt; &lt;span class="p"&gt;},&lt;/span&gt;
&lt;/span&gt;&lt;span class=’line’&gt;    &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="nx"&gt;name&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;Song of Susannah&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;             &lt;span class="nx"&gt;year&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;2004&amp;#39;&lt;/span&gt; &lt;span class="p"&gt;},&lt;/span&gt;
&lt;/span&gt;&lt;span class=’line’&gt;    &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="nx"&gt;name&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;The Dark Tower&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;               &lt;span class="nx"&gt;year&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;2004&amp;#39;&lt;/span&gt; &lt;span class="p"&gt;},&lt;/span&gt;
&lt;/span&gt;&lt;span class=’line’&gt;    &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="nx"&gt;name&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;The Wind Through the Keyhole&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;year&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;2012&amp;#39;&lt;/span&gt; &lt;span class="p"&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;span class=’line’&gt;&lt;span class="p"&gt;];&lt;/span&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;/figure&gt;


&lt;h3&gt;Load the template with data:&lt;/h3&gt;

&lt;figure class=’code’&gt;&lt;figcaption&gt;&lt;span&gt;&lt;/span&gt;&lt;/figcaption&gt;&lt;div class="highlight"&gt;&lt;table&gt;&lt;tr&gt;&lt;td class="gutter"&gt;&lt;pre class="line-numbers"&gt;&lt;span class=’line-number’&gt;1&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;&lt;td class=’code’&gt;&lt;pre&gt;&lt;code class=’javascript’&gt;&lt;span class=’line’&gt;&lt;span class="nx"&gt;$&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;#book-template&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;).&lt;/span&gt;&lt;span class="nx"&gt;tmpl&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;books&lt;/span&gt;&lt;span class="p"&gt;).&lt;/span&gt;&lt;span class="nx"&gt;appendTo&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;#book-list&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;/figure&gt;


&lt;p&gt;To be totally explicit: the first selector is the ID of the template (script tag), the argument being passed to &lt;code&gt;.tmpl&lt;/code&gt; is the array, and then we&amp;#8217;re appending the whole thing to the &lt;code&gt;#tower-list&lt;/code&gt; object in the DOM.&lt;/p&gt;

&lt;p&gt;Now don&amp;#8217;t forget some HTML:&lt;/p&gt;

&lt;figure class=’code’&gt;&lt;figcaption&gt;&lt;span&gt;&lt;/span&gt;&lt;/figcaption&gt;&lt;div class="highlight"&gt;&lt;table&gt;&lt;tr&gt;&lt;td class="gutter"&gt;&lt;pre class="line-numbers"&gt;&lt;span class=’line-number’&gt;1&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;&lt;td class=’code’&gt;&lt;pre&gt;&lt;code class=’html’&gt;&lt;span class=’line’&gt;&lt;span class="nt"&gt;&amp;lt;ul&lt;/span&gt; &lt;span class="na"&gt;id=&lt;/span&gt;&lt;span class="s"&gt;&amp;quot;book-list&amp;quot;&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&amp;lt;/ul&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;/figure&gt;


&lt;h3&gt;Source&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="http://api.jquery.com/jquery.tmpl/"&gt;jQuery API&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://en.wikipedia.org/wiki/Dark_Tower_series#Series"&gt;Wikipedia&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;img src="http://feeds.feedburner.com/~r/SolutionsLog/~4/QpBITmJJDgY" height="1" width="1"/&gt;</content>
  <feedburner:origLink>http://solutions.trey.cc/2010/10/25/jquery-templates/</feedburner:origLink></entry>
  
  <entry>
    <title>Using Sass with Django</title>
    <link href="http://feedproxy.google.com/~r/SolutionsLog/~3/io0ljEBxhF4/" />
    <updated>2010-08-22T14:00:38-05:00</updated>
    <id>http://solutions.trey.cc/2010/08/22/using-sass-with-django</id>
    <content type="html">&lt;p&gt;Install &lt;a href="http://github.com/dziegler/django-css/"&gt;django-css&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Install &lt;a href="http://sass-lang.com/"&gt;Sass&lt;/a&gt;.&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;sudo gem install haml
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;Add to &lt;code&gt;settings.py&lt;/code&gt;:&lt;/p&gt;

&lt;figure class=’code’&gt;&lt;figcaption&gt;&lt;span&gt;settings.py&lt;/span&gt;&lt;/figcaption&gt;&lt;div class="highlight"&gt;&lt;table&gt;&lt;tr&gt;&lt;td class="gutter"&gt;&lt;pre class="line-numbers"&gt;&lt;span class=’line-number’&gt;1&lt;/span&gt;
&lt;span class=’line-number’&gt;2&lt;/span&gt;
&lt;span class=’line-number’&gt;3&lt;/span&gt;
&lt;span class=’line-number’&gt;4&lt;/span&gt;
&lt;span class=’line-number’&gt;5&lt;/span&gt;
&lt;span class=’line-number’&gt;6&lt;/span&gt;
&lt;span class=’line-number’&gt;7&lt;/span&gt;
&lt;span class=’line-number’&gt;8&lt;/span&gt;
&lt;span class=’line-number’&gt;9&lt;/span&gt;
&lt;span class=’line-number’&gt;10&lt;/span&gt;
&lt;span class=’line-number’&gt;11&lt;/span&gt;
&lt;span class=’line-number’&gt;12&lt;/span&gt;
&lt;span class=’line-number’&gt;13&lt;/span&gt;
&lt;span class=’line-number’&gt;14&lt;/span&gt;
&lt;span class=’line-number’&gt;15&lt;/span&gt;
&lt;span class=’line-number’&gt;16&lt;/span&gt;
&lt;span class=’line-number’&gt;17&lt;/span&gt;
&lt;span class=’line-number’&gt;18&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;&lt;td class=’code’&gt;&lt;pre&gt;&lt;code class=’python’&gt;&lt;span class=’line’&gt;&lt;span class="n"&gt;INSTALLED_APPS&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;
&lt;/span&gt;&lt;span class=’line’&gt;  &lt;span class="o"&gt;…&lt;/span&gt;
&lt;/span&gt;&lt;span class=’line’&gt;  &lt;span class="s"&gt;&amp;#39;compressor&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;span class=’line’&gt;  &lt;span class="o"&gt;…&lt;/span&gt;
&lt;/span&gt;&lt;span class=’line’&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;span class=’line’&gt;
&lt;/span&gt;&lt;span class=’line’&gt;&lt;span class="o"&gt;…&lt;/span&gt;
&lt;/span&gt;&lt;span class=’line’&gt;
&lt;/span&gt;&lt;span class=’line’&gt;&lt;span class="n"&gt;COMPILER_FORMATS&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;span class=’line’&gt;    &lt;span class="s"&gt;&amp;#39;.sass&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;span class=’line’&gt;        &lt;span class="s"&gt;&amp;#39;binary_path&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="s"&gt;&amp;#39;sass&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;span class=’line’&gt;        &lt;span class="s"&gt;&amp;#39;arguments&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s"&gt;&amp;#39;*.sass *.css&amp;#39;&lt;/span&gt;
&lt;/span&gt;&lt;span class=’line’&gt;    &lt;span class="p"&gt;},&lt;/span&gt;
&lt;/span&gt;&lt;span class=’line’&gt;    &lt;span class="s"&gt;&amp;#39;.scss&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;span class=’line’&gt;        &lt;span class="s"&gt;&amp;#39;binary_path&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="s"&gt;&amp;#39;sass&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;span class=’line’&gt;        &lt;span class="s"&gt;&amp;#39;arguments&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s"&gt;&amp;#39;*.scss *.css&amp;#39;&lt;/span&gt;
&lt;/span&gt;&lt;span class=’line’&gt;    &lt;span class="p"&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;span class=’line’&gt;&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;/figure&gt;


&lt;p&gt;Add to a template that you want to load a Sass file:&lt;/p&gt;

&lt;figure class=’code’&gt;&lt;figcaption&gt;&lt;span&gt;&lt;/span&gt;&lt;/figcaption&gt;&lt;div class="highlight"&gt;&lt;table&gt;&lt;tr&gt;&lt;td class="gutter"&gt;&lt;pre class="line-numbers"&gt;&lt;span class=’line-number’&gt;1&lt;/span&gt;
&lt;span class=’line-number’&gt;2&lt;/span&gt;
&lt;span class=’line-number’&gt;3&lt;/span&gt;
&lt;span class=’line-number’&gt;4&lt;/span&gt;
&lt;span class=’line-number’&gt;5&lt;/span&gt;
&lt;span class=’line-number’&gt;6&lt;/span&gt;
&lt;span class=’line-number’&gt;7&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;&lt;td class=’code’&gt;&lt;pre&gt;&lt;code class=’django’&gt;&lt;span class=’line’&gt;&lt;span class="x"&gt;{ % load compress % }&lt;/span&gt;
&lt;/span&gt;&lt;span class=’line’&gt;
&lt;/span&gt;&lt;span class=’line’&gt;&lt;span class="x"&gt;…&lt;/span&gt;
&lt;/span&gt;&lt;span class=’line’&gt;
&lt;/span&gt;&lt;span class=’line’&gt;&lt;span class="x"&gt;{ % compress css % }&lt;/span&gt;
&lt;/span&gt;&lt;span class=’line’&gt;&lt;span class="x"&gt;&amp;lt;link rel=&amp;quot;stylesheet&amp;quot; href=&amp;quot;&lt;/span&gt;&lt;span class="cp"&gt;&lt;/span&gt;&lt;span class="x"&gt;css/base.scss&amp;quot; media=&amp;quot;screen&amp;quot;&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;span class=’line’&gt;&lt;span class="x"&gt;{ % endcompress % }&lt;/span&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;/figure&gt;


&lt;p&gt;Dealssss with &lt;a href="http://docs.djangoproject.com/en/dev/topics/cache/"&gt;caching&lt;/a&gt; when you deploy.&lt;/p&gt;

&lt;p&gt;Perhaps pip install &lt;code&gt;python-memcached&lt;/code&gt; then put something like this in
&lt;code&gt;settings.py&lt;/code&gt;&lt;/p&gt;

&lt;figure class=’code’&gt;&lt;figcaption&gt;&lt;span&gt;&lt;/span&gt;&lt;/figcaption&gt;&lt;div class="highlight"&gt;&lt;table&gt;&lt;tr&gt;&lt;td class="gutter"&gt;&lt;pre class="line-numbers"&gt;&lt;span class=’line-number’&gt;1&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;&lt;td class=’code’&gt;&lt;pre&gt;&lt;code class=’python’&gt;&lt;span class=’line’&gt;&lt;span class="n"&gt;CACHE_BACKEND&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s"&gt;&amp;#39;memcached://127.0.0.1:11211/&amp;#39;&lt;/span&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;/figure&gt;


&lt;p&gt;Write some nice Sass.&lt;/p&gt;

&lt;figure class=’code’&gt;&lt;figcaption&gt;&lt;span&gt;Your snazzy Sass file&lt;/span&gt;&lt;/figcaption&gt;&lt;div class="highlight"&gt;&lt;table&gt;&lt;tr&gt;&lt;td class="gutter"&gt;&lt;pre class="line-numbers"&gt;&lt;span class=’line-number’&gt;1&lt;/span&gt;
&lt;span class=’line-number’&gt;2&lt;/span&gt;
&lt;span class=’line-number’&gt;3&lt;/span&gt;
&lt;span class=’line-number’&gt;4&lt;/span&gt;
&lt;span class=’line-number’&gt;5&lt;/span&gt;
&lt;span class=’line-number’&gt;6&lt;/span&gt;
&lt;span class=’line-number’&gt;7&lt;/span&gt;
&lt;span class=’line-number’&gt;8&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;&lt;td class=’code’&gt;&lt;pre&gt;&lt;code class=’sass’&gt;&lt;span class=’line’&gt;&lt;span class="nv"&gt;$orange&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt; &lt;span class="mh"&gt;#EE8529&lt;/span&gt;&lt;span class="err"&gt;;&lt;/span&gt;
&lt;/span&gt;&lt;span class=’line’&gt;
&lt;/span&gt;&lt;span class=’line’&gt;&lt;span class="nt"&gt;ul&lt;/span&gt; &lt;span class="err"&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;span class=’line’&gt;  &lt;span class="na"&gt;font-size&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt; &lt;span class="mi"&gt;26&lt;/span&gt;&lt;span class="kt"&gt;px&lt;/span&gt;&lt;span class="err"&gt;;&lt;/span&gt;
&lt;/span&gt;&lt;span class=’line’&gt;  &lt;span class="nt"&gt;li&lt;/span&gt; &lt;span class="err"&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;span class=’line’&gt;      &lt;span class="na"&gt;color&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt; &lt;span class="nv"&gt;$orange&lt;/span&gt;&lt;span class="err"&gt;;&lt;/span&gt;
&lt;/span&gt;&lt;span class=’line’&gt;  &lt;span class="err"&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;span class=’line’&gt;&lt;span class="err"&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;/figure&gt;

&lt;img src="http://feeds.feedburner.com/~r/SolutionsLog/~4/io0ljEBxhF4" height="1" width="1"/&gt;</content>
  <feedburner:origLink>http://solutions.trey.cc/2010/08/22/using-sass-with-django/</feedburner:origLink></entry>
  
  <entry>
    <title>Create a JavaScript Object with Overwrite-able Settings</title>
    <link href="http://feedproxy.google.com/~r/SolutionsLog/~3/yIvXlSAomAI/" />
    <updated>2010-06-09T15:43:20-05:00</updated>
    <id>http://solutions.trey.cc/2010/06/09/create-a-javascript-object-with-overwrite-able-settings</id>
    <content type="html">&lt;figure class=’code’&gt;&lt;figcaption&gt;&lt;span&gt;&lt;/span&gt;&lt;/figcaption&gt;&lt;div class="highlight"&gt;&lt;table&gt;&lt;tr&gt;&lt;td class="gutter"&gt;&lt;pre class="line-numbers"&gt;&lt;span class=’line-number’&gt;1&lt;/span&gt;
&lt;span class=’line-number’&gt;2&lt;/span&gt;
&lt;span class=’line-number’&gt;3&lt;/span&gt;
&lt;span class=’line-number’&gt;4&lt;/span&gt;
&lt;span class=’line-number’&gt;5&lt;/span&gt;
&lt;span class=’line-number’&gt;6&lt;/span&gt;
&lt;span class=’line-number’&gt;7&lt;/span&gt;
&lt;span class=’line-number’&gt;8&lt;/span&gt;
&lt;span class=’line-number’&gt;9&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;&lt;td class=’code’&gt;&lt;pre&gt;&lt;code class=’javascript’&gt;&lt;span class=’line’&gt;&lt;span class="kd"&gt;var&lt;/span&gt; &lt;span class="nx"&gt;Fancy&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;span class=’line’&gt;  &lt;span class="nx"&gt;settings&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;span class=’line’&gt;      &lt;span class="nx"&gt;something&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;one&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;span class=’line’&gt;      &lt;span class="nx"&gt;somethingElse&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;two&amp;#39;&lt;/span&gt;
&lt;/span&gt;&lt;span class=’line’&gt;  &lt;span class="p"&gt;},&lt;/span&gt;
&lt;/span&gt;&lt;span class=’line’&gt;  &lt;span class="nx"&gt;init&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt; &lt;span class="kd"&gt;function&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;options&lt;/span&gt;&lt;span class="p"&gt;){&lt;/span&gt;
&lt;/span&gt;&lt;span class=’line’&gt;      &lt;span class="kd"&gt;var&lt;/span&gt; &lt;span class="nx"&gt;s&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nx"&gt;$&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;extend&lt;/span&gt;&lt;span class="p"&gt;({},&lt;/span&gt; &lt;span class="k"&gt;this&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;settings&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;options&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;/span&gt;&lt;span class=’line’&gt;  &lt;span class="p"&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;span class=’line’&gt;&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;/figure&gt;


&lt;p&gt;Call it like so:&lt;/p&gt;

&lt;figure class=’code’&gt;&lt;figcaption&gt;&lt;span&gt;&lt;/span&gt;&lt;/figcaption&gt;&lt;div class="highlight"&gt;&lt;table&gt;&lt;tr&gt;&lt;td class="gutter"&gt;&lt;pre class="line-numbers"&gt;&lt;span class=’line-number’&gt;1&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;&lt;td class=’code’&gt;&lt;pre&gt;&lt;code class=’javascript’&gt;&lt;span class=’line’&gt;&lt;span class="nx"&gt;Fancy&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;init&lt;/span&gt;&lt;span class="p"&gt;({&lt;/span&gt;&lt;span class="nx"&gt;something&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;Luke&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;somethingElse&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;Wroblewski&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;});&lt;/span&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;/figure&gt;


&lt;p&gt;That&amp;#8217;s one way to do it anyway.&lt;/p&gt;
&lt;img src="http://feeds.feedburner.com/~r/SolutionsLog/~4/yIvXlSAomAI" height="1" width="1"/&gt;</content>
  <feedburner:origLink>http://solutions.trey.cc/2010/06/09/create-a-javascript-object-with-overwrite-able-settings/</feedburner:origLink></entry>
  
  <entry>
    <title>Passing a JavaScript Function as a Parameter to Another Function</title>
    <link href="http://feedproxy.google.com/~r/SolutionsLog/~3/ylG7Ua9hU18/" />
    <updated>2010-06-09T15:36:25-05:00</updated>
    <id>http://solutions.trey.cc/2010/06/09/passing-a-javascript-function-as-a-parameter-to-another-function</id>
    <content type="html">&lt;pre&gt;&lt;code&gt;function makeItRain (effect) {
    $(‘#something’)[effect]();
}

makeItRain(‘slideToggle’);
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;Note the lack of a &amp;#8217;&lt;code&gt;.&lt;/code&gt;&amp;#8217; and the &amp;#8217;&lt;code&gt;[]&lt;/code&gt;&amp;#8217;s.&lt;/p&gt;

&lt;h3&gt;Source&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="http://twitter.com/hciudad"&gt;Hernán&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;img src="http://feeds.feedburner.com/~r/SolutionsLog/~4/ylG7Ua9hU18" height="1" width="1"/&gt;</content>
  <feedburner:origLink>http://solutions.trey.cc/2010/06/09/passing-a-javascript-function-as-a-parameter-to-another-function/</feedburner:origLink></entry>
  
  <entry>
    <title>Installing MySQL on Snow Leopard using Homebrew</title>
    <link href="http://feedproxy.google.com/~r/SolutionsLog/~3/jaH_Y7c_X6Y/" />
    <updated>2010-02-28T12:42:59-06:00</updated>
    <id>http://solutions.trey.cc/2010/02/28/installing-mysql-on-snow-leopard-using-homebrew</id>
    <content type="html">&lt;p&gt;If you already have a &lt;a href="http://hivelogic.com/articles/using_usr_local"&gt;&lt;code&gt;/usr/local&lt;/code&gt;&lt;/a&gt; folder and it&amp;#8217;s not owned by your user:&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;sudo chown -R `whoami` /usr/local
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;Install &lt;a href="http://github.com/mxcl/homebrew"&gt;Homebrew&lt;/a&gt;:&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;cd /usr/local
git init
git remote add origin git://github.com/mxcl/homebrew.git
git pull origin master
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;This is kind of odd&amp;#8211;you install Homebrew right into the base of your &lt;code&gt;/usr/local&lt;/code&gt; folder.  It nicely ignores other folders that already exists there.  Just do it.&lt;/p&gt;

&lt;p&gt;Install MySQL:&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;brew install mysql
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;Yeah, it&amp;#8217;s really that easy.  This will take a while.&lt;/p&gt;

&lt;p&gt;Now warm it up:&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;mysql_install_db
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;And make sure it automatically starts again on login:&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;launchctl load -w /usr/local/Cellar/mysql/5.1.43/com.mysql.mysqld.plist
&lt;/code&gt;&lt;/pre&gt;
&lt;img src="http://feeds.feedburner.com/~r/SolutionsLog/~4/jaH_Y7c_X6Y" height="1" width="1"/&gt;</content>
  <feedburner:origLink>http://solutions.trey.cc/2010/02/28/installing-mysql-on-snow-leopard-using-homebrew/</feedburner:origLink></entry>
  
  <entry>
    <title>The mate Shell Command for TextMate</title>
    <link href="http://feedproxy.google.com/~r/SolutionsLog/~3/uoezzcHX8UA/" />
    <updated>2010-02-25T13:56:50-06:00</updated>
    <id>http://solutions.trey.cc/2010/02/25/the-mate-shell-command-for-textmate</id>
    <content type="html">&lt;p&gt;I keep having to look this up.&lt;/p&gt;

&lt;p&gt;To add the &lt;code&gt;mate&lt;/code&gt; shell command, select the Help menu from within TextMate and select &lt;code&gt;"Terminal Usage…"&lt;/code&gt;&lt;/p&gt;

&lt;h3&gt;Source&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="http://blog.macromates.com/2007/leopard-issues/"&gt;TextMate blog&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;img src="http://feeds.feedburner.com/~r/SolutionsLog/~4/uoezzcHX8UA" height="1" width="1"/&gt;</content>
  <feedburner:origLink>http://solutions.trey.cc/2010/02/25/the-mate-shell-command-for-textmate/</feedburner:origLink></entry>
  
  <entry>
    <title>Using Dropbox to Share Git Repositories</title>
    <link href="http://feedproxy.google.com/~r/SolutionsLog/~3/5CQYdiTnSDM/" />
    <updated>2010-02-22T16:02:38-06:00</updated>
    <id>http://solutions.trey.cc/2010/02/22/using-dropbox-to-share-git-repositories</id>
    <content type="html">&lt;p&gt;First, create a Git subfolder inside your Dropbox folder. Then you can share the individual projects inside that folder with whomever you want (or just use it for instant offsite backups).&lt;/p&gt;

&lt;p&gt;From inside a Git project:&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;git clone –bare . ~/Dropbox/Git/gitproject.git
git remote add dropbox ~/Dropbox/Git/gitproject.git
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;When you&amp;#8217;re ready to push:&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;git push dropbox master
&lt;/code&gt;&lt;/pre&gt;

&lt;h3&gt;Your Collaborator&amp;#8217;s View&lt;/h3&gt;

&lt;p&gt;Your collaborator would work on the project like so (inside the folder where they want their project to live):&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;git clone ~/Dropbox/Git/gitproject.git
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;If they want to have a &lt;code&gt;dropbox&lt;/code&gt; remote instead of the default &lt;code&gt;origin&lt;/code&gt;:&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;git remote add dropbox ~/Dropbox/Git/gitproject.git
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;They would then push the same way:&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;git push dropbox master
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;To get the other person&amp;#8217;s changes, it&amp;#8217;s the standard deal:&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;git pull dropbox master
&lt;/code&gt;&lt;/pre&gt;

&lt;h3&gt;Source&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="http://www.cimgf.com/2008/06/03/version-control-makes-you-a-better-programmer/"&gt;Cocoa Is My Girlfriend&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;img src="http://feeds.feedburner.com/~r/SolutionsLog/~4/5CQYdiTnSDM" height="1" width="1"/&gt;</content>
  <feedburner:origLink>http://solutions.trey.cc/2010/02/22/using-dropbox-to-share-git-repositories/</feedburner:origLink></entry>
  
  <entry>
    <title>Create Your Own Local Copy of the Django Documentation</title>
    <link href="http://feedproxy.google.com/~r/SolutionsLog/~3/fXCiUK7w9J8/" />
    <updated>2010-01-10T03:46:50-06:00</updated>
    <id>http://solutions.trey.cc/2010/01/10/local-django-documentation</id>
    <content type="html">&lt;pre&gt;&lt;code&gt;sudo easy_install Sphinx
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;Inside your local SVN checkout of Django:&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;cd docs
make html
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;Now you&amp;#8217;ll have a beautiful local copy of the documentation to browse for those rare moments when you&amp;#8217;re away from the internet (perhaps you&amp;#8217;re &lt;a href="http://djangocon.blip.tv/file/3040084/"&gt;in a fort&lt;/a&gt;?). Just point your browser to:&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;file:///path/to/your/django/docs/_build/html/index.html
&lt;/code&gt;&lt;/pre&gt;

&lt;h3&gt;Source&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="http://eddymulyono.livejournal.com/74322.html"&gt;eddymulyono&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;img src="http://feeds.feedburner.com/~r/SolutionsLog/~4/fXCiUK7w9J8" height="1" width="1"/&gt;</content>
  <feedburner:origLink>http://solutions.trey.cc/2010/01/10/local-django-documentation/</feedburner:origLink></entry>
  
  <entry>
    <title>Getting Django + MySQL running again on Snow Leopard</title>
    <link href="http://feedproxy.google.com/~r/SolutionsLog/~3/qxVUxoSSUcg/" />
    <updated>2010-01-04T21:03:20-06:00</updated>
    <id>http://solutions.trey.cc/2010/01/04/django-on-snow-leopard</id>
    <content type="html">&lt;h3&gt;&lt;a href="http://solutions.trey.cc/2008/02/26/installing-django-on-os-x-leopard/"&gt;Previously&amp;hellip;&lt;/a&gt;&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Install the latest Xcode Tools from your Snow Leopard installation DVD&lt;/li&gt;
&lt;li&gt;Re symlink things to &lt;code&gt;/Library/Python/2.6/site-packages&lt;/code&gt; (Leopard used 2.5)

&lt;ul&gt;
&lt;li&gt;Django&lt;/li&gt;
&lt;li&gt;Any other thing you had symlink&amp;#8217;d in 2.5&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;


&lt;h3&gt;MySQL + Python&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="http://hivelogic.com/articles/compiling-mysql-on-snow-leopard/"&gt;Install MySQL from source like Dan says&lt;/a&gt; but use the &lt;a href="http://dev.mysql.com/downloads/mysql/5.1.html#source"&gt;latest version of MySQL &lt;/a&gt; (5.1.42 in my case) instead of the version he says to use.&lt;/li&gt;
&lt;li&gt;Install MySQL-Python like &lt;a href="http://stackoverflow.com/questions/1299013/problem-using-mysqldb-symbol-not-found-mysqlaffectedrows/1303895#1303895"&gt;the top answer on this Stack Overflow question&lt;/a&gt;.&lt;/li&gt;
&lt;/ul&gt;


&lt;p&gt;After all that &lt;a href="http://www.sequelpro.com/"&gt;Sequel Pro&lt;/a&gt; is still showing the version of MySQL as 5.1.33, but it seems to be working&amp;hellip;&lt;/p&gt;

&lt;h3&gt;PIL&lt;/h3&gt;

&lt;p&gt;This was by far the biggest headache. I finally found &lt;a href="http://ronny.haryan.to/archives/2008/09/12/psycopg2-and-64-bit-apache-on-leopard/"&gt;a solution&lt;/a&gt;:&lt;/p&gt;

&lt;p&gt;Install &lt;a href="http://solutions.trey.cc/2008/02/26/things-you-probably-want-to-install-to-get-the-most-out-of-django/"&gt;like this&lt;/a&gt;, but before running &lt;code&gt;sudo python setup.py install&lt;/code&gt;, do this:&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;LDFLAGS="-arch ppc -arch i386 -arch x86_64" CFLAGS="-arch ppc -arch i386 -arch x86_64" python setup.py build
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;If you already had PIL installed and had the source files you compiled from before, be sure to delete them and start fresh from a new &lt;a href="http://effbot.org/downloads/Imaging-1.1.6.tar.gz"&gt;Imaging-1.1.6.tar.gz&lt;/a&gt;.&lt;/p&gt;
&lt;img src="http://feeds.feedburner.com/~r/SolutionsLog/~4/qxVUxoSSUcg" height="1" width="1"/&gt;</content>
  <feedburner:origLink>http://solutions.trey.cc/2010/01/04/django-on-snow-leopard/</feedburner:origLink></entry>
  
  <entry>
    <title>Using the jQuery Autocomplete Plugin with Django</title>
    <link href="http://feedproxy.google.com/~r/SolutionsLog/~3/WCh4sr1m2k4/" />
    <updated>2009-12-10T17:08:22-06:00</updated>
    <id>http://solutions.trey.cc/2009/12/10/using-jquery-autocomplete-with-django</id>
    <content type="html">&lt;p&gt;Here&amp;#8217;s another look into the development of &lt;a href="http://comicbinder.com"&gt;ComicBinder&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;There&amp;#8217;s already &lt;a href="http://lethain.com/entry/2007/dec/01/using-jquery-django-autocomplete-fields/"&gt;a good tutorial on how to use an autocomplete plugin with Django&lt;/a&gt;, but I wanted to use &lt;a href="http://bassistance.de/jquery-plugins/jquery-plugin-autocomplete/"&gt;this much snazzier plugin&lt;/a&gt;.&lt;/p&gt;

&lt;h3&gt;The Process&lt;/h3&gt;

&lt;p&gt;Load both &lt;code&gt;jquery.autocomplete.min.js&lt;/code&gt; and &lt;code&gt;jquery.autocomplete.css&lt;/code&gt; in your page.&lt;/p&gt;

&lt;p&gt;In your form object, create a &lt;code&gt;CharField&lt;/code&gt; to hold your autocomplete. Something like:&lt;/p&gt;

&lt;figure class=’code’&gt;&lt;figcaption&gt;&lt;span&gt;&lt;/span&gt;&lt;/figcaption&gt;&lt;div class="highlight"&gt;&lt;table&gt;&lt;tr&gt;&lt;td class="gutter"&gt;&lt;pre class="line-numbers"&gt;&lt;span class=’line-number’&gt;1&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;&lt;td class=’code’&gt;&lt;pre&gt;&lt;code class=’python’&gt;&lt;span class=’line’&gt;&lt;span class="n"&gt;title&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;forms&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;CharField&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;label&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s"&gt;&amp;#39;&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;widget&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="n"&gt;forms&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;TextInput&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;attrs&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="s"&gt;&amp;#39;placeholder&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s"&gt;&amp;#39;The name of a comic&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;}))&lt;/span&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;/figure&gt;


&lt;p&gt;Create a hidden field to hold the primary key of the item you&amp;#8217;re selecting (so you don&amp;#8217;t have to depend on searching against a &amp;#8216;name&amp;#8217; field or something else equally brittle):&lt;/p&gt;

&lt;figure class=’code’&gt;&lt;figcaption&gt;&lt;span&gt;&lt;/span&gt;&lt;/figcaption&gt;&lt;div class="highlight"&gt;&lt;table&gt;&lt;tr&gt;&lt;td class="gutter"&gt;&lt;pre class="line-numbers"&gt;&lt;span class=’line-number’&gt;1&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;&lt;td class=’code’&gt;&lt;pre&gt;&lt;code class=’python’&gt;&lt;span class=’line’&gt;&lt;span class="n"&gt;title_pk&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;forms&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;IntegerField&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;widget&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="n"&gt;forms&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;HiddenInput&lt;/span&gt;&lt;span class="p"&gt;())&lt;/span&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;/figure&gt;


&lt;p&gt;Create a view to populate the autocomplete list:&lt;/p&gt;

&lt;figure class=’code’&gt;&lt;figcaption&gt;&lt;span&gt;&lt;/span&gt;&lt;/figcaption&gt;&lt;div class="highlight"&gt;&lt;table&gt;&lt;tr&gt;&lt;td class="gutter"&gt;&lt;pre class="line-numbers"&gt;&lt;span class=’line-number’&gt;1&lt;/span&gt;
&lt;span class=’line-number’&gt;2&lt;/span&gt;
&lt;span class=’line-number’&gt;3&lt;/span&gt;
&lt;span class=’line-number’&gt;4&lt;/span&gt;
&lt;span class=’line-number’&gt;5&lt;/span&gt;
&lt;span class=’line-number’&gt;6&lt;/span&gt;
&lt;span class=’line-number’&gt;7&lt;/span&gt;
&lt;span class=’line-number’&gt;8&lt;/span&gt;
&lt;span class=’line-number’&gt;9&lt;/span&gt;
&lt;span class=’line-number’&gt;10&lt;/span&gt;
&lt;span class=’line-number’&gt;11&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;&lt;td class=’code’&gt;&lt;pre&gt;&lt;code class=’python’&gt;&lt;span class=’line’&gt;&lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;title_lookup&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;request&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;
&lt;/span&gt;&lt;span class=’line’&gt;    &lt;span class="n"&gt;results&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;[]&lt;/span&gt;
&lt;/span&gt;&lt;span class=’line’&gt;    &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="n"&gt;request&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;method&lt;/span&gt; &lt;span class="o"&gt;==&lt;/span&gt; &lt;span class="s"&gt;&amp;quot;GET&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
&lt;/span&gt;&lt;span class=’line’&gt;        &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="n"&gt;request&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;GET&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;has_key&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;u&amp;#39;q&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;
&lt;/span&gt;&lt;span class=’line’&gt;            &lt;span class="n"&gt;value&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;request&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;GET&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="s"&gt;u&amp;#39;q&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;
&lt;/span&gt;&lt;span class=’line’&gt;            &lt;span class="c"&gt;# Ignore queries shorter than length 3&lt;/span&gt;
&lt;/span&gt;&lt;span class=’line’&gt;            &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="nb"&gt;len&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;value&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="o"&gt;&amp;gt;&lt;/span&gt; &lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
&lt;/span&gt;&lt;span class=’line’&gt;                &lt;span class="n"&gt;model_results&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;Title&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;objects&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;filter&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;name__icontains&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="n"&gt;value&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;span class=’line’&gt;                &lt;span class="n"&gt;results&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;x&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;__unicode__&lt;/span&gt;&lt;span class="p"&gt;(),&lt;/span&gt; &lt;span class="n"&gt;x&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;id&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="k"&gt;for&lt;/span&gt; &lt;span class="n"&gt;x&lt;/span&gt; &lt;span class="ow"&gt;in&lt;/span&gt; &lt;span class="n"&gt;model_results&lt;/span&gt; &lt;span class="p"&gt;]&lt;/span&gt;
&lt;/span&gt;&lt;span class=’line’&gt;    &lt;span class="n"&gt;json&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;simplejson&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;dumps&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;results&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;span class=’line’&gt;    &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="n"&gt;HttpResponse&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;json&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;mimetype&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s"&gt;&amp;#39;application/json&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;/figure&gt;


&lt;p&gt;This will, of course, need a URLconf:&lt;/p&gt;

&lt;figure class=’code’&gt;&lt;figcaption&gt;&lt;span&gt;&lt;/span&gt;&lt;/figcaption&gt;&lt;div class="highlight"&gt;&lt;table&gt;&lt;tr&gt;&lt;td class="gutter"&gt;&lt;pre class="line-numbers"&gt;&lt;span class=’line-number’&gt;1&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;&lt;td class=’code’&gt;&lt;pre&gt;&lt;code class=’python’&gt;&lt;span class=’line’&gt;&lt;span class="n"&gt;url&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;r&amp;#39;^title_lookup/$&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;view&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="n"&gt;title_lookup&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;name&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s"&gt;&amp;#39;title_lookup&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;),&lt;/span&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;/figure&gt;


&lt;p&gt;And to finish it off, a bit of JavaScript in your template to call the plugin:&lt;/p&gt;

&lt;figure class=’code’&gt;&lt;figcaption&gt;&lt;span&gt;&lt;/span&gt;&lt;/figcaption&gt;&lt;div class="highlight"&gt;&lt;table&gt;&lt;tr&gt;&lt;td class="gutter"&gt;&lt;pre class="line-numbers"&gt;&lt;span class=’line-number’&gt;1&lt;/span&gt;
&lt;span class=’line-number’&gt;2&lt;/span&gt;
&lt;span class=’line-number’&gt;3&lt;/span&gt;
&lt;span class=’line-number’&gt;4&lt;/span&gt;
&lt;span class=’line-number’&gt;5&lt;/span&gt;
&lt;span class=’line-number’&gt;6&lt;/span&gt;
&lt;span class=’line-number’&gt;7&lt;/span&gt;
&lt;span class=’line-number’&gt;8&lt;/span&gt;
&lt;span class=’line-number’&gt;9&lt;/span&gt;
&lt;span class=’line-number’&gt;10&lt;/span&gt;
&lt;span class=’line-number’&gt;11&lt;/span&gt;
&lt;span class=’line-number’&gt;12&lt;/span&gt;
&lt;span class=’line-number’&gt;13&lt;/span&gt;
&lt;span class=’line-number’&gt;14&lt;/span&gt;
&lt;span class=’line-number’&gt;15&lt;/span&gt;
&lt;span class=’line-number’&gt;16&lt;/span&gt;
&lt;span class=’line-number’&gt;17&lt;/span&gt;
&lt;span class=’line-number’&gt;18&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;&lt;td class=’code’&gt;&lt;pre&gt;&lt;code class=’javascript’&gt;&lt;span class=’line’&gt;&lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nx"&gt;script&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;span class=’line’&gt;    &lt;span class="nx"&gt;$&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="kd"&gt;function&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;span class=’line’&gt;        &lt;span class="nx"&gt;$&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;#id_title&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;).&lt;/span&gt;&lt;span class="nx"&gt;autocomplete&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;{ % url title_lookup % }&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;span class=’line’&gt;            &lt;span class="nx"&gt;dataType&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;json&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;span class=’line’&gt;            &lt;span class="nx"&gt;width&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt; &lt;span class="mi"&gt;500&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;span class=’line’&gt;            &lt;span class="nx"&gt;parse&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt; &lt;span class="kd"&gt;function&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;data&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;span class=’line’&gt;                &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="nx"&gt;$&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;map&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;data&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="kd"&gt;function&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;row&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;span class=’line’&gt;                    &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="nx"&gt;data&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt;&lt;span class="nx"&gt;row&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;value&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt;&lt;span class="nx"&gt;row&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;],&lt;/span&gt; &lt;span class="nx"&gt;result&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt;&lt;span class="nx"&gt;row&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt; &lt;span class="p"&gt;};&lt;/span&gt;
&lt;/span&gt;&lt;span class=’line’&gt;                &lt;span class="p"&gt;});&lt;/span&gt;
&lt;/span&gt;&lt;span class=’line’&gt;            &lt;span class="p"&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;span class=’line’&gt;            &lt;span class="p"&gt;}).&lt;/span&gt;&lt;span class="nx"&gt;result&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
&lt;/span&gt;&lt;span class=’line’&gt;                &lt;span class="kd"&gt;function&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;e&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;data&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;value&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;span class=’line’&gt;                    &lt;span class="nx"&gt;$&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;#id_title_pk&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;).&lt;/span&gt;&lt;span class="nx"&gt;val&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;value&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;/span&gt;&lt;span class=’line’&gt;                &lt;span class="p"&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;span class=’line’&gt;            &lt;span class="p"&gt;);&lt;/span&gt;
&lt;/span&gt;&lt;span class=’line’&gt;        &lt;span class="p"&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;span class=’line’&gt;    &lt;span class="p"&gt;);&lt;/span&gt;
&lt;/span&gt;&lt;span class=’line’&gt;&lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="err"&gt;/script&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;/figure&gt;


&lt;h3&gt;Sources&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="http://bassistance.de/jquery-plugins/jquery-plugin-autocomplete/"&gt;The Plugin&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://lethain.com/entry/2007/dec/01/using-jquery-django-autocomplete-fields/"&gt;Using JQuery with Django for Autocomplete&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://postpostmodern.com"&gt;JTJ&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;img src="http://feeds.feedburner.com/~r/SolutionsLog/~4/WCh4sr1m2k4" height="1" width="1"/&gt;</content>
  <feedburner:origLink>http://solutions.trey.cc/2009/12/10/using-jquery-autocomplete-with-django/</feedburner:origLink></entry>
  
  <entry>
    <title>Smart URL Redirects in Django</title>
    <link href="http://feedproxy.google.com/~r/SolutionsLog/~3/KH_x9WpUXio/" />
    <updated>2009-12-02T17:50:07-06:00</updated>
    <id>http://solutions.trey.cc/2009/12/02/smart-url-redirects-in-django</id>
    <content type="html">&lt;p&gt;While building &lt;a href="http://comicbinder.com"&gt;ComicBinder&lt;/a&gt;&amp;#8217;s URLs, I wanted a way to differentiate a volume of a title other than one, and a printing of an issue other than one. So, for example, a URL to the second printing of the second volume of Amazing Spider-Man #1 would look like:&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;/marvel/amazing-spider-man_2/1_2/
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;That&amp;#8217;s easy enough with some &lt;code&gt;URLconf&lt;/code&gt; wrangling. What I&amp;#8217;m talking about today is automatically redirecting a request for &lt;code&gt;_1&lt;/code&gt; in any of those places to the same URL without the &lt;code&gt;_1&lt;/code&gt;. While technically correct, I want the lack of underscore + number to mean one, and for there to be only one URL for a resource (someone send me a link to a clever article that talks about this).&lt;/p&gt;

&lt;p&gt;&lt;code&gt;django.views.generic.simple.redirect_to&lt;/code&gt; to the rescue. Try something like this:&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;(r’^(?P&amp;lt;publisher&amp;gt;[-\w]+)/(?P&amp;lt;title&amp;gt;[-\w]+)_1/(?P&amp;lt;number&amp;gt;\d+)_1/$’, ‘django.views.generic.simple.redirect_to’, {‘url’: ‘/%(publisher)s/%(title)s/%(number)s/’}),
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;I made a few of these to account for situations where it was the first volume, but nothing specified for printing, and vise versa.&lt;/p&gt;

&lt;p&gt;Not too bulky, and since I have that sitting near the normal rule, it shouldn&amp;#8217;t put me out too much to update it if I make any changes.&lt;/p&gt;

&lt;h3&gt;Source&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="http://docs.djangoproject.com/en/dev/ref/generic-views/#django-views-generic-simple-redirect-to"&gt;Django Documentation&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;img src="http://feeds.feedburner.com/~r/SolutionsLog/~4/KH_x9WpUXio" height="1" width="1"/&gt;</content>
  <feedburner:origLink>http://solutions.trey.cc/2009/12/02/smart-url-redirects-in-django/</feedburner:origLink></entry>
  
  <entry>
    <title>How to Log Something</title>
    <link href="http://feedproxy.google.com/~r/SolutionsLog/~3/-DQnO9K2c_I/" />
    <updated>2009-11-09T16:55:42-06:00</updated>
    <id>http://solutions.trey.cc/2009/11/09/how-to-log-something</id>
    <content type="html">&lt;h3&gt;With The Django Debug Toolbar&lt;/h3&gt;

&lt;p&gt;Somewhere in your Python code (not a template):&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;import logging
logging.debug(something_you_want_to_log)
&lt;/code&gt;&lt;/pre&gt;

&lt;h3&gt;With Firebug&lt;/h3&gt;

&lt;p&gt;Somewhere in your JavaScript or the Firebug Console:&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;console.log(something_you_want_to_log);
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;That was easy.&lt;/p&gt;

&lt;h3&gt;Sources&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="http://eatshitnerds.com/"&gt;Alex&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://getfirebug.com/console.html"&gt;Firebug Console API&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;img src="http://feeds.feedburner.com/~r/SolutionsLog/~4/-DQnO9K2c_I" height="1" width="1"/&gt;</content>
  <feedburner:origLink>http://solutions.trey.cc/2009/11/09/how-to-log-something/</feedburner:origLink></entry>
  
</feed>

