Generate Pelican site

master
J. Fernando Sánchez 8 years ago
parent 7ccf8c97ee
commit 6cf7727b87

@ -91,6 +91,8 @@
<div class="entries">
<h2 class="title">Latest entries</h2>
<dl>
<dt><a href="/progress-bars-in-python.html">Progress bars in python</a></dt>
<dd class="tag"><a class="label" href="/tag/python.html">python</a></dd>
<dt><a href="/arch-linux-fixes.html">Arch Linux Fixes</a></dt>
<dd class="tag"><a class="label" href="/tag/arch.html">arch</a></dd>
<dd class="tag"><a class="label" href="/tag/linux.html">linux</a></dd>
@ -108,12 +110,6 @@
<dd class="tag"><a class="label" href="/tag/webdav.html">webdav</a></dd>
<dd class="tag"><a class="label" href="/tag/nginx.html">nginx</a></dd>
<dd class="tag"><a class="label" href="/tag/apache.html">apache</a></dd>
<dt><a href="/proxies-with-apache-and-python.html">Proxies with Apache and python</a></dt>
<dd class="tag"><a class="label" href="/tag/python.html">python</a></dd>
<dd class="tag"><a class="label" href="/tag/apache.html">apache</a></dd>
<dd class="tag"><a class="label" href="/tag/proxy.html">proxy</a></dd>
<dd class="tag"><a class="label" href="/tag/gunicorn.html">gunicorn</a></dd>
<dd class="tag"><a class="label" href="/tag/uwsgi.html">uwsgi</a></dd>
</dl>
</div>
@ -123,6 +119,7 @@
<!--Body content-->
<div class="postnav">
<span class="previouspost"><i class="fa fa-chevron-left"></i> <a href="org-mode-tricks.html">Org-mode tricks</a></span>
<span class='nextpost'><a href="/progress-bars-in-python.html">Progress bars in python</a> <i class="fa fa-chevron-right"></i></span>
</div>
<div class="posthead">
<h2 class="title">Arch Linux Fixes</h2>
@ -136,7 +133,7 @@
<h2>Black screen and LightDM doesn't unlock</h2>
<p>Add this to your <cite>/etc/lightdm/lightdm.conf</cite> file:</p>
<table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre>1
2</pre></div></td><td class="code"><div class="highlight"><pre><span class="k">[LightDM]</span>
2</pre></div></td><td class="code"><div class="highlight"><pre><span></span><span class="k">[LightDM]</span>
<span class="na">logind-check-graphical</span><span class="o">=</span><span class="s">true</span>
</pre></div>
</td></tr></table></div>

@ -89,6 +89,8 @@
<div class="entries">
<h2 class="title">Latest entries</h2>
<dl>
<dt><a href="/progress-bars-in-python.html">Progress bars in python</a></dt>
<dd class="tag"><a class="label" href="/tag/python.html">python</a></dd>
<dt><a href="/arch-linux-fixes.html">Arch Linux Fixes</a></dt>
<dd class="tag"><a class="label" href="/tag/arch.html">arch</a></dd>
<dd class="tag"><a class="label" href="/tag/linux.html">linux</a></dd>
@ -106,12 +108,6 @@
<dd class="tag"><a class="label" href="/tag/webdav.html">webdav</a></dd>
<dd class="tag"><a class="label" href="/tag/nginx.html">nginx</a></dd>
<dd class="tag"><a class="label" href="/tag/apache.html">apache</a></dd>
<dt><a href="/proxies-with-apache-and-python.html">Proxies with Apache and python</a></dt>
<dd class="tag"><a class="label" href="/tag/python.html">python</a></dd>
<dd class="tag"><a class="label" href="/tag/apache.html">apache</a></dd>
<dd class="tag"><a class="label" href="/tag/proxy.html">proxy</a></dd>
<dd class="tag"><a class="label" href="/tag/gunicorn.html">gunicorn</a></dd>
<dd class="tag"><a class="label" href="/tag/uwsgi.html">uwsgi</a></dd>
</dl>
</div>
@ -122,6 +118,8 @@
<h1>Archives for balkian.com</h1>
<dl>
<dt>Wed 28 September 2016</dt>
<dd><a href="http://balkian.com/progress-bars-in-python.html">Progress bars in python</a></dd>
<dt>Wed 03 February 2016</dt>
<dd><a href="http://balkian.com/arch-linux-fixes.html">Arch Linux Fixes</a></dd>
<dt>Thu 10 December 2015</dt>

@ -89,6 +89,8 @@
<div class="entries">
<h2 class="title">Latest entries</h2>
<dl>
<dt><a href="/progress-bars-in-python.html">Progress bars in python</a></dt>
<dd class="tag"><a class="label" href="/tag/python.html">python</a></dd>
<dt><a href="/arch-linux-fixes.html">Arch Linux Fixes</a></dt>
<dd class="tag"><a class="label" href="/tag/arch.html">arch</a></dd>
<dd class="tag"><a class="label" href="/tag/linux.html">linux</a></dd>
@ -106,12 +108,6 @@
<dd class="tag"><a class="label" href="/tag/webdav.html">webdav</a></dd>
<dd class="tag"><a class="label" href="/tag/nginx.html">nginx</a></dd>
<dd class="tag"><a class="label" href="/tag/apache.html">apache</a></dd>
<dt><a href="/proxies-with-apache-and-python.html">Proxies with Apache and python</a></dt>
<dd class="tag"><a class="label" href="/tag/python.html">python</a></dd>
<dd class="tag"><a class="label" href="/tag/apache.html">apache</a></dd>
<dd class="tag"><a class="label" href="/tag/proxy.html">proxy</a></dd>
<dd class="tag"><a class="label" href="/tag/gunicorn.html">gunicorn</a></dd>
<dd class="tag"><a class="label" href="/tag/uwsgi.html">uwsgi</a></dd>
</dl>
</div>
@ -126,6 +122,27 @@
</div>
<!-- This loops through the paginated posts -->
<div class="posthead">
<h2><a href="/progress-bars-in-python.html" class="title">Progress bars in python</a></h2>
<span class="date">2016-09-28</span>
<a class="tag" href="/tag/python.html"><span class="label">python</span></a>
</div>
<div class="excerpt">
<p><a class="reference external" href="https://github.com/noamraph/tqdm">tqdm</a> is a nice way to add progress bars in the command line or in a jupyter notebook.</p>
<img alt="" src="https://camo.githubusercontent.com/48838faaa8d00ea297f18e5bf55d3c6bb4e0ba6b/68747470733a2f2f692e696d6775722e636f6d2f686539417735432e676966" />
<table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre>1
2
3
4
5</pre></div></td><td class="code"><div class="highlight"><pre><span></span><span class="kn">from</span> <span class="nn">tqdm</span> <span class="kn">import</span> <span class="n">tqdm</span>
<span class="kn">import</span> <span class="nn">time</span>
<span class="k">for</span> <span class="n">i</span> <span class="ow">in</span> <span class="n">tqdm</span><span class="p">(</span><span class="nb">range</span><span class="p">(</span><span class="mi">100</span><span class="p">)):</span>
<span class="n">time</span><span class="o">.</span><span class="n">sleep</span><span class="p">(</span><span class="mi">1</span><span class="p">)</span>
</pre></div>
</td></tr></table>
</div>
<div class="readmore"><a href="/progress-bars-in-python.html"><i class="fa fa-external-link"></i> Read more...</a></div>
<div class="posthead">
<h2><a href="/arch-linux-fixes.html" class="title">Arch Linux Fixes</a></h2>
<span class="date">2016-02-03</span>
@ -137,7 +154,7 @@
<h2>Black screen and LightDM doesn't unlock</h2>
<p>Add this to your <cite>/etc/lightdm/lightdm.conf</cite> file:</p>
<table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre>1
2</pre></div></td><td class="code"><div class="highlight"><pre><span class="k">[LightDM]</span>
2</pre></div></td><td class="code"><div class="highlight"><pre><span></span><span class="k">[LightDM]</span>
<span class="na">logind-check-graphical</span><span class="o">=</span><span class="s">true</span>
</pre></div>
</td></tr></table></div>
@ -155,7 +172,7 @@
<div class="excerpt">
<div class="section" id="show-plain-text-version">
<h2>Show plain text version</h2>
<table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre>1</pre></div></td><td class="code"><div class="highlight"><pre><span class="p">(</span><span class="nv">font-lock-mode</span><span class="p">)</span>
<table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre>1</pre></div></td><td class="code"><div class="highlight"><pre><span></span><span class="p">(</span><span class="nv">font-lock-mode</span><span class="p">)</span>
</pre></div>
</td></tr></table></div>
@ -209,7 +226,7 @@ a WSGI application with the name <em>application</em>. Hence, wsgi:application.<
2
3
4
5</pre></div></td><td class="code"><div class="highlight"><pre><span class="nt">&lt;Location</span> <span class="s">/myapp/</span><span class="nt">&gt;</span>
5</pre></div></td><td class="code"><div class="highlight"><pre><span></span><span class="nt">&lt;Location</span> <span class="s">/myapp/</span><span class="nt">&gt;</span>
<span class="nb">ProxyPass</span> http://127.0.0 ...</pre></div></td></tr></table></div>
</div>
<div class="readmore"><a href="/proxies-with-apache-and-python.html"><i class="fa fa-external-link"></i> Read more...</a></div>
@ -251,7 +268,7 @@ gathered from media in several languages. Then we aggregated ...</p>
<div class="excerpt">
<p>A simple trick. If you want to remove all the '.swp' files from a git
repository, just use:</p>
<table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre>1</pre></div></td><td class="code"><div class="highlight"><pre>git rm --cached <span class="s1">&#39;\*\*.swp&#39;</span>
<table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre>1</pre></div></td><td class="code"><div class="highlight"><pre><span></span>git rm --cached <span class="s1">&#39;\*\*.swp&#39;</span>
</pre></div>
</td></tr></table>
</div>

@ -89,6 +89,8 @@
<div class="entries">
<h2 class="title">Latest entries</h2>
<dl>
<dt><a href="/progress-bars-in-python.html">Progress bars in python</a></dt>
<dd class="tag"><a class="label" href="/tag/python.html">python</a></dd>
<dt><a href="/arch-linux-fixes.html">Arch Linux Fixes</a></dt>
<dd class="tag"><a class="label" href="/tag/arch.html">arch</a></dd>
<dd class="tag"><a class="label" href="/tag/linux.html">linux</a></dd>
@ -106,12 +108,6 @@
<dd class="tag"><a class="label" href="/tag/webdav.html">webdav</a></dd>
<dd class="tag"><a class="label" href="/tag/nginx.html">nginx</a></dd>
<dd class="tag"><a class="label" href="/tag/apache.html">apache</a></dd>
<dt><a href="/proxies-with-apache-and-python.html">Proxies with Apache and python</a></dt>
<dd class="tag"><a class="label" href="/tag/python.html">python</a></dd>
<dd class="tag"><a class="label" href="/tag/apache.html">apache</a></dd>
<dd class="tag"><a class="label" href="/tag/proxy.html">proxy</a></dd>
<dd class="tag"><a class="label" href="/tag/gunicorn.html">gunicorn</a></dd>
<dd class="tag"><a class="label" href="/tag/uwsgi.html">uwsgi</a></dd>
</dl>
</div>
@ -121,7 +117,7 @@
<!--Body content-->
<h1>Authors on balkian.com</h1>
<ul> <li><a href="http://balkian.com/author/j-fernando-sanchez.html">J. Fernando Sánchez</a> (9)</li>
<ul> <li><a href="http://balkian.com/author/j-fernando-sanchez.html">J. Fernando Sánchez</a> (10)</li>
</ul>
</div>
<div class="clear"></div>

@ -89,6 +89,8 @@
<div class="entries">
<h2 class="title">Latest entries</h2>
<dl>
<dt><a href="/progress-bars-in-python.html">Progress bars in python</a></dt>
<dd class="tag"><a class="label" href="/tag/python.html">python</a></dd>
<dt><a href="/arch-linux-fixes.html">Arch Linux Fixes</a></dt>
<dd class="tag"><a class="label" href="/tag/arch.html">arch</a></dd>
<dd class="tag"><a class="label" href="/tag/linux.html">linux</a></dd>
@ -106,12 +108,6 @@
<dd class="tag"><a class="label" href="/tag/webdav.html">webdav</a></dd>
<dd class="tag"><a class="label" href="/tag/nginx.html">nginx</a></dd>
<dd class="tag"><a class="label" href="/tag/apache.html">apache</a></dd>
<dt><a href="/proxies-with-apache-and-python.html">Proxies with Apache and python</a></dt>
<dd class="tag"><a class="label" href="/tag/python.html">python</a></dd>
<dd class="tag"><a class="label" href="/tag/apache.html">apache</a></dd>
<dd class="tag"><a class="label" href="/tag/proxy.html">proxy</a></dd>
<dd class="tag"><a class="label" href="/tag/gunicorn.html">gunicorn</a></dd>
<dd class="tag"><a class="label" href="/tag/uwsgi.html">uwsgi</a></dd>
</dl>
</div>

@ -123,7 +123,7 @@
<h2>Black screen and LightDM doesn't unlock</h2>
<p>Add this to your <cite>/etc/lightdm/lightdm.conf</cite> file:</p>
<table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre>1
2</pre></div></td><td class="code"><div class="highlight"><pre><span class="k">[LightDM]</span>
2</pre></div></td><td class="code"><div class="highlight"><pre><span></span><span class="k">[LightDM]</span>
<span class="na">logind-check-graphical</span><span class="o">=</span><span class="s">true</span>
</pre></div>
</td></tr></table></div>
@ -141,7 +141,7 @@
<div class="excerpt">
<div class="section" id="show-plain-text-version">
<h2>Show plain text version</h2>
<table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre>1</pre></div></td><td class="code"><div class="highlight"><pre><span class="p">(</span><span class="nv">font-lock-mode</span><span class="p">)</span>
<table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre>1</pre></div></td><td class="code"><div class="highlight"><pre><span></span><span class="p">(</span><span class="nv">font-lock-mode</span><span class="p">)</span>
</pre></div>
</td></tr></table></div>

@ -90,6 +90,8 @@
<div class="entries">
<h2 class="title">Latest entries</h2>
<dl>
<dt><a href="/progress-bars-in-python.html">Progress bars in python</a></dt>
<dd class="tag"><a class="label" href="/tag/python.html">python</a></dd>
<dt><a href="/sharing-dotfiles.html">Sharing dotfiles</a></dt>
<dd class="tag"><a class="label" href="/tag/github.html">github</a></dd>
<dd class="tag"><a class="label" href="/tag/git.html">git</a></dd>
@ -109,10 +111,6 @@
<dd class="tag"><a class="label" href="/tag/github.html">github</a></dd>
<dd class="tag"><a class="label" href="/tag/python.html">python</a></dd>
<dd class="tag"><a class="label" href="/tag/pypi.html">pypi</a></dd>
<dt><a href="/updating-eurolovemap.html">Updating EuroLoveMap</a></dt>
<dd class="tag"><a class="label" href="/tag/javascript.html">javascript</a></dd>
<dd class="tag"><a class="label" href="/tag/python.html">python</a></dd>
<dd class="tag"><a class="label" href="/tag/heroku.html">heroku</a></dd>
</dl>
</div>
@ -127,6 +125,27 @@
</div>
<!-- This loops through the paginated posts -->
<div class="posthead">
<h2><a href="/progress-bars-in-python.html" class="title">Progress bars in python</a></h2>
<span class="date">2016-09-28</span>
<a class="tag" href="/tag/python.html"><span class="label">python</span></a>
</div>
<div class="excerpt">
<p><a class="reference external" href="https://github.com/noamraph/tqdm">tqdm</a> is a nice way to add progress bars in the command line or in a jupyter notebook.</p>
<img alt="" src="https://camo.githubusercontent.com/48838faaa8d00ea297f18e5bf55d3c6bb4e0ba6b/68747470733a2f2f692e696d6775722e636f6d2f686539417735432e676966" />
<table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre>1
2
3
4
5</pre></div></td><td class="code"><div class="highlight"><pre><span></span><span class="kn">from</span> <span class="nn">tqdm</span> <span class="kn">import</span> <span class="n">tqdm</span>
<span class="kn">import</span> <span class="nn">time</span>
<span class="k">for</span> <span class="n">i</span> <span class="ow">in</span> <span class="n">tqdm</span><span class="p">(</span><span class="nb">range</span><span class="p">(</span><span class="mi">100</span><span class="p">)):</span>
<span class="n">time</span><span class="o">.</span><span class="n">sleep</span><span class="p">(</span><span class="mi">1</span><span class="p">)</span>
</pre></div>
</td></tr></table>
</div>
<div class="readmore"><a href="/progress-bars-in-python.html"><i class="fa fa-external-link"></i> Read more...</a></div>
<div class="posthead">
<h2><a href="/sharing-dotfiles.html" class="title">Sharing dotfiles</a></h2>
<span class="date">2015-04-10</span>
@ -175,7 +194,7 @@ a WSGI application with the name <em>application</em>. Hence, wsgi:application.<
2
3
4
5</pre></div></td><td class="code"><div class="highlight"><pre><span class="nt">&lt;Location</span> <span class="s">/myapp/</span><span class="nt">&gt;</span>
5</pre></div></td><td class="code"><div class="highlight"><pre><span></span><span class="nt">&lt;Location</span> <span class="s">/myapp/</span><span class="nt">&gt;</span>
<span class="nb">ProxyPass</span> http://127.0.0 ...</pre></div></td></tr></table></div>
</div>
<div class="readmore"><a href="/proxies-with-apache-and-python.html"><i class="fa fa-external-link"></i> Read more...</a></div>
@ -217,7 +236,7 @@ gathered from media in several languages. Then we aggregated ...</p>
<div class="excerpt">
<p>A simple trick. If you want to remove all the '.swp' files from a git
repository, just use:</p>
<table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre>1</pre></div></td><td class="code"><div class="highlight"><pre>git rm --cached <span class="s1">&#39;\*\*.swp&#39;</span>
<table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre>1</pre></div></td><td class="code"><div class="highlight"><pre><span></span>git rm --cached <span class="s1">&#39;\*\*.swp&#39;</span>
</pre></div>
</td></tr></table>
</div>

@ -91,6 +91,8 @@
<div class="entries">
<h2 class="title">Latest entries</h2>
<dl>
<dt><a href="/progress-bars-in-python.html">Progress bars in python</a></dt>
<dd class="tag"><a class="label" href="/tag/python.html">python</a></dd>
<dt><a href="/arch-linux-fixes.html">Arch Linux Fixes</a></dt>
<dd class="tag"><a class="label" href="/tag/arch.html">arch</a></dd>
<dd class="tag"><a class="label" href="/tag/linux.html">linux</a></dd>
@ -108,12 +110,6 @@
<dd class="tag"><a class="label" href="/tag/webdav.html">webdav</a></dd>
<dd class="tag"><a class="label" href="/tag/nginx.html">nginx</a></dd>
<dd class="tag"><a class="label" href="/tag/apache.html">apache</a></dd>
<dt><a href="/proxies-with-apache-and-python.html">Proxies with Apache and python</a></dt>
<dd class="tag"><a class="label" href="/tag/python.html">python</a></dd>
<dd class="tag"><a class="label" href="/tag/apache.html">apache</a></dd>
<dd class="tag"><a class="label" href="/tag/proxy.html">proxy</a></dd>
<dd class="tag"><a class="label" href="/tag/gunicorn.html">gunicorn</a></dd>
<dd class="tag"><a class="label" href="/tag/uwsgi.html">uwsgi</a></dd>
</dl>
</div>
@ -163,7 +159,7 @@ on Github</a>. You can
clone and deploy it easily like this:</p>
<table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre>1
2
3</pre></div></td><td class="code"><div class="highlight"><pre>git clone
3</pre></div></td><td class="code"><div class="highlight"><pre><span></span>git clone
https://github.com/balkian/balkian.github.com <span class="nb">cd</span> balkian.github.com
jekyll serve -w
</pre></div>

@ -1,15 +1,27 @@
<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom"><title>balkian.com</title><link href="http://balkian.com/" rel="alternate"></link><link href="http://balkian.com/feeds/all.atom.xml" rel="self"></link><id>http://balkian.com/</id><updated>2016-02-03T20:00:00+01:00</updated><entry><title>Arch Linux Fixes</title><link href="http://balkian.com/arch-linux-fixes.html" rel="alternate"></link><updated>2016-02-03T20:00:00+01:00</updated><author><name>J. Fernando Sánchez</name></author><id>tag:balkian.com,2016-02-03:arch-linux-fixes.html</id><summary type="html">&lt;div class="section" id="black-screen-and-lightdm-doesn-t-unlock"&gt;
<feed xmlns="http://www.w3.org/2005/Atom"><title>balkian.com</title><link href="http://balkian.com/" rel="alternate"></link><link href="http://balkian.com/feeds/all.atom.xml" rel="self"></link><id>http://balkian.com/</id><updated>2016-09-28T18:47:00+02:00</updated><entry><title>Progress bars in python</title><link href="http://balkian.com/progress-bars-in-python.html" rel="alternate"></link><updated>2016-09-28T18:47:00+02:00</updated><author><name>J. Fernando Sánchez</name></author><id>tag:balkian.com,2016-09-28:progress-bars-in-python.html</id><summary type="html">&lt;p&gt;&lt;a class="reference external" href="https://github.com/noamraph/tqdm"&gt;tqdm&lt;/a&gt; is a nice way to add progress bars in the command line or in a jupyter notebook.&lt;/p&gt;
&lt;img alt="" src="https://camo.githubusercontent.com/48838faaa8d00ea297f18e5bf55d3c6bb4e0ba6b/68747470733a2f2f692e696d6775722e636f6d2f686539417735432e676966" /&gt;
&lt;table class="highlighttable"&gt;&lt;tr&gt;&lt;td class="linenos"&gt;&lt;div class="linenodiv"&gt;&lt;pre&gt;1
2
3
4
5&lt;/pre&gt;&lt;/div&gt;&lt;/td&gt;&lt;td class="code"&gt;&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;span class="kn"&gt;from&lt;/span&gt; &lt;span class="nn"&gt;tqdm&lt;/span&gt; &lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;tqdm&lt;/span&gt;
&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;time&lt;/span&gt;
&lt;span class="k"&gt;for&lt;/span&gt; &lt;span class="n"&gt;i&lt;/span&gt; &lt;span class="ow"&gt;in&lt;/span&gt; &lt;span class="n"&gt;tqdm&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nb"&gt;range&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;100&lt;/span&gt;&lt;span class="p"&gt;)):&lt;/span&gt;
&lt;span class="n"&gt;time&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;sleep&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;/pre&gt;&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</summary><category term="python"></category></entry><entry><title>Arch Linux Fixes</title><link href="http://balkian.com/arch-linux-fixes.html" rel="alternate"></link><updated>2016-02-03T20:00:00+01:00</updated><author><name>J. Fernando Sánchez</name></author><id>tag:balkian.com,2016-02-03:arch-linux-fixes.html</id><summary type="html">&lt;div class="section" id="black-screen-and-lightdm-doesn-t-unlock"&gt;
&lt;h2&gt;Black screen and LightDM doesn't unlock&lt;/h2&gt;
&lt;p&gt;Add this to your &lt;cite&gt;/etc/lightdm/lightdm.conf&lt;/cite&gt; file:&lt;/p&gt;
&lt;table class="highlighttable"&gt;&lt;tr&gt;&lt;td class="linenos"&gt;&lt;div class="linenodiv"&gt;&lt;pre&gt;1
2&lt;/pre&gt;&lt;/div&gt;&lt;/td&gt;&lt;td class="code"&gt;&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span class="k"&gt;[LightDM]&lt;/span&gt;
2&lt;/pre&gt;&lt;/div&gt;&lt;/td&gt;&lt;td class="code"&gt;&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;span class="k"&gt;[LightDM]&lt;/span&gt;
&lt;span class="na"&gt;logind-check-graphical&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s"&gt;true&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;
</summary><category term="arch"></category><category term="linux"></category></entry><entry><title>Org-mode tricks</title><link href="http://balkian.com/org-mode-tricks.html" rel="alternate"></link><updated>2015-12-10T11:34:00+01:00</updated><author><name>J. Fernando Sánchez</name></author><id>tag:balkian.com,2015-12-10:org-mode-tricks.html</id><summary type="html">&lt;div class="section" id="show-plain-text-version"&gt;
&lt;h2&gt;Show plain text version&lt;/h2&gt;
&lt;table class="highlighttable"&gt;&lt;tr&gt;&lt;td class="linenos"&gt;&lt;div class="linenodiv"&gt;&lt;pre&gt;1&lt;/pre&gt;&lt;/div&gt;&lt;/td&gt;&lt;td class="code"&gt;&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;font-lock-mode&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;table class="highlighttable"&gt;&lt;tr&gt;&lt;td class="linenos"&gt;&lt;div class="linenodiv"&gt;&lt;pre&gt;1&lt;/pre&gt;&lt;/div&gt;&lt;/td&gt;&lt;td class="code"&gt;&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;font-lock-mode&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;
</summary><category term="emacs"></category><category term="productivity"></category><category term="editor"></category><category term="org"></category></entry><entry><title>Sharing dotfiles</title><link href="http://balkian.com/sharing-dotfiles.html" rel="alternate"></link><updated>2015-04-10T17:47:00+02:00</updated><author><name>J. Fernando Sánchez</name></author><id>tag:balkian.com,2015-04-10:sharing-dotfiles.html</id><summary type="html">&lt;p&gt;Today's post is half a quick note, half public shaming. In other words, it is a reminder to be very careful with OAuth tokens and passwords.&lt;/p&gt;
@ -19,13 +31,13 @@ This is cool and convenient, unless you &lt;a class="reference external" href="h
&lt;p&gt;So, how can you still share your gitconfig without sharing your password/token with the rest of the world?
Since Git 1.7.0, you can &lt;a class="reference external" href="http://stackoverflow.com/questions/1557183/is-it-possible-to-include-a-file-in-your-gitconfig"&gt;include other files in your gitconfig&lt;/a&gt;.&lt;/p&gt;
&lt;table class="highlighttable"&gt;&lt;tr&gt;&lt;td class="linenos"&gt;&lt;div class="linenodiv"&gt;&lt;pre&gt;1
2&lt;/pre&gt;&lt;/div&gt;&lt;/td&gt;&lt;td class="code"&gt;&lt;div class="highlight"&gt;&lt;pre&gt;[include]
2&lt;/pre&gt;&lt;/div&gt;&lt;/td&gt;&lt;td class="code"&gt;&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;[include]
path = ~/.gitconfig_secret
&lt;/pre&gt;&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;p&gt;And now, in your .gitconfig_secret file, you just have to add this:&lt;/p&gt;
&lt;table class="highlighttable"&gt;&lt;tr&gt;&lt;td class="linenos"&gt;&lt;div class="linenodiv"&gt;&lt;pre&gt;1
2
3&lt;/pre&gt;&lt;/div&gt;&lt;/td&gt;&lt;td class="code"&gt;&lt;div class="highlight"&gt;&lt;pre&gt;[github]
3&lt;/pre&gt;&lt;/div&gt;&lt;/td&gt;&lt;td class="code"&gt;&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;[github]
user = balkian
token = &amp;quot;&amp;lt; Your secret token &amp;gt;&amp;quot;
&lt;/pre&gt;&lt;/div&gt;
@ -41,10 +53,10 @@ Debian/Ubuntu.&lt;/p&gt;
&lt;div class="section" id="setting-up-apache"&gt;
&lt;h2&gt;Setting up Apache&lt;/h2&gt;
&lt;p&gt;First we need to install Apache:&lt;/p&gt;
&lt;table class="highlighttable"&gt;&lt;tr&gt;&lt;td class="linenos"&gt;&lt;div class="linenodiv"&gt;&lt;pre&gt;1&lt;/pre&gt;&lt;/div&gt;&lt;/td&gt;&lt;td class="code"&gt;&lt;div class="highlight"&gt;&lt;pre&gt;sudo apt-get install apache2
&lt;table class="highlighttable"&gt;&lt;tr&gt;&lt;td class="linenos"&gt;&lt;div class="linenodiv"&gt;&lt;pre&gt;1&lt;/pre&gt;&lt;/div&gt;&lt;/td&gt;&lt;td class="code"&gt;&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;sudo apt-get install apache2
&lt;/pre&gt;&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;p&gt;Change the head of &amp;quot;/etc/apache2/sites-enabled/000-default&amp;quot; to:&lt;/p&gt;
&lt;table class="highlighttable"&gt;&lt;tr&gt;&lt;td class="linenos"&gt;&lt;div class="linenodiv"&gt;&lt;pre&gt;1&lt;/pre&gt;&lt;/div&gt;&lt;/td&gt;&lt;td class="code"&gt;&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span class="nt"&gt;&amp;lt;VirtualHost&lt;/span&gt; &lt;span class="s"&gt;*:880&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
&lt;table class="highlighttable"&gt;&lt;tr&gt;&lt;td class="linenos"&gt;&lt;div class="linenodiv"&gt;&lt;pre&gt;1&lt;/pre&gt;&lt;/div&gt;&lt;/td&gt;&lt;td class="code"&gt;&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;span class="nt"&gt;&amp;lt;VirtualHost&lt;/span&gt; &lt;span class="s"&gt;*:880&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;p&gt;Then, create a file /etc/apache2/sites-available/webdav:&lt;/p&gt;
&lt;table class="highlighttable"&gt;&lt;tr&gt;&lt;td class="linenos"&gt;&lt;div class="linenodiv"&gt;&lt;pre&gt; 1
@ -59,7 +71,7 @@ Debian/Ubuntu.&lt;/p&gt;
10
11
12
13&lt;/pre&gt;&lt;/div&gt;&lt;/td&gt;&lt;td class="code"&gt;&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span class="nb"&gt;Alias&lt;/span&gt; &lt;span class="sx"&gt;/dav&lt;/span&gt; &lt;span class="sx"&gt;/home/webdav/dav&lt;/span&gt;
13&lt;/pre&gt;&lt;/div&gt;&lt;/td&gt;&lt;td class="code"&gt;&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;span class="nb"&gt;Alias&lt;/span&gt; &lt;span class="sx"&gt;/dav&lt;/span&gt; &lt;span class="sx"&gt;/home/webdav/dav&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;Location&lt;/span&gt; &lt;span class="s"&gt;/dav&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
&lt;span class="nb"&gt;Dav&lt;/span&gt; &lt;span class="k"&gt;on&lt;/span&gt;
&lt;span class="nb"&gt;Order&lt;/span&gt; Allow,Deny
@ -83,7 +95,7 @@ other application using webdav.&lt;/p&gt;
&lt;table class="highlighttable"&gt;&lt;tr&gt;&lt;td class="linenos"&gt;&lt;div class="linenodiv"&gt;&lt;pre&gt;1
2
3
4&lt;/pre&gt;&lt;/div&gt;&lt;/td&gt;&lt;td class="code"&gt;&lt;div class="highlight"&gt;&lt;pre&gt;sudo adduser webdav
4&lt;/pre&gt;&lt;/div&gt;&lt;/td&gt;&lt;td class="code"&gt;&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;sudo adduser webdav
sudo htpasswd -c /home/webdav/.htpasswd webdav
sudo htpasswd /home/webdav/.htpasswd zotero
sudo mkdir -p /home/webdav/dav/zotero
@ -92,7 +104,7 @@ sudo mkdir -p /home/webdav/dav/zotero
&lt;table class="highlighttable"&gt;&lt;tr&gt;&lt;td class="linenos"&gt;&lt;div class="linenodiv"&gt;&lt;pre&gt;1
2
3
4&lt;/pre&gt;&lt;/div&gt;&lt;/td&gt;&lt;td class="code"&gt;&lt;div class="highlight"&gt;&lt;pre&gt;sudo a2enmod webdav
4&lt;/pre&gt;&lt;/div&gt;&lt;/td&gt;&lt;td class="code"&gt;&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;sudo a2enmod webdav
sudo a2enmod dav_fs
sudo a2ensite webdav
sudo service apache2 restart
@ -110,7 +122,7 @@ cleaner URIs. In your desired site/location, add this:&lt;/p&gt;
4
5
6
7&lt;/pre&gt;&lt;/div&gt;&lt;/td&gt;&lt;td class="code"&gt;&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span class="k"&gt;location&lt;/span&gt; &lt;span class="s"&gt;/dav&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
7&lt;/pre&gt;&lt;/div&gt;&lt;/td&gt;&lt;td class="code"&gt;&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;span class="k"&gt;location&lt;/span&gt; &lt;span class="s"&gt;/dav&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
&lt;span class="kn"&gt;client_max_body_size&lt;/span&gt; &lt;span class="s"&gt;20M&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="kn"&gt;proxy_set_header&lt;/span&gt; &lt;span class="s"&gt;X-Real-IP&lt;/span&gt; &lt;span class="nv"&gt;$remote_addr&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="kn"&gt;proxy_set_header&lt;/span&gt; &lt;span class="s"&gt;X-Forwarded-For&lt;/span&gt; &lt;span class="nv"&gt;$remote_addr&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
@ -119,7 +131,7 @@ cleaner URIs. In your desired site/location, add this:&lt;/p&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;p&gt;Now just reload nginx:&lt;/p&gt;
&lt;table class="highlighttable"&gt;&lt;tr&gt;&lt;td class="linenos"&gt;&lt;div class="linenodiv"&gt;&lt;pre&gt;1&lt;/pre&gt;&lt;/div&gt;&lt;/td&gt;&lt;td class="code"&gt;&lt;div class="highlight"&gt;&lt;pre&gt;sudo service nginx force-reload
&lt;table class="highlighttable"&gt;&lt;tr&gt;&lt;td class="linenos"&gt;&lt;div class="linenodiv"&gt;&lt;pre&gt;1&lt;/pre&gt;&lt;/div&gt;&lt;/td&gt;&lt;td class="code"&gt;&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;sudo service nginx force-reload
&lt;/pre&gt;&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;
&lt;div class="section" id="extras"&gt;
@ -139,7 +151,7 @@ a WSGI application with the name &lt;em&gt;application&lt;/em&gt;. Hence, wsgi:a
2
3
4
5&lt;/pre&gt;&lt;/div&gt;&lt;/td&gt;&lt;td class="code"&gt;&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span class="nt"&gt;&amp;lt;Location&lt;/span&gt; &lt;span class="s"&gt;/myapp/&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
5&lt;/pre&gt;&lt;/div&gt;&lt;/td&gt;&lt;td class="code"&gt;&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;span class="nt"&gt;&amp;lt;Location&lt;/span&gt; &lt;span class="s"&gt;/myapp/&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
&lt;span class="nb"&gt;ProxyPass&lt;/span&gt; http://127.0.0.1:8888/myapp/
&lt;span class="nb"&gt;ProxyPassReverse&lt;/span&gt; http://127.0.0.1:8888/myapp/
&lt;span class="nb"&gt;RequestHeader&lt;/span&gt; set SCRIPT_NAME &lt;span class="s2"&gt;&amp;quot;/myapp/&amp;quot;&lt;/span&gt;
@ -148,7 +160,7 @@ a WSGI application with the name &lt;em&gt;application&lt;/em&gt;. Hence, wsgi:a
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;p&gt;&lt;strong&gt;Important&lt;/strong&gt;: &lt;em&gt;SCRIPT_NAME&lt;/em&gt; and the end of &lt;em&gt;ProxyPass&lt;/em&gt; URL &lt;strong&gt;MUST BE
THE SAME&lt;/strong&gt;. Otherwise, Gunicorn will fail miserably.&lt;/p&gt;
&lt;p&gt;Try it with:&lt;/p&gt;
&lt;table class="highlighttable"&gt;&lt;tr&gt;&lt;td class="linenos"&gt;&lt;div class="linenodiv"&gt;&lt;pre&gt;1&lt;/pre&gt;&lt;/div&gt;&lt;/td&gt;&lt;td class="code"&gt;&lt;div class="highlight"&gt;&lt;pre&gt;venv/bin/gunicorn -w &lt;span class="m"&gt;4&lt;/span&gt; -b 127.0.0.1:8888 --log-file - --access-logfile - wsgi:application
&lt;table class="highlighttable"&gt;&lt;tr&gt;&lt;td class="linenos"&gt;&lt;div class="linenodiv"&gt;&lt;pre&gt;1&lt;/pre&gt;&lt;/div&gt;&lt;/td&gt;&lt;td class="code"&gt;&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;venv/bin/gunicorn -w &lt;span class="m"&gt;4&lt;/span&gt; -b 127.0.0.1:8888 --log-file - --access-logfile - wsgi:application
&lt;/pre&gt;&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;
&lt;div class="section" id="uwsgi"&gt;
@ -158,13 +170,13 @@ options for uwsgi (in a .ini file).&lt;/p&gt;
&lt;table class="highlighttable"&gt;&lt;tr&gt;&lt;td class="linenos"&gt;&lt;div class="linenodiv"&gt;&lt;pre&gt;1
2
3
4&lt;/pre&gt;&lt;/div&gt;&lt;/td&gt;&lt;td class="code"&gt;&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span class="nt"&gt;&amp;lt;Location&lt;/span&gt; &lt;span class="s"&gt;/myapp/&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
4&lt;/pre&gt;&lt;/div&gt;&lt;/td&gt;&lt;td class="code"&gt;&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;span class="nt"&gt;&amp;lt;Location&lt;/span&gt; &lt;span class="s"&gt;/myapp/&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
&lt;span class="nb"&gt;SetHandler&lt;/span&gt; uwsgi_handler
&lt;span class="nb"&gt;uWSGISocker&lt;/span&gt; &lt;span class="m"&gt;127.0.0.1&lt;/span&gt;:8888
&lt;span class="nt"&gt;&amp;lt;/Location&amp;gt;&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;p&gt;Try it with:&lt;/p&gt;
&lt;table class="highlighttable"&gt;&lt;tr&gt;&lt;td class="linenos"&gt;&lt;div class="linenodiv"&gt;&lt;pre&gt;1&lt;/pre&gt;&lt;/div&gt;&lt;/td&gt;&lt;td class="code"&gt;&lt;div class="highlight"&gt;&lt;pre&gt;uwsgi --socket 127.0.0.1:8888 -w wsgi:application
&lt;table class="highlighttable"&gt;&lt;tr&gt;&lt;td class="linenos"&gt;&lt;div class="linenodiv"&gt;&lt;pre&gt;1&lt;/pre&gt;&lt;/div&gt;&lt;/td&gt;&lt;td class="code"&gt;&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;uwsgi --socket 127.0.0.1:8888 -w wsgi:application
&lt;/pre&gt;&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;div class="section" id="extra-supervisor"&gt;
&lt;h3&gt;Extra: Supervisor&lt;/h3&gt;
@ -188,7 +200,7 @@ supervisor config file and let it handle the server for you.&lt;/p&gt;
16
17
18
19&lt;/pre&gt;&lt;/div&gt;&lt;/td&gt;&lt;td class="code"&gt;&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span class="k"&gt;[unix_http_server]&lt;/span&gt;
19&lt;/pre&gt;&lt;/div&gt;&lt;/td&gt;&lt;td class="code"&gt;&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;span class="k"&gt;[unix_http_server]&lt;/span&gt;
&lt;span class="na"&gt;file&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s"&gt;/tmp/myapp.sock ; path to your socket file&lt;/span&gt;
&lt;span class="k"&gt;[supervisord]&lt;/span&gt;
@ -238,7 +250,7 @@ memorability over describing the functionality.&lt;/p&gt;
10
11
12
13&lt;/pre&gt;&lt;/div&gt;&lt;/td&gt;&lt;td class="code"&gt;&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span class="err"&gt;[distutils]&lt;/span&gt; &lt;span class="c1"&gt;# this tells distutils what package indexes you can push to&lt;/span&gt;
13&lt;/pre&gt;&lt;/div&gt;&lt;/td&gt;&lt;td class="code"&gt;&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;span class="err"&gt;[distutils]&lt;/span&gt; &lt;span class="c1"&gt;# this tells distutils what package indexes you can push to&lt;/span&gt;
&lt;span class="na"&gt;index-servers&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s"&gt;&lt;/span&gt;
&lt;span class="s"&gt; pypi # the live PyPI&lt;/span&gt;
&lt;span class="s"&gt; pypitest # test PyPI&lt;/span&gt;
@ -276,7 +288,7 @@ root-dir/ # Any name you want
&lt;div class="section" id="setup-cfg"&gt;
&lt;h3&gt;setup.cfg&lt;/h3&gt;
&lt;table class="highlighttable"&gt;&lt;tr&gt;&lt;td class="linenos"&gt;&lt;div class="linenodiv"&gt;&lt;pre&gt;1
2&lt;/pre&gt;&lt;/div&gt;&lt;/td&gt;&lt;td class="code"&gt;&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span class="k"&gt;[metadata]&lt;/span&gt;
2&lt;/pre&gt;&lt;/div&gt;&lt;/td&gt;&lt;td class="code"&gt;&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;span class="k"&gt;[metadata]&lt;/span&gt;
&lt;span class="na"&gt;description-file&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s"&gt;README.md&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;p&gt;The markdown README is the &lt;em&gt;de facto&lt;/em&gt; standard in Github, but you can
@ -295,7 +307,7 @@ also use rST (reStructuredText), the standard in the python community.&lt;/p&gt;
9
10
11
12&lt;/pre&gt;&lt;/div&gt;&lt;/td&gt;&lt;td class="code"&gt;&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span class="kn"&gt;from&lt;/span&gt; &lt;span class="nn"&gt;distutils.core&lt;/span&gt; &lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;setup&lt;/span&gt;
12&lt;/pre&gt;&lt;/div&gt;&lt;/td&gt;&lt;td class="code"&gt;&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;span class="kn"&gt;from&lt;/span&gt; &lt;span class="nn"&gt;distutils.core&lt;/span&gt; &lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;setup&lt;/span&gt;
&lt;span class="n"&gt;setup&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="s1"&gt;&amp;#39;mypackage&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;span class="n"&gt;packages&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;mypackage&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;],&lt;/span&gt; &lt;span class="c1"&gt;# this must be the same as the name above&lt;/span&gt;
@ -313,7 +325,7 @@ host our package anywhere, but Github is a convenient option. To create
the tarball and the zip packages, you only need to tag a tag in your
repository and push it to github:&lt;/p&gt;
&lt;table class="highlighttable"&gt;&lt;tr&gt;&lt;td class="linenos"&gt;&lt;div class="linenodiv"&gt;&lt;pre&gt;1
2&lt;/pre&gt;&lt;/div&gt;&lt;/td&gt;&lt;td class="code"&gt;&lt;div class="highlight"&gt;&lt;pre&gt;git tag &lt;span class="o"&gt;{&lt;/span&gt;version&lt;span class="o"&gt;}&lt;/span&gt; -m &lt;span class="s2"&gt;&amp;quot;{ Description of this tag/version}&amp;quot;&lt;/span&gt;
2&lt;/pre&gt;&lt;/div&gt;&lt;/td&gt;&lt;td class="code"&gt;&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;git tag &lt;span class="o"&gt;{&lt;/span&gt;version&lt;span class="o"&gt;}&lt;/span&gt; -m &lt;span class="s2"&gt;&amp;quot;{ Description of this tag/version}&amp;quot;&lt;/span&gt;
git push --tags origin master
&lt;/pre&gt;&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;
@ -351,7 +363,7 @@ new technologies and improve it:&lt;/p&gt;
&lt;p&gt;The result can be &lt;a class="reference external" href="http://eurolovemap.herokuapp.com/"&gt;seen here&lt;/a&gt;.&lt;/p&gt;
&lt;div class="section" id="publishing-a-python-3-app-on-heroku"&gt;
&lt;h2&gt;Publishing a Python 3 app on Heroku&lt;/h2&gt;
&lt;table class="highlighttable"&gt;&lt;tr&gt;&lt;td class="linenos"&gt;&lt;div class="linenodiv"&gt;&lt;pre&gt;1&lt;/pre&gt;&lt;/div&gt;&lt;/td&gt;&lt;td class="code"&gt;&lt;div class="highlight"&gt;&lt;pre&gt;mkvirtualenv -p /usr/bin/python3.3 eurolovemap
&lt;table class="highlighttable"&gt;&lt;tr&gt;&lt;td class="linenos"&gt;&lt;div class="linenodiv"&gt;&lt;pre&gt;1&lt;/pre&gt;&lt;/div&gt;&lt;/td&gt;&lt;td class="code"&gt;&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;mkvirtualenv -p /usr/bin/python3.3 eurolovemap
&lt;/pre&gt;&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;p&gt;Since Heroku uses python 2.7 by default, we have to tell it which
version we want, although it supports python 3.4 as well. I couldn't get
@ -360,7 +372,7 @@ python 3.4 working using the
so I used python 3.3 instead, which works fine but is not officially
supported. Just create a file named &lt;em&gt;runtime.txt&lt;/em&gt; in your project root,
with the python version you want to use:&lt;/p&gt;
&lt;table class="highlighttable"&gt;&lt;tr&gt;&lt;td class="linenos"&gt;&lt;div class="linenodiv"&gt;&lt;pre&gt;1&lt;/pre&gt;&lt;/div&gt;&lt;/td&gt;&lt;td class="code"&gt;&lt;div class="highlight"&gt;&lt;pre&gt;python-3.3.1
&lt;table class="highlighttable"&gt;&lt;tr&gt;&lt;td class="linenos"&gt;&lt;div class="linenodiv"&gt;&lt;pre&gt;1&lt;/pre&gt;&lt;/div&gt;&lt;/td&gt;&lt;td class="code"&gt;&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;python-3.3.1
&lt;/pre&gt;&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;p&gt;Don't forget to freeze your dependencies so Heroku can install them:
&lt;tt class="docutils literal"&gt;bash pip freze &amp;gt; requirements.txt&lt;/tt&gt;&lt;/p&gt;
@ -377,7 +389,7 @@ cipher&lt;/a&gt;. Please, don't
use it for any serious application if you are concerned about being
spammed.&lt;/p&gt;
&lt;table class="highlighttable"&gt;&lt;tr&gt;&lt;td class="linenos"&gt;&lt;div class="linenodiv"&gt;&lt;pre&gt;1
2&lt;/pre&gt;&lt;/div&gt;&lt;/td&gt;&lt;td class="code"&gt;&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;blur_email&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;email&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;
2&lt;/pre&gt;&lt;/div&gt;&lt;/td&gt;&lt;td class="code"&gt;&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;blur_email&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;email&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;
&lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="s2"&gt;&amp;quot;&amp;quot;&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;join&lt;/span&gt;&lt;span class="p"&gt;([&lt;/span&gt;&lt;span class="nb"&gt;chr&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nb"&gt;ord&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;i&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="o"&gt;+&lt;/span&gt;&lt;span class="mi"&gt;5&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;i&lt;/span&gt; &lt;span class="ow"&gt;in&lt;/span&gt; &lt;span class="n"&gt;email&lt;/span&gt;&lt;span class="p"&gt;])&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;p&gt;And this is the client side:&lt;/p&gt;
@ -392,7 +404,7 @@ spammed.&lt;/p&gt;
9
10
11
12&lt;/pre&gt;&lt;/div&gt;&lt;/td&gt;&lt;td class="code"&gt;&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span class="nb"&gt;window&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;onload&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;
12&lt;/pre&gt;&lt;/div&gt;&lt;/td&gt;&lt;td class="code"&gt;&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;span class="nb"&gt;window&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;onload&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;elems&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nb"&gt;document&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;getElementsByClassName&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;profile-email&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="k"&gt;for&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="kd"&gt;var&lt;/span&gt; &lt;span class="nx"&gt;e&lt;/span&gt; &lt;span class="k"&gt;in&lt;/span&gt; &lt;span class="nx"&gt;elems&lt;/span&gt;&lt;span class="p"&gt;){&lt;/span&gt;
&lt;span class="kd"&gt;var&lt;/span&gt; &lt;span class="nx"&gt;blur&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nx"&gt;elems&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;innerHTML&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
@ -436,7 +448,7 @@ the &lt;a class="reference external" href="http://slipsum.com/"&gt;Samuel L. Jac
&lt;/div&gt;
</summary><category term="javascript"></category><category term="python"></category><category term="heroku"></category></entry><entry><title>Remove git files with globbing</title><link href="http://balkian.com/remove-git-files-with-globbing.html" rel="alternate"></link><updated>2013-08-22T23:14:00+02:00</updated><author><name>J. Fernando Sánchez</name></author><id>tag:balkian.com,2013-08-22:remove-git-files-with-globbing.html</id><summary type="html">&lt;p&gt;A simple trick. If you want to remove all the '.swp' files from a git
repository, just use:&lt;/p&gt;
&lt;table class="highlighttable"&gt;&lt;tr&gt;&lt;td class="linenos"&gt;&lt;div class="linenodiv"&gt;&lt;pre&gt;1&lt;/pre&gt;&lt;/div&gt;&lt;/td&gt;&lt;td class="code"&gt;&lt;div class="highlight"&gt;&lt;pre&gt;git rm --cached &lt;span class="s1"&gt;&amp;#39;\*\*.swp&amp;#39;&lt;/span&gt;
&lt;table class="highlighttable"&gt;&lt;tr&gt;&lt;td class="linenos"&gt;&lt;div class="linenodiv"&gt;&lt;pre&gt;1&lt;/pre&gt;&lt;/div&gt;&lt;/td&gt;&lt;td class="code"&gt;&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;git rm --cached &lt;span class="s1"&gt;&amp;#39;\*\*.swp&amp;#39;&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</summary><category term="git"></category></entry><entry><title>Creating my web</title><link href="http://balkian.com/creating-my-web.html" rel="alternate"></link><updated>2013-08-22T14:14:22+02:00</updated><author><name>J. Fernando Sánchez</name></author><id>tag:balkian.com,2013-08-22:creating-my-web.html</id><summary type="html">&lt;p&gt;Finally, I've decided to set up a decent personal page. I have settled
for github-pages because I like the idea of keeping my site in a
@ -466,7 +478,7 @@ on Github&lt;/a&gt;. You can
clone and deploy it easily like this:&lt;/p&gt;
&lt;table class="highlighttable"&gt;&lt;tr&gt;&lt;td class="linenos"&gt;&lt;div class="linenodiv"&gt;&lt;pre&gt;1
2
3&lt;/pre&gt;&lt;/div&gt;&lt;/td&gt;&lt;td class="code"&gt;&lt;div class="highlight"&gt;&lt;pre&gt;git clone
3&lt;/pre&gt;&lt;/div&gt;&lt;/td&gt;&lt;td class="code"&gt;&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;git clone
https://github.com/balkian/balkian.github.com &lt;span class="nb"&gt;cd&lt;/span&gt; balkian.github.com
jekyll serve -w
&lt;/pre&gt;&lt;/div&gt;

@ -3,13 +3,13 @@
&lt;h2&gt;Black screen and LightDM doesn't unlock&lt;/h2&gt;
&lt;p&gt;Add this to your &lt;cite&gt;/etc/lightdm/lightdm.conf&lt;/cite&gt; file:&lt;/p&gt;
&lt;table class="highlighttable"&gt;&lt;tr&gt;&lt;td class="linenos"&gt;&lt;div class="linenodiv"&gt;&lt;pre&gt;1
2&lt;/pre&gt;&lt;/div&gt;&lt;/td&gt;&lt;td class="code"&gt;&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span class="k"&gt;[LightDM]&lt;/span&gt;
2&lt;/pre&gt;&lt;/div&gt;&lt;/td&gt;&lt;td class="code"&gt;&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;span class="k"&gt;[LightDM]&lt;/span&gt;
&lt;span class="na"&gt;logind-check-graphical&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s"&gt;true&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;
</summary><category term="arch"></category><category term="linux"></category></entry><entry><title>Org-mode tricks</title><link href="http://balkian.com/org-mode-tricks.html" rel="alternate"></link><updated>2015-12-10T11:34:00+01:00</updated><author><name>J. Fernando Sánchez</name></author><id>tag:balkian.com,2015-12-10:org-mode-tricks.html</id><summary type="html">&lt;div class="section" id="show-plain-text-version"&gt;
&lt;h2&gt;Show plain text version&lt;/h2&gt;
&lt;table class="highlighttable"&gt;&lt;tr&gt;&lt;td class="linenos"&gt;&lt;div class="linenodiv"&gt;&lt;pre&gt;1&lt;/pre&gt;&lt;/div&gt;&lt;/td&gt;&lt;td class="code"&gt;&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;font-lock-mode&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;table class="highlighttable"&gt;&lt;tr&gt;&lt;td class="linenos"&gt;&lt;div class="linenodiv"&gt;&lt;pre&gt;1&lt;/pre&gt;&lt;/div&gt;&lt;/td&gt;&lt;td class="code"&gt;&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;font-lock-mode&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;
</summary><category term="emacs"></category><category term="productivity"></category><category term="editor"></category><category term="org"></category></entry></feed>

@ -1,18 +1,30 @@
<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom"><title>balkian.com</title><link href="http://balkian.com/" rel="alternate"></link><link href="http://balkian.com/feeds/misc.atom.xml" rel="self"></link><id>http://balkian.com/</id><updated>2015-04-10T17:47:00+02:00</updated><entry><title>Sharing dotfiles</title><link href="http://balkian.com/sharing-dotfiles.html" rel="alternate"></link><updated>2015-04-10T17:47:00+02:00</updated><author><name>J. Fernando Sánchez</name></author><id>tag:balkian.com,2015-04-10:sharing-dotfiles.html</id><summary type="html">&lt;p&gt;Today's post is half a quick note, half public shaming. In other words, it is a reminder to be very careful with OAuth tokens and passwords.&lt;/p&gt;
<feed xmlns="http://www.w3.org/2005/Atom"><title>balkian.com</title><link href="http://balkian.com/" rel="alternate"></link><link href="http://balkian.com/feeds/misc.atom.xml" rel="self"></link><id>http://balkian.com/</id><updated>2016-09-28T18:47:00+02:00</updated><entry><title>Progress bars in python</title><link href="http://balkian.com/progress-bars-in-python.html" rel="alternate"></link><updated>2016-09-28T18:47:00+02:00</updated><author><name>J. Fernando Sánchez</name></author><id>tag:balkian.com,2016-09-28:progress-bars-in-python.html</id><summary type="html">&lt;p&gt;&lt;a class="reference external" href="https://github.com/noamraph/tqdm"&gt;tqdm&lt;/a&gt; is a nice way to add progress bars in the command line or in a jupyter notebook.&lt;/p&gt;
&lt;img alt="" src="https://camo.githubusercontent.com/48838faaa8d00ea297f18e5bf55d3c6bb4e0ba6b/68747470733a2f2f692e696d6775722e636f6d2f686539417735432e676966" /&gt;
&lt;table class="highlighttable"&gt;&lt;tr&gt;&lt;td class="linenos"&gt;&lt;div class="linenodiv"&gt;&lt;pre&gt;1
2
3
4
5&lt;/pre&gt;&lt;/div&gt;&lt;/td&gt;&lt;td class="code"&gt;&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;span class="kn"&gt;from&lt;/span&gt; &lt;span class="nn"&gt;tqdm&lt;/span&gt; &lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;tqdm&lt;/span&gt;
&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;time&lt;/span&gt;
&lt;span class="k"&gt;for&lt;/span&gt; &lt;span class="n"&gt;i&lt;/span&gt; &lt;span class="ow"&gt;in&lt;/span&gt; &lt;span class="n"&gt;tqdm&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nb"&gt;range&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;100&lt;/span&gt;&lt;span class="p"&gt;)):&lt;/span&gt;
&lt;span class="n"&gt;time&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;sleep&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;/pre&gt;&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</summary><category term="python"></category></entry><entry><title>Sharing dotfiles</title><link href="http://balkian.com/sharing-dotfiles.html" rel="alternate"></link><updated>2015-04-10T17:47:00+02:00</updated><author><name>J. Fernando Sánchez</name></author><id>tag:balkian.com,2015-04-10:sharing-dotfiles.html</id><summary type="html">&lt;p&gt;Today's post is half a quick note, half public shaming. In other words, it is a reminder to be very careful with OAuth tokens and passwords.&lt;/p&gt;
&lt;p&gt;As part of moving to emacs, I starting using the incredibly useful &lt;a class="reference external" href="https://github.com/defunkt/gist.el"&gt;gh.el&lt;/a&gt;.
When you first use it, the extension saves either your password or an OAuth token in your .gitconfig file.
This is cool and convenient, unless you &lt;a class="reference external" href="https://github.com/balkian/dotfiles"&gt;happen to be publishing your .gitconfig file in a public repo&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;So, how can you still share your gitconfig without sharing your password/token with the rest of the world?
Since Git 1.7.0, you can &lt;a class="reference external" href="http://stackoverflow.com/questions/1557183/is-it-possible-to-include-a-file-in-your-gitconfig"&gt;include other files in your gitconfig&lt;/a&gt;.&lt;/p&gt;
&lt;table class="highlighttable"&gt;&lt;tr&gt;&lt;td class="linenos"&gt;&lt;div class="linenodiv"&gt;&lt;pre&gt;1
2&lt;/pre&gt;&lt;/div&gt;&lt;/td&gt;&lt;td class="code"&gt;&lt;div class="highlight"&gt;&lt;pre&gt;[include]
2&lt;/pre&gt;&lt;/div&gt;&lt;/td&gt;&lt;td class="code"&gt;&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;[include]
path = ~/.gitconfig_secret
&lt;/pre&gt;&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;p&gt;And now, in your .gitconfig_secret file, you just have to add this:&lt;/p&gt;
&lt;table class="highlighttable"&gt;&lt;tr&gt;&lt;td class="linenos"&gt;&lt;div class="linenodiv"&gt;&lt;pre&gt;1
2
3&lt;/pre&gt;&lt;/div&gt;&lt;/td&gt;&lt;td class="code"&gt;&lt;div class="highlight"&gt;&lt;pre&gt;[github]
3&lt;/pre&gt;&lt;/div&gt;&lt;/td&gt;&lt;td class="code"&gt;&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;[github]
user = balkian
token = &amp;quot;&amp;lt; Your secret token &amp;gt;&amp;quot;
&lt;/pre&gt;&lt;/div&gt;
@ -28,10 +40,10 @@ Debian/Ubuntu.&lt;/p&gt;
&lt;div class="section" id="setting-up-apache"&gt;
&lt;h2&gt;Setting up Apache&lt;/h2&gt;
&lt;p&gt;First we need to install Apache:&lt;/p&gt;
&lt;table class="highlighttable"&gt;&lt;tr&gt;&lt;td class="linenos"&gt;&lt;div class="linenodiv"&gt;&lt;pre&gt;1&lt;/pre&gt;&lt;/div&gt;&lt;/td&gt;&lt;td class="code"&gt;&lt;div class="highlight"&gt;&lt;pre&gt;sudo apt-get install apache2
&lt;table class="highlighttable"&gt;&lt;tr&gt;&lt;td class="linenos"&gt;&lt;div class="linenodiv"&gt;&lt;pre&gt;1&lt;/pre&gt;&lt;/div&gt;&lt;/td&gt;&lt;td class="code"&gt;&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;sudo apt-get install apache2
&lt;/pre&gt;&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;p&gt;Change the head of &amp;quot;/etc/apache2/sites-enabled/000-default&amp;quot; to:&lt;/p&gt;
&lt;table class="highlighttable"&gt;&lt;tr&gt;&lt;td class="linenos"&gt;&lt;div class="linenodiv"&gt;&lt;pre&gt;1&lt;/pre&gt;&lt;/div&gt;&lt;/td&gt;&lt;td class="code"&gt;&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span class="nt"&gt;&amp;lt;VirtualHost&lt;/span&gt; &lt;span class="s"&gt;*:880&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
&lt;table class="highlighttable"&gt;&lt;tr&gt;&lt;td class="linenos"&gt;&lt;div class="linenodiv"&gt;&lt;pre&gt;1&lt;/pre&gt;&lt;/div&gt;&lt;/td&gt;&lt;td class="code"&gt;&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;span class="nt"&gt;&amp;lt;VirtualHost&lt;/span&gt; &lt;span class="s"&gt;*:880&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;p&gt;Then, create a file /etc/apache2/sites-available/webdav:&lt;/p&gt;
&lt;table class="highlighttable"&gt;&lt;tr&gt;&lt;td class="linenos"&gt;&lt;div class="linenodiv"&gt;&lt;pre&gt; 1
@ -46,7 +58,7 @@ Debian/Ubuntu.&lt;/p&gt;
10
11
12
13&lt;/pre&gt;&lt;/div&gt;&lt;/td&gt;&lt;td class="code"&gt;&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span class="nb"&gt;Alias&lt;/span&gt; &lt;span class="sx"&gt;/dav&lt;/span&gt; &lt;span class="sx"&gt;/home/webdav/dav&lt;/span&gt;
13&lt;/pre&gt;&lt;/div&gt;&lt;/td&gt;&lt;td class="code"&gt;&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;span class="nb"&gt;Alias&lt;/span&gt; &lt;span class="sx"&gt;/dav&lt;/span&gt; &lt;span class="sx"&gt;/home/webdav/dav&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;Location&lt;/span&gt; &lt;span class="s"&gt;/dav&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
&lt;span class="nb"&gt;Dav&lt;/span&gt; &lt;span class="k"&gt;on&lt;/span&gt;
&lt;span class="nb"&gt;Order&lt;/span&gt; Allow,Deny
@ -70,7 +82,7 @@ other application using webdav.&lt;/p&gt;
&lt;table class="highlighttable"&gt;&lt;tr&gt;&lt;td class="linenos"&gt;&lt;div class="linenodiv"&gt;&lt;pre&gt;1
2
3
4&lt;/pre&gt;&lt;/div&gt;&lt;/td&gt;&lt;td class="code"&gt;&lt;div class="highlight"&gt;&lt;pre&gt;sudo adduser webdav
4&lt;/pre&gt;&lt;/div&gt;&lt;/td&gt;&lt;td class="code"&gt;&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;sudo adduser webdav
sudo htpasswd -c /home/webdav/.htpasswd webdav
sudo htpasswd /home/webdav/.htpasswd zotero
sudo mkdir -p /home/webdav/dav/zotero
@ -79,7 +91,7 @@ sudo mkdir -p /home/webdav/dav/zotero
&lt;table class="highlighttable"&gt;&lt;tr&gt;&lt;td class="linenos"&gt;&lt;div class="linenodiv"&gt;&lt;pre&gt;1
2
3
4&lt;/pre&gt;&lt;/div&gt;&lt;/td&gt;&lt;td class="code"&gt;&lt;div class="highlight"&gt;&lt;pre&gt;sudo a2enmod webdav
4&lt;/pre&gt;&lt;/div&gt;&lt;/td&gt;&lt;td class="code"&gt;&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;sudo a2enmod webdav
sudo a2enmod dav_fs
sudo a2ensite webdav
sudo service apache2 restart
@ -97,7 +109,7 @@ cleaner URIs. In your desired site/location, add this:&lt;/p&gt;
4
5
6
7&lt;/pre&gt;&lt;/div&gt;&lt;/td&gt;&lt;td class="code"&gt;&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span class="k"&gt;location&lt;/span&gt; &lt;span class="s"&gt;/dav&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
7&lt;/pre&gt;&lt;/div&gt;&lt;/td&gt;&lt;td class="code"&gt;&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;span class="k"&gt;location&lt;/span&gt; &lt;span class="s"&gt;/dav&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
&lt;span class="kn"&gt;client_max_body_size&lt;/span&gt; &lt;span class="s"&gt;20M&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="kn"&gt;proxy_set_header&lt;/span&gt; &lt;span class="s"&gt;X-Real-IP&lt;/span&gt; &lt;span class="nv"&gt;$remote_addr&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="kn"&gt;proxy_set_header&lt;/span&gt; &lt;span class="s"&gt;X-Forwarded-For&lt;/span&gt; &lt;span class="nv"&gt;$remote_addr&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
@ -106,7 +118,7 @@ cleaner URIs. In your desired site/location, add this:&lt;/p&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;p&gt;Now just reload nginx:&lt;/p&gt;
&lt;table class="highlighttable"&gt;&lt;tr&gt;&lt;td class="linenos"&gt;&lt;div class="linenodiv"&gt;&lt;pre&gt;1&lt;/pre&gt;&lt;/div&gt;&lt;/td&gt;&lt;td class="code"&gt;&lt;div class="highlight"&gt;&lt;pre&gt;sudo service nginx force-reload
&lt;table class="highlighttable"&gt;&lt;tr&gt;&lt;td class="linenos"&gt;&lt;div class="linenodiv"&gt;&lt;pre&gt;1&lt;/pre&gt;&lt;/div&gt;&lt;/td&gt;&lt;td class="code"&gt;&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;sudo service nginx force-reload
&lt;/pre&gt;&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;
&lt;div class="section" id="extras"&gt;
@ -126,7 +138,7 @@ a WSGI application with the name &lt;em&gt;application&lt;/em&gt;. Hence, wsgi:a
2
3
4
5&lt;/pre&gt;&lt;/div&gt;&lt;/td&gt;&lt;td class="code"&gt;&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span class="nt"&gt;&amp;lt;Location&lt;/span&gt; &lt;span class="s"&gt;/myapp/&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
5&lt;/pre&gt;&lt;/div&gt;&lt;/td&gt;&lt;td class="code"&gt;&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;span class="nt"&gt;&amp;lt;Location&lt;/span&gt; &lt;span class="s"&gt;/myapp/&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
&lt;span class="nb"&gt;ProxyPass&lt;/span&gt; http://127.0.0.1:8888/myapp/
&lt;span class="nb"&gt;ProxyPassReverse&lt;/span&gt; http://127.0.0.1:8888/myapp/
&lt;span class="nb"&gt;RequestHeader&lt;/span&gt; set SCRIPT_NAME &lt;span class="s2"&gt;&amp;quot;/myapp/&amp;quot;&lt;/span&gt;
@ -135,7 +147,7 @@ a WSGI application with the name &lt;em&gt;application&lt;/em&gt;. Hence, wsgi:a
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;p&gt;&lt;strong&gt;Important&lt;/strong&gt;: &lt;em&gt;SCRIPT_NAME&lt;/em&gt; and the end of &lt;em&gt;ProxyPass&lt;/em&gt; URL &lt;strong&gt;MUST BE
THE SAME&lt;/strong&gt;. Otherwise, Gunicorn will fail miserably.&lt;/p&gt;
&lt;p&gt;Try it with:&lt;/p&gt;
&lt;table class="highlighttable"&gt;&lt;tr&gt;&lt;td class="linenos"&gt;&lt;div class="linenodiv"&gt;&lt;pre&gt;1&lt;/pre&gt;&lt;/div&gt;&lt;/td&gt;&lt;td class="code"&gt;&lt;div class="highlight"&gt;&lt;pre&gt;venv/bin/gunicorn -w &lt;span class="m"&gt;4&lt;/span&gt; -b 127.0.0.1:8888 --log-file - --access-logfile - wsgi:application
&lt;table class="highlighttable"&gt;&lt;tr&gt;&lt;td class="linenos"&gt;&lt;div class="linenodiv"&gt;&lt;pre&gt;1&lt;/pre&gt;&lt;/div&gt;&lt;/td&gt;&lt;td class="code"&gt;&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;venv/bin/gunicorn -w &lt;span class="m"&gt;4&lt;/span&gt; -b 127.0.0.1:8888 --log-file - --access-logfile - wsgi:application
&lt;/pre&gt;&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;
&lt;div class="section" id="uwsgi"&gt;
@ -145,13 +157,13 @@ options for uwsgi (in a .ini file).&lt;/p&gt;
&lt;table class="highlighttable"&gt;&lt;tr&gt;&lt;td class="linenos"&gt;&lt;div class="linenodiv"&gt;&lt;pre&gt;1
2
3
4&lt;/pre&gt;&lt;/div&gt;&lt;/td&gt;&lt;td class="code"&gt;&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span class="nt"&gt;&amp;lt;Location&lt;/span&gt; &lt;span class="s"&gt;/myapp/&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
4&lt;/pre&gt;&lt;/div&gt;&lt;/td&gt;&lt;td class="code"&gt;&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;span class="nt"&gt;&amp;lt;Location&lt;/span&gt; &lt;span class="s"&gt;/myapp/&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
&lt;span class="nb"&gt;SetHandler&lt;/span&gt; uwsgi_handler
&lt;span class="nb"&gt;uWSGISocker&lt;/span&gt; &lt;span class="m"&gt;127.0.0.1&lt;/span&gt;:8888
&lt;span class="nt"&gt;&amp;lt;/Location&amp;gt;&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;p&gt;Try it with:&lt;/p&gt;
&lt;table class="highlighttable"&gt;&lt;tr&gt;&lt;td class="linenos"&gt;&lt;div class="linenodiv"&gt;&lt;pre&gt;1&lt;/pre&gt;&lt;/div&gt;&lt;/td&gt;&lt;td class="code"&gt;&lt;div class="highlight"&gt;&lt;pre&gt;uwsgi --socket 127.0.0.1:8888 -w wsgi:application
&lt;table class="highlighttable"&gt;&lt;tr&gt;&lt;td class="linenos"&gt;&lt;div class="linenodiv"&gt;&lt;pre&gt;1&lt;/pre&gt;&lt;/div&gt;&lt;/td&gt;&lt;td class="code"&gt;&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;uwsgi --socket 127.0.0.1:8888 -w wsgi:application
&lt;/pre&gt;&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;div class="section" id="extra-supervisor"&gt;
&lt;h3&gt;Extra: Supervisor&lt;/h3&gt;
@ -175,7 +187,7 @@ supervisor config file and let it handle the server for you.&lt;/p&gt;
16
17
18
19&lt;/pre&gt;&lt;/div&gt;&lt;/td&gt;&lt;td class="code"&gt;&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span class="k"&gt;[unix_http_server]&lt;/span&gt;
19&lt;/pre&gt;&lt;/div&gt;&lt;/td&gt;&lt;td class="code"&gt;&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;span class="k"&gt;[unix_http_server]&lt;/span&gt;
&lt;span class="na"&gt;file&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s"&gt;/tmp/myapp.sock ; path to your socket file&lt;/span&gt;
&lt;span class="k"&gt;[supervisord]&lt;/span&gt;
@ -225,7 +237,7 @@ memorability over describing the functionality.&lt;/p&gt;
10
11
12
13&lt;/pre&gt;&lt;/div&gt;&lt;/td&gt;&lt;td class="code"&gt;&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span class="err"&gt;[distutils]&lt;/span&gt; &lt;span class="c1"&gt;# this tells distutils what package indexes you can push to&lt;/span&gt;
13&lt;/pre&gt;&lt;/div&gt;&lt;/td&gt;&lt;td class="code"&gt;&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;span class="err"&gt;[distutils]&lt;/span&gt; &lt;span class="c1"&gt;# this tells distutils what package indexes you can push to&lt;/span&gt;
&lt;span class="na"&gt;index-servers&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s"&gt;&lt;/span&gt;
&lt;span class="s"&gt; pypi # the live PyPI&lt;/span&gt;
&lt;span class="s"&gt; pypitest # test PyPI&lt;/span&gt;
@ -263,7 +275,7 @@ root-dir/ # Any name you want
&lt;div class="section" id="setup-cfg"&gt;
&lt;h3&gt;setup.cfg&lt;/h3&gt;
&lt;table class="highlighttable"&gt;&lt;tr&gt;&lt;td class="linenos"&gt;&lt;div class="linenodiv"&gt;&lt;pre&gt;1
2&lt;/pre&gt;&lt;/div&gt;&lt;/td&gt;&lt;td class="code"&gt;&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span class="k"&gt;[metadata]&lt;/span&gt;
2&lt;/pre&gt;&lt;/div&gt;&lt;/td&gt;&lt;td class="code"&gt;&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;span class="k"&gt;[metadata]&lt;/span&gt;
&lt;span class="na"&gt;description-file&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s"&gt;README.md&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;p&gt;The markdown README is the &lt;em&gt;de facto&lt;/em&gt; standard in Github, but you can
@ -282,7 +294,7 @@ also use rST (reStructuredText), the standard in the python community.&lt;/p&gt;
9
10
11
12&lt;/pre&gt;&lt;/div&gt;&lt;/td&gt;&lt;td class="code"&gt;&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span class="kn"&gt;from&lt;/span&gt; &lt;span class="nn"&gt;distutils.core&lt;/span&gt; &lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;setup&lt;/span&gt;
12&lt;/pre&gt;&lt;/div&gt;&lt;/td&gt;&lt;td class="code"&gt;&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;span class="kn"&gt;from&lt;/span&gt; &lt;span class="nn"&gt;distutils.core&lt;/span&gt; &lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;setup&lt;/span&gt;
&lt;span class="n"&gt;setup&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="s1"&gt;&amp;#39;mypackage&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;span class="n"&gt;packages&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;mypackage&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;],&lt;/span&gt; &lt;span class="c1"&gt;# this must be the same as the name above&lt;/span&gt;
@ -300,7 +312,7 @@ host our package anywhere, but Github is a convenient option. To create
the tarball and the zip packages, you only need to tag a tag in your
repository and push it to github:&lt;/p&gt;
&lt;table class="highlighttable"&gt;&lt;tr&gt;&lt;td class="linenos"&gt;&lt;div class="linenodiv"&gt;&lt;pre&gt;1
2&lt;/pre&gt;&lt;/div&gt;&lt;/td&gt;&lt;td class="code"&gt;&lt;div class="highlight"&gt;&lt;pre&gt;git tag &lt;span class="o"&gt;{&lt;/span&gt;version&lt;span class="o"&gt;}&lt;/span&gt; -m &lt;span class="s2"&gt;&amp;quot;{ Description of this tag/version}&amp;quot;&lt;/span&gt;
2&lt;/pre&gt;&lt;/div&gt;&lt;/td&gt;&lt;td class="code"&gt;&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;git tag &lt;span class="o"&gt;{&lt;/span&gt;version&lt;span class="o"&gt;}&lt;/span&gt; -m &lt;span class="s2"&gt;&amp;quot;{ Description of this tag/version}&amp;quot;&lt;/span&gt;
git push --tags origin master
&lt;/pre&gt;&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;
@ -338,7 +350,7 @@ new technologies and improve it:&lt;/p&gt;
&lt;p&gt;The result can be &lt;a class="reference external" href="http://eurolovemap.herokuapp.com/"&gt;seen here&lt;/a&gt;.&lt;/p&gt;
&lt;div class="section" id="publishing-a-python-3-app-on-heroku"&gt;
&lt;h2&gt;Publishing a Python 3 app on Heroku&lt;/h2&gt;
&lt;table class="highlighttable"&gt;&lt;tr&gt;&lt;td class="linenos"&gt;&lt;div class="linenodiv"&gt;&lt;pre&gt;1&lt;/pre&gt;&lt;/div&gt;&lt;/td&gt;&lt;td class="code"&gt;&lt;div class="highlight"&gt;&lt;pre&gt;mkvirtualenv -p /usr/bin/python3.3 eurolovemap
&lt;table class="highlighttable"&gt;&lt;tr&gt;&lt;td class="linenos"&gt;&lt;div class="linenodiv"&gt;&lt;pre&gt;1&lt;/pre&gt;&lt;/div&gt;&lt;/td&gt;&lt;td class="code"&gt;&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;mkvirtualenv -p /usr/bin/python3.3 eurolovemap
&lt;/pre&gt;&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;p&gt;Since Heroku uses python 2.7 by default, we have to tell it which
version we want, although it supports python 3.4 as well. I couldn't get
@ -347,7 +359,7 @@ python 3.4 working using the
so I used python 3.3 instead, which works fine but is not officially
supported. Just create a file named &lt;em&gt;runtime.txt&lt;/em&gt; in your project root,
with the python version you want to use:&lt;/p&gt;
&lt;table class="highlighttable"&gt;&lt;tr&gt;&lt;td class="linenos"&gt;&lt;div class="linenodiv"&gt;&lt;pre&gt;1&lt;/pre&gt;&lt;/div&gt;&lt;/td&gt;&lt;td class="code"&gt;&lt;div class="highlight"&gt;&lt;pre&gt;python-3.3.1
&lt;table class="highlighttable"&gt;&lt;tr&gt;&lt;td class="linenos"&gt;&lt;div class="linenodiv"&gt;&lt;pre&gt;1&lt;/pre&gt;&lt;/div&gt;&lt;/td&gt;&lt;td class="code"&gt;&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;python-3.3.1
&lt;/pre&gt;&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;p&gt;Don't forget to freeze your dependencies so Heroku can install them:
&lt;tt class="docutils literal"&gt;bash pip freze &amp;gt; requirements.txt&lt;/tt&gt;&lt;/p&gt;
@ -364,7 +376,7 @@ cipher&lt;/a&gt;. Please, don't
use it for any serious application if you are concerned about being
spammed.&lt;/p&gt;
&lt;table class="highlighttable"&gt;&lt;tr&gt;&lt;td class="linenos"&gt;&lt;div class="linenodiv"&gt;&lt;pre&gt;1
2&lt;/pre&gt;&lt;/div&gt;&lt;/td&gt;&lt;td class="code"&gt;&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;blur_email&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;email&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;
2&lt;/pre&gt;&lt;/div&gt;&lt;/td&gt;&lt;td class="code"&gt;&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;blur_email&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;email&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;
&lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="s2"&gt;&amp;quot;&amp;quot;&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;join&lt;/span&gt;&lt;span class="p"&gt;([&lt;/span&gt;&lt;span class="nb"&gt;chr&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nb"&gt;ord&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;i&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="o"&gt;+&lt;/span&gt;&lt;span class="mi"&gt;5&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;i&lt;/span&gt; &lt;span class="ow"&gt;in&lt;/span&gt; &lt;span class="n"&gt;email&lt;/span&gt;&lt;span class="p"&gt;])&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;p&gt;And this is the client side:&lt;/p&gt;
@ -379,7 +391,7 @@ spammed.&lt;/p&gt;
9
10
11
12&lt;/pre&gt;&lt;/div&gt;&lt;/td&gt;&lt;td class="code"&gt;&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span class="nb"&gt;window&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;onload&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;
12&lt;/pre&gt;&lt;/div&gt;&lt;/td&gt;&lt;td class="code"&gt;&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;span class="nb"&gt;window&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;onload&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;elems&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nb"&gt;document&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;getElementsByClassName&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;profile-email&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="k"&gt;for&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="kd"&gt;var&lt;/span&gt; &lt;span class="nx"&gt;e&lt;/span&gt; &lt;span class="k"&gt;in&lt;/span&gt; &lt;span class="nx"&gt;elems&lt;/span&gt;&lt;span class="p"&gt;){&lt;/span&gt;
&lt;span class="kd"&gt;var&lt;/span&gt; &lt;span class="nx"&gt;blur&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nx"&gt;elems&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;innerHTML&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
@ -423,7 +435,7 @@ the &lt;a class="reference external" href="http://slipsum.com/"&gt;Samuel L. Jac
&lt;/div&gt;
</summary><category term="javascript"></category><category term="python"></category><category term="heroku"></category></entry><entry><title>Remove git files with globbing</title><link href="http://balkian.com/remove-git-files-with-globbing.html" rel="alternate"></link><updated>2013-08-22T23:14:00+02:00</updated><author><name>J. Fernando Sánchez</name></author><id>tag:balkian.com,2013-08-22:remove-git-files-with-globbing.html</id><summary type="html">&lt;p&gt;A simple trick. If you want to remove all the '.swp' files from a git
repository, just use:&lt;/p&gt;
&lt;table class="highlighttable"&gt;&lt;tr&gt;&lt;td class="linenos"&gt;&lt;div class="linenodiv"&gt;&lt;pre&gt;1&lt;/pre&gt;&lt;/div&gt;&lt;/td&gt;&lt;td class="code"&gt;&lt;div class="highlight"&gt;&lt;pre&gt;git rm --cached &lt;span class="s1"&gt;&amp;#39;\*\*.swp&amp;#39;&lt;/span&gt;
&lt;table class="highlighttable"&gt;&lt;tr&gt;&lt;td class="linenos"&gt;&lt;div class="linenodiv"&gt;&lt;pre&gt;1&lt;/pre&gt;&lt;/div&gt;&lt;/td&gt;&lt;td class="code"&gt;&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;git rm --cached &lt;span class="s1"&gt;&amp;#39;\*\*.swp&amp;#39;&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</summary><category term="git"></category></entry><entry><title>Creating my web</title><link href="http://balkian.com/creating-my-web.html" rel="alternate"></link><updated>2013-08-22T14:14:22+02:00</updated><author><name>J. Fernando Sánchez</name></author><id>tag:balkian.com,2013-08-22:creating-my-web.html</id><summary type="html">&lt;p&gt;Finally, I've decided to set up a decent personal page. I have settled
for github-pages because I like the idea of keeping my site in a
@ -453,7 +465,7 @@ on Github&lt;/a&gt;. You can
clone and deploy it easily like this:&lt;/p&gt;
&lt;table class="highlighttable"&gt;&lt;tr&gt;&lt;td class="linenos"&gt;&lt;div class="linenodiv"&gt;&lt;pre&gt;1
2
3&lt;/pre&gt;&lt;/div&gt;&lt;/td&gt;&lt;td class="code"&gt;&lt;div class="highlight"&gt;&lt;pre&gt;git clone
3&lt;/pre&gt;&lt;/div&gt;&lt;/td&gt;&lt;td class="code"&gt;&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;git clone
https://github.com/balkian/balkian.github.com &lt;span class="nb"&gt;cd&lt;/span&gt; balkian.github.com
jekyll serve -w
&lt;/pre&gt;&lt;/div&gt;

@ -89,6 +89,8 @@
<div class="entries">
<h2 class="title">Latest entries</h2>
<dl>
<dt><a href="/progress-bars-in-python.html">Progress bars in python</a></dt>
<dd class="tag"><a class="label" href="/tag/python.html">python</a></dd>
<dt><a href="/arch-linux-fixes.html">Arch Linux Fixes</a></dt>
<dd class="tag"><a class="label" href="/tag/arch.html">arch</a></dd>
<dd class="tag"><a class="label" href="/tag/linux.html">linux</a></dd>
@ -106,12 +108,6 @@
<dd class="tag"><a class="label" href="/tag/webdav.html">webdav</a></dd>
<dd class="tag"><a class="label" href="/tag/nginx.html">nginx</a></dd>
<dd class="tag"><a class="label" href="/tag/apache.html">apache</a></dd>
<dt><a href="/proxies-with-apache-and-python.html">Proxies with Apache and python</a></dt>
<dd class="tag"><a class="label" href="/tag/python.html">python</a></dd>
<dd class="tag"><a class="label" href="/tag/apache.html">apache</a></dd>
<dd class="tag"><a class="label" href="/tag/proxy.html">proxy</a></dd>
<dd class="tag"><a class="label" href="/tag/gunicorn.html">gunicorn</a></dd>
<dd class="tag"><a class="label" href="/tag/uwsgi.html">uwsgi</a></dd>
</dl>
</div>
@ -126,6 +122,27 @@
</div>
<!-- This loops through the paginated posts -->
<div class="posthead">
<h2><a href="/progress-bars-in-python.html" class="title">Progress bars in python</a></h2>
<span class="date">2016-09-28</span>
<a class="tag" href="/tag/python.html"><span class="label">python</span></a>
</div>
<div class="excerpt">
<p><a class="reference external" href="https://github.com/noamraph/tqdm">tqdm</a> is a nice way to add progress bars in the command line or in a jupyter notebook.</p>
<img alt="" src="https://camo.githubusercontent.com/48838faaa8d00ea297f18e5bf55d3c6bb4e0ba6b/68747470733a2f2f692e696d6775722e636f6d2f686539417735432e676966" />
<table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre>1
2
3
4
5</pre></div></td><td class="code"><div class="highlight"><pre><span></span><span class="kn">from</span> <span class="nn">tqdm</span> <span class="kn">import</span> <span class="n">tqdm</span>
<span class="kn">import</span> <span class="nn">time</span>
<span class="k">for</span> <span class="n">i</span> <span class="ow">in</span> <span class="n">tqdm</span><span class="p">(</span><span class="nb">range</span><span class="p">(</span><span class="mi">100</span><span class="p">)):</span>
<span class="n">time</span><span class="o">.</span><span class="n">sleep</span><span class="p">(</span><span class="mi">1</span><span class="p">)</span>
</pre></div>
</td></tr></table>
</div>
<div class="readmore"><a href="/progress-bars-in-python.html"><i class="fa fa-external-link"></i> Read more...</a></div>
<div class="posthead">
<h2><a href="/arch-linux-fixes.html" class="title">Arch Linux Fixes</a></h2>
<span class="date">2016-02-03</span>
@ -137,7 +154,7 @@
<h2>Black screen and LightDM doesn't unlock</h2>
<p>Add this to your <cite>/etc/lightdm/lightdm.conf</cite> file:</p>
<table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre>1
2</pre></div></td><td class="code"><div class="highlight"><pre><span class="k">[LightDM]</span>
2</pre></div></td><td class="code"><div class="highlight"><pre><span></span><span class="k">[LightDM]</span>
<span class="na">logind-check-graphical</span><span class="o">=</span><span class="s">true</span>
</pre></div>
</td></tr></table></div>
@ -155,7 +172,7 @@
<div class="excerpt">
<div class="section" id="show-plain-text-version">
<h2>Show plain text version</h2>
<table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre>1</pre></div></td><td class="code"><div class="highlight"><pre><span class="p">(</span><span class="nv">font-lock-mode</span><span class="p">)</span>
<table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre>1</pre></div></td><td class="code"><div class="highlight"><pre><span></span><span class="p">(</span><span class="nv">font-lock-mode</span><span class="p">)</span>
</pre></div>
</td></tr></table></div>
@ -209,7 +226,7 @@ a WSGI application with the name <em>application</em>. Hence, wsgi:application.<
2
3
4
5</pre></div></td><td class="code"><div class="highlight"><pre><span class="nt">&lt;Location</span> <span class="s">/myapp/</span><span class="nt">&gt;</span>
5</pre></div></td><td class="code"><div class="highlight"><pre><span></span><span class="nt">&lt;Location</span> <span class="s">/myapp/</span><span class="nt">&gt;</span>
<span class="nb">ProxyPass</span> http://127.0.0 ...</pre></div></td></tr></table></div>
</div>
<div class="readmore"><a href="/proxies-with-apache-and-python.html"><i class="fa fa-external-link"></i> Read more...</a></div>
@ -251,7 +268,7 @@ gathered from media in several languages. Then we aggregated ...</p>
<div class="excerpt">
<p>A simple trick. If you want to remove all the '.swp' files from a git
repository, just use:</p>
<table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre>1</pre></div></td><td class="code"><div class="highlight"><pre>git rm --cached <span class="s1">&#39;\*\*.swp&#39;</span>
<table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre>1</pre></div></td><td class="code"><div class="highlight"><pre><span></span>git rm --cached <span class="s1">&#39;\*\*.swp&#39;</span>
</pre></div>
</td></tr></table>
</div>

@ -91,6 +91,8 @@
<div class="entries">
<h2 class="title">Latest entries</h2>
<dl>
<dt><a href="/progress-bars-in-python.html">Progress bars in python</a></dt>
<dd class="tag"><a class="label" href="/tag/python.html">python</a></dd>
<dt><a href="/arch-linux-fixes.html">Arch Linux Fixes</a></dt>
<dd class="tag"><a class="label" href="/tag/arch.html">arch</a></dd>
<dd class="tag"><a class="label" href="/tag/linux.html">linux</a></dd>
@ -108,12 +110,6 @@
<dd class="tag"><a class="label" href="/tag/webdav.html">webdav</a></dd>
<dd class="tag"><a class="label" href="/tag/nginx.html">nginx</a></dd>
<dd class="tag"><a class="label" href="/tag/apache.html">apache</a></dd>
<dt><a href="/proxies-with-apache-and-python.html">Proxies with Apache and python</a></dt>
<dd class="tag"><a class="label" href="/tag/python.html">python</a></dd>
<dd class="tag"><a class="label" href="/tag/apache.html">apache</a></dd>
<dd class="tag"><a class="label" href="/tag/proxy.html">proxy</a></dd>
<dd class="tag"><a class="label" href="/tag/gunicorn.html">gunicorn</a></dd>
<dd class="tag"><a class="label" href="/tag/uwsgi.html">uwsgi</a></dd>
</dl>
</div>
@ -137,7 +133,7 @@
<div class="post">
<div class="section" id="show-plain-text-version">
<h2>Show plain text version</h2>
<table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre>1</pre></div></td><td class="code"><div class="highlight"><pre><span class="p">(</span><span class="nv">font-lock-mode</span><span class="p">)</span>
<table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre>1</pre></div></td><td class="code"><div class="highlight"><pre><span></span><span class="p">(</span><span class="nv">font-lock-mode</span><span class="p">)</span>
</pre></div>
</td></tr></table></div>

@ -91,6 +91,8 @@
<div class="entries">
<h2 class="title">Latest entries</h2>
<dl>
<dt><a href="/progress-bars-in-python.html">Progress bars in python</a></dt>
<dd class="tag"><a class="label" href="/tag/python.html">python</a></dd>
<dt><a href="/arch-linux-fixes.html">Arch Linux Fixes</a></dt>
<dd class="tag"><a class="label" href="/tag/arch.html">arch</a></dd>
<dd class="tag"><a class="label" href="/tag/linux.html">linux</a></dd>
@ -108,12 +110,6 @@
<dd class="tag"><a class="label" href="/tag/webdav.html">webdav</a></dd>
<dd class="tag"><a class="label" href="/tag/nginx.html">nginx</a></dd>
<dd class="tag"><a class="label" href="/tag/apache.html">apache</a></dd>
<dt><a href="/proxies-with-apache-and-python.html">Proxies with Apache and python</a></dt>
<dd class="tag"><a class="label" href="/tag/python.html">python</a></dd>
<dd class="tag"><a class="label" href="/tag/apache.html">apache</a></dd>
<dd class="tag"><a class="label" href="/tag/proxy.html">proxy</a></dd>
<dd class="tag"><a class="label" href="/tag/gunicorn.html">gunicorn</a></dd>
<dd class="tag"><a class="label" href="/tag/uwsgi.html">uwsgi</a></dd>
</dl>
</div>

@ -90,6 +90,8 @@
<div class="entries">
<h2 class="title">Latest entries</h2>
<dl>
<dt><a href="/progress-bars-in-python.html">Progress bars in python</a></dt>
<dd class="tag"><a class="label" href="/tag/python.html">python</a></dd>
<dt><a href="/arch-linux-fixes.html">Arch Linux Fixes</a></dt>
<dd class="tag"><a class="label" href="/tag/arch.html">arch</a></dd>
<dd class="tag"><a class="label" href="/tag/linux.html">linux</a></dd>
@ -107,12 +109,6 @@
<dd class="tag"><a class="label" href="/tag/webdav.html">webdav</a></dd>
<dd class="tag"><a class="label" href="/tag/nginx.html">nginx</a></dd>
<dd class="tag"><a class="label" href="/tag/apache.html">apache</a></dd>
<dt><a href="/proxies-with-apache-and-python.html">Proxies with Apache and python</a></dt>
<dd class="tag"><a class="label" href="/tag/python.html">python</a></dd>
<dd class="tag"><a class="label" href="/tag/apache.html">apache</a></dd>
<dd class="tag"><a class="label" href="/tag/proxy.html">proxy</a></dd>
<dd class="tag"><a class="label" href="/tag/gunicorn.html">gunicorn</a></dd>
<dd class="tag"><a class="label" href="/tag/uwsgi.html">uwsgi</a></dd>
</dl>
</div>

@ -0,0 +1,186 @@
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
<title>balkian.com - Progress bars in python
</title>
<meta name="viewport" content="width=device-width">
<!-- syntax highlighting CSS -->
<link rel="stylesheet" href="/theme/css/solarized.css">
<!--<link href="/css/bootstrap.css" rel="stylesheet">-->
<link rel="stylesheet" href="/theme/font-awesome/css/font-awesome.min.css">
<!--<link rel="stylesheet" href="/css/bootstrap-responsive.min.css">-->
<!-- Custom CSS -->
<link rel="stylesheet" media="only screen" href="/theme/css/main.css">
<link rel="stylesheet" media="only screen and (min-width: 0px) and (max-width: 599px)" href="/theme/css/main-xs.css">
<link rel="stylesheet" media="only screen and (min-width: 600px) and (max-width: 1199px)" href="/theme/css/main-medium.css">
<link rel="stylesheet" media="only screen and (min-width: 1200px)" href="/theme/css/main-desktop.css">
<link href='http://fonts.googleapis.com/css?family=Open+Sans:300|Comfortaa' rel='stylesheet' type='text/css'>
</head>
<body>
<div id="container" class="container">
<header id="header">
<div id="navbar" class="navbar navbar-inverse navbar-static-bottom">
<div class="container">
<div class="navbar-header">
<ul class="nav navbar-nav">
<li >
<a href="/"><i class="fa fa-home fa-large"></i></a>
</li>
<li >
<a href="/category/cheats.html">Cheats</a>
</li>
<li class="active"
>
<a href="/category/misc.html">Misc</a>
</li>
<li >
<a href="/tags.html">Tags</a>
</li>
<li >
<a href="/pages/projects.html">Projects</a>
</li>
<li>
<a href="//jfernando.es" target="_blank">CV</a>
</li>
</ul>
</div>
</div>
</div>
</header>
<div id="contentwrapper">
<div id="sidebar" >
<div id="badge" class="flip-container" ontouchstart="this.classList.toggle('hover');">
<div class="flipper sticky">
<div class="front">
<!-- front content -->
<img id="avatar" width=100% src="/theme/img/me.png">
</div>
<div class="back">
<!-- back content -->
<img id="picture" width=100% src="/theme/img/me-bat.png">
</div>
</div>
</div>
<div id="about" style="clear:both;">
<!-- <h1 class="title">Interests</h1> -->
<div class="icons">
<span class="coolicon"><span class="fa fa-stack"> <i class="fa fa-square-o fa-stack-2x" ></i><i class="fa fa-stack-1x fa-linux"></i></span><span class="explanation">Linux lover</span></span>
<span class="coolicon"><span class="fa fa-stack"> <i class="fa fa-square-o fa fa-stack-2x" ></i><i class="fa fa-android"></i></span><span class="explanation">Android dev</span></span>
<span class="coolicon"><span class="fa fa-stack"> <i class="fa fa-square-o fa fa-stack-2x" ></i><i class="fa fa-github-alt"></i> </span><span class="explanation">GitHub user</span></span>
<span class="coolicon"><span class="fa fa-stack"> <i class="fa fa-square-o fa fa-stack-2x" ></i><i class="fa fa-stack-exchange"></i> </span><span class="explanation">StackExchange fan</span></span>
<span class="coolicon"><span class="fa fa-stack"> <i class="fa fa-square-o fa fa-stack-2x" ></i><i class="fa fa-music"></i> </span><span class="explanation">Music lover</span></span>
<span class="coolicon"><span class="fa fa-stack"> <i class="fa fa-square-o fa fa-stack-2x" ></i><i class="fa fa-film"></i> </span><span class="explanation">Movie fan</span></span>
<span class="coolicon"><span class="fa fa-stack"> <i class="fa fa-square-o fa fa-stack-2x" ></i><i class="fa fa-comments"></i> </span><span class="explanation">Always on IM</span></span>
<span class="coolicon"><span class="fa fa-stack"> <i class="fa fa-square-o fa fa-stack-2x" ></i><i class="fa fa-laptop"></i> </span><span class="explanation">Always on a PC</span></span>
<span class="coolicon"><span class="fa fa-stack"> <i class="fa fa-square-o fa fa-stack-2x" ></i><i class="fa fa-pencil"></i> </span><span class="explanation">Occassional writter</span></span>
<span class="coolicon"><span class="fa fa-stack"> <i class="fa fa-square-o fa fa-stack-2x" ></i><i class="fa fa-moon-o"></i> </span><span class="explanation">Night owl</span></span>
<span class="coolicon"><span class="fa fa-stack"> <i class="fa fa-square-o fa fa-stack-2x" ></i><i class="fa fa-terminal"></i></span> <span class="explanation">CLI user</span></span>
<span class="coolicon"><span class="fa fa-stack"> <i class="fa fa-square-o fa fa-stack-2x" ></i><i class="fa fa-flag"></i></span> <span class="explanation">Linguist wannabe</span></span>
<span class="coolicon"><span class="fa fa-stack"> <i class="fa fa-square-o fa fa-stack-2x" ></i><i class="fa fa-code"></i> </span> <span class="explanation">Love to code</span></span>
<span class="coolicon"><span class="fa fa-stack"> <i class="fa fa-square-o fa fa-stack-2x" ></i><i class="fa fa-book"></i></span> <span class="explanation">Keen reader</span></span>
<span class="coolicon"><span class="fa fa-stack"> <i class="fa fa-square-o fa fa-stack-2x" ></i><i class="fa fa-quote-right"></i></span> <span class="explanation">Quotes on demand</span></span>
</div>
</div>
<div class="entries">
<h2 class="title">Latest entries</h2>
<dl>
<dt><a href="/progress-bars-in-python.html">Progress bars in python</a></dt>
<dd class="tag"><a class="label" href="/tag/python.html">python</a></dd>
<dt><a href="/arch-linux-fixes.html">Arch Linux Fixes</a></dt>
<dd class="tag"><a class="label" href="/tag/arch.html">arch</a></dd>
<dd class="tag"><a class="label" href="/tag/linux.html">linux</a></dd>
<dt><a href="/org-mode-tricks.html">Org-mode tricks</a></dt>
<dd class="tag"><a class="label" href="/tag/emacs.html">emacs</a></dd>
<dd class="tag"><a class="label" href="/tag/productivity.html">productivity</a></dd>
<dd class="tag"><a class="label" href="/tag/editor.html">editor</a></dd>
<dd class="tag"><a class="label" href="/tag/org.html">org</a></dd>
<dt><a href="/sharing-dotfiles.html">Sharing dotfiles</a></dt>
<dd class="tag"><a class="label" href="/tag/github.html">github</a></dd>
<dd class="tag"><a class="label" href="/tag/git.html">git</a></dd>
<dd class="tag"><a class="label" href="/tag/dotfiles.html">dotfiles</a></dd>
<dt><a href="/zotero.html">Zotero</a></dt>
<dd class="tag"><a class="label" href="/tag/zotero.html">zotero</a></dd>
<dd class="tag"><a class="label" href="/tag/webdav.html">webdav</a></dd>
<dd class="tag"><a class="label" href="/tag/nginx.html">nginx</a></dd>
<dd class="tag"><a class="label" href="/tag/apache.html">apache</a></dd>
</dl>
</div>
<!--Sidebar content-->
</div>
<div id="content">
<!--Body content-->
<div class="postnav">
<span class="previouspost"><i class="fa fa-chevron-left"></i> <a href="arch-linux-fixes.html">Arch Linux Fixes</a></span>
</div>
<div class="posthead">
<h2 class="title">Progress bars in python</h2>
<span class="meta date">2016-09-28</span>
<span class="tag"><a href="/tag/python.html" class="label label-default">python</a></span>
</div>
<div class="post">
<p><a class="reference external" href="https://github.com/noamraph/tqdm">tqdm</a> is a nice way to add progress bars in the command line or in a jupyter notebook.</p>
<img alt="" src="https://camo.githubusercontent.com/48838faaa8d00ea297f18e5bf55d3c6bb4e0ba6b/68747470733a2f2f692e696d6775722e636f6d2f686539417735432e676966" />
<table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre>1
2
3
4
5</pre></div></td><td class="code"><div class="highlight"><pre><span></span><span class="kn">from</span> <span class="nn">tqdm</span> <span class="kn">import</span> <span class="n">tqdm</span>
<span class="kn">import</span> <span class="nn">time</span>
<span class="k">for</span> <span class="n">i</span> <span class="ow">in</span> <span class="n">tqdm</span><span class="p">(</span><span class="nb">range</span><span class="p">(</span><span class="mi">100</span><span class="p">)):</span>
<span class="n">time</span><span class="o">.</span><span class="n">sleep</span><span class="p">(</span><span class="mi">1</span><span class="p">)</span>
</pre></div>
</td></tr></table>
</div>
</div>
<div class="clear"></div>
</div>
<footer role="contentinfo">
<div class="contact">
<p>
J. Fernando Sánchez Rada | balkian
</p>
</div>
<ul id="social">
<li><a href="http://github.com/balkian"><i class="fa fa-github"></i></a></li>
<li><a href="http://bitbucket.com/balkian"><i class="fa fa-bitbucket"></i></a></li>
<li><a href="http://twitter.com/balkian"><i class="fa fa-twitter"></i></a></li>
<li><a href="https://plus.google.com/u/0/111897020957944410316"><i class="fa fa-google-plus"></i></a></li>
<li><a href="http://linkedin.com/in/jfsanchezrada"><i class="fa fa-linkedin"></i></a></li>
<li><a href="http://facebook.com/balkian"><i class="fa fa-facebook"></i></a></li>
</ul>
<p>
<i class="fa fa-creative-commons"></i> Creative Commons A-SA-NC
</p>
</footer>
</div>
<script src="/theme/js/jquery-2.0.2.min.js"></script>
<!-- Piwik -->
<script type="text/javascript">
var _paq = _paq || [];
_paq.push(['trackPageView']);
_paq.push(['enableLinkTracking']);
(function() {
var u="//piwik.sinpapel.es/";
_paq.push(['setTrackerUrl', u+'piwik.php']);
_paq.push(['setSiteId', 2]);
var d=document, g=d.createElement('script'), s=d.getElementsByTagName('script')[0];
g.type='text/javascript'; g.async=true; g.defer=true; g.src=u+'piwik.js'; s.parentNode.insertBefore(g,s);
})();
</script>
<noscript><p><img src="//piwik.sinpapel.es/piwik.php?idsite=2" style="border:0;" alt="" /></p></noscript>
<!-- End Piwik Code -->
<!--<script src="/js/bootstrap.min.js"></script>-->
</body>
</html>

@ -91,6 +91,8 @@
<div class="entries">
<h2 class="title">Latest entries</h2>
<dl>
<dt><a href="/progress-bars-in-python.html">Progress bars in python</a></dt>
<dd class="tag"><a class="label" href="/tag/python.html">python</a></dd>
<dt><a href="/arch-linux-fixes.html">Arch Linux Fixes</a></dt>
<dd class="tag"><a class="label" href="/tag/arch.html">arch</a></dd>
<dd class="tag"><a class="label" href="/tag/linux.html">linux</a></dd>
@ -108,12 +110,6 @@
<dd class="tag"><a class="label" href="/tag/webdav.html">webdav</a></dd>
<dd class="tag"><a class="label" href="/tag/nginx.html">nginx</a></dd>
<dd class="tag"><a class="label" href="/tag/apache.html">apache</a></dd>
<dt><a href="/proxies-with-apache-and-python.html">Proxies with Apache and python</a></dt>
<dd class="tag"><a class="label" href="/tag/python.html">python</a></dd>
<dd class="tag"><a class="label" href="/tag/apache.html">apache</a></dd>
<dd class="tag"><a class="label" href="/tag/proxy.html">proxy</a></dd>
<dd class="tag"><a class="label" href="/tag/gunicorn.html">gunicorn</a></dd>
<dd class="tag"><a class="label" href="/tag/uwsgi.html">uwsgi</a></dd>
</dl>
</div>
@ -145,7 +141,7 @@ a WSGI application with the name <em>application</em>. Hence, wsgi:application.<
2
3
4
5</pre></div></td><td class="code"><div class="highlight"><pre><span class="nt">&lt;Location</span> <span class="s">/myapp/</span><span class="nt">&gt;</span>
5</pre></div></td><td class="code"><div class="highlight"><pre><span></span><span class="nt">&lt;Location</span> <span class="s">/myapp/</span><span class="nt">&gt;</span>
<span class="nb">ProxyPass</span> http://127.0.0.1:8888/myapp/
<span class="nb">ProxyPassReverse</span> http://127.0.0.1:8888/myapp/
<span class="nb">RequestHeader</span> set SCRIPT_NAME <span class="s2">&quot;/myapp/&quot;</span>
@ -154,7 +150,7 @@ a WSGI application with the name <em>application</em>. Hence, wsgi:application.<
</td></tr></table><p><strong>Important</strong>: <em>SCRIPT_NAME</em> and the end of <em>ProxyPass</em> URL <strong>MUST BE
THE SAME</strong>. Otherwise, Gunicorn will fail miserably.</p>
<p>Try it with:</p>
<table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre>1</pre></div></td><td class="code"><div class="highlight"><pre>venv/bin/gunicorn -w <span class="m">4</span> -b 127.0.0.1:8888 --log-file - --access-logfile - wsgi:application
<table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre>1</pre></div></td><td class="code"><div class="highlight"><pre><span></span>venv/bin/gunicorn -w <span class="m">4</span> -b 127.0.0.1:8888 --log-file - --access-logfile - wsgi:application
</pre></div>
</td></tr></table></div>
<div class="section" id="uwsgi">
@ -164,13 +160,13 @@ options for uwsgi (in a .ini file).</p>
<table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre>1
2
3
4</pre></div></td><td class="code"><div class="highlight"><pre><span class="nt">&lt;Location</span> <span class="s">/myapp/</span><span class="nt">&gt;</span>
4</pre></div></td><td class="code"><div class="highlight"><pre><span></span><span class="nt">&lt;Location</span> <span class="s">/myapp/</span><span class="nt">&gt;</span>
<span class="nb">SetHandler</span> uwsgi_handler
<span class="nb">uWSGISocker</span> <span class="m">127.0.0.1</span>:8888
<span class="nt">&lt;/Location&gt;</span>
</pre></div>
</td></tr></table><p>Try it with:</p>
<table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre>1</pre></div></td><td class="code"><div class="highlight"><pre>uwsgi --socket 127.0.0.1:8888 -w wsgi:application
<table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre>1</pre></div></td><td class="code"><div class="highlight"><pre><span></span>uwsgi --socket 127.0.0.1:8888 -w wsgi:application
</pre></div>
</td></tr></table><div class="section" id="extra-supervisor">
<h3>Extra: Supervisor</h3>
@ -194,7 +190,7 @@ supervisor config file and let it handle the server for you.</p>
16
17
18
19</pre></div></td><td class="code"><div class="highlight"><pre><span class="k">[unix_http_server]</span>
19</pre></div></td><td class="code"><div class="highlight"><pre><span></span><span class="k">[unix_http_server]</span>
<span class="na">file</span><span class="o">=</span><span class="s">/tmp/myapp.sock ; path to your socket file</span>
<span class="k">[supervisord]</span>

@ -91,6 +91,8 @@
<div class="entries">
<h2 class="title">Latest entries</h2>
<dl>
<dt><a href="/progress-bars-in-python.html">Progress bars in python</a></dt>
<dd class="tag"><a class="label" href="/tag/python.html">python</a></dd>
<dt><a href="/arch-linux-fixes.html">Arch Linux Fixes</a></dt>
<dd class="tag"><a class="label" href="/tag/arch.html">arch</a></dd>
<dd class="tag"><a class="label" href="/tag/linux.html">linux</a></dd>
@ -108,12 +110,6 @@
<dd class="tag"><a class="label" href="/tag/webdav.html">webdav</a></dd>
<dd class="tag"><a class="label" href="/tag/nginx.html">nginx</a></dd>
<dd class="tag"><a class="label" href="/tag/apache.html">apache</a></dd>
<dt><a href="/proxies-with-apache-and-python.html">Proxies with Apache and python</a></dt>
<dd class="tag"><a class="label" href="/tag/python.html">python</a></dd>
<dd class="tag"><a class="label" href="/tag/apache.html">apache</a></dd>
<dd class="tag"><a class="label" href="/tag/proxy.html">proxy</a></dd>
<dd class="tag"><a class="label" href="/tag/gunicorn.html">gunicorn</a></dd>
<dd class="tag"><a class="label" href="/tag/uwsgi.html">uwsgi</a></dd>
</dl>
</div>
@ -162,7 +158,7 @@ memorability over describing the functionality.</p>
10
11
12
13</pre></div></td><td class="code"><div class="highlight"><pre><span class="err">[distutils]</span> <span class="c1"># this tells distutils what package indexes you can push to</span>
13</pre></div></td><td class="code"><div class="highlight"><pre><span></span><span class="err">[distutils]</span> <span class="c1"># this tells distutils what package indexes you can push to</span>
<span class="na">index-servers</span> <span class="o">=</span><span class="s"></span>
<span class="s"> pypi # the live PyPI</span>
<span class="s"> pypitest # test PyPI</span>
@ -200,7 +196,7 @@ root-dir/ # Any name you want
<div class="section" id="setup-cfg">
<h3>setup.cfg</h3>
<table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre>1
2</pre></div></td><td class="code"><div class="highlight"><pre><span class="k">[metadata]</span>
2</pre></div></td><td class="code"><div class="highlight"><pre><span></span><span class="k">[metadata]</span>
<span class="na">description-file</span> <span class="o">=</span> <span class="s">README.md</span>
</pre></div>
</td></tr></table><p>The markdown README is the <em>de facto</em> standard in Github, but you can
@ -219,7 +215,7 @@ also use rST (reStructuredText), the standard in the python community.</p>
9
10
11
12</pre></div></td><td class="code"><div class="highlight"><pre><span class="kn">from</span> <span class="nn">distutils.core</span> <span class="kn">import</span> <span class="n">setup</span>
12</pre></div></td><td class="code"><div class="highlight"><pre><span></span><span class="kn">from</span> <span class="nn">distutils.core</span> <span class="kn">import</span> <span class="n">setup</span>
<span class="n">setup</span><span class="p">(</span><span class="n">name</span> <span class="o">=</span> <span class="s1">&#39;mypackage&#39;</span><span class="p">,</span>
<span class="n">packages</span> <span class="o">=</span> <span class="p">[</span><span class="s1">&#39;mypackage&#39;</span><span class="p">],</span> <span class="c1"># this must be the same as the name above</span>
@ -237,7 +233,7 @@ host our package anywhere, but Github is a convenient option. To create
the tarball and the zip packages, you only need to tag a tag in your
repository and push it to github:</p>
<table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre>1
2</pre></div></td><td class="code"><div class="highlight"><pre>git tag <span class="o">{</span>version<span class="o">}</span> -m <span class="s2">&quot;{ Description of this tag/version}&quot;</span>
2</pre></div></td><td class="code"><div class="highlight"><pre><span></span>git tag <span class="o">{</span>version<span class="o">}</span> -m <span class="s2">&quot;{ Description of this tag/version}&quot;</span>
git push --tags origin master
</pre></div>
</td></tr></table></div>

@ -91,6 +91,8 @@
<div class="entries">
<h2 class="title">Latest entries</h2>
<dl>
<dt><a href="/progress-bars-in-python.html">Progress bars in python</a></dt>
<dd class="tag"><a class="label" href="/tag/python.html">python</a></dd>
<dt><a href="/arch-linux-fixes.html">Arch Linux Fixes</a></dt>
<dd class="tag"><a class="label" href="/tag/arch.html">arch</a></dd>
<dd class="tag"><a class="label" href="/tag/linux.html">linux</a></dd>
@ -108,12 +110,6 @@
<dd class="tag"><a class="label" href="/tag/webdav.html">webdav</a></dd>
<dd class="tag"><a class="label" href="/tag/nginx.html">nginx</a></dd>
<dd class="tag"><a class="label" href="/tag/apache.html">apache</a></dd>
<dt><a href="/proxies-with-apache-and-python.html">Proxies with Apache and python</a></dt>
<dd class="tag"><a class="label" href="/tag/python.html">python</a></dd>
<dd class="tag"><a class="label" href="/tag/apache.html">apache</a></dd>
<dd class="tag"><a class="label" href="/tag/proxy.html">proxy</a></dd>
<dd class="tag"><a class="label" href="/tag/gunicorn.html">gunicorn</a></dd>
<dd class="tag"><a class="label" href="/tag/uwsgi.html">uwsgi</a></dd>
</dl>
</div>
@ -134,7 +130,7 @@
<div class="post">
<p>A simple trick. If you want to remove all the '.swp' files from a git
repository, just use:</p>
<table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre>1</pre></div></td><td class="code"><div class="highlight"><pre>git rm --cached <span class="s1">&#39;\*\*.swp&#39;</span>
<table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre>1</pre></div></td><td class="code"><div class="highlight"><pre><span></span>git rm --cached <span class="s1">&#39;\*\*.swp&#39;</span>
</pre></div>
</td></tr></table>
</div>

@ -91,6 +91,8 @@
<div class="entries">
<h2 class="title">Latest entries</h2>
<dl>
<dt><a href="/progress-bars-in-python.html">Progress bars in python</a></dt>
<dd class="tag"><a class="label" href="/tag/python.html">python</a></dd>
<dt><a href="/arch-linux-fixes.html">Arch Linux Fixes</a></dt>
<dd class="tag"><a class="label" href="/tag/arch.html">arch</a></dd>
<dd class="tag"><a class="label" href="/tag/linux.html">linux</a></dd>
@ -108,12 +110,6 @@
<dd class="tag"><a class="label" href="/tag/webdav.html">webdav</a></dd>
<dd class="tag"><a class="label" href="/tag/nginx.html">nginx</a></dd>
<dd class="tag"><a class="label" href="/tag/apache.html">apache</a></dd>
<dt><a href="/proxies-with-apache-and-python.html">Proxies with Apache and python</a></dt>
<dd class="tag"><a class="label" href="/tag/python.html">python</a></dd>
<dd class="tag"><a class="label" href="/tag/apache.html">apache</a></dd>
<dd class="tag"><a class="label" href="/tag/proxy.html">proxy</a></dd>
<dd class="tag"><a class="label" href="/tag/gunicorn.html">gunicorn</a></dd>
<dd class="tag"><a class="label" href="/tag/uwsgi.html">uwsgi</a></dd>
</dl>
</div>
@ -141,13 +137,13 @@ This is cool and convenient, unless you <a class="reference external" href="http
<p>So, how can you still share your gitconfig without sharing your password/token with the rest of the world?
Since Git 1.7.0, you can <a class="reference external" href="http://stackoverflow.com/questions/1557183/is-it-possible-to-include-a-file-in-your-gitconfig">include other files in your gitconfig</a>.</p>
<table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre>1
2</pre></div></td><td class="code"><div class="highlight"><pre>[include]
2</pre></div></td><td class="code"><div class="highlight"><pre><span></span>[include]
path = ~/.gitconfig_secret
</pre></div>
</td></tr></table><p>And now, in your .gitconfig_secret file, you just have to add this:</p>
<table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre>1
2
3</pre></div></td><td class="code"><div class="highlight"><pre>[github]
3</pre></div></td><td class="code"><div class="highlight"><pre><span></span>[github]
user = balkian
token = &quot;&lt; Your secret token &gt;&quot;
</pre></div>

@ -150,7 +150,7 @@ a WSGI application with the name <em>application</em>. Hence, wsgi:application.<
2
3
4
5</pre></div></td><td class="code"><div class="highlight"><pre><span class="nt">&lt;Location</span> <span class="s">/myapp/</span><span class="nt">&gt;</span>
5</pre></div></td><td class="code"><div class="highlight"><pre><span></span><span class="nt">&lt;Location</span> <span class="s">/myapp/</span><span class="nt">&gt;</span>
<span class="nb">ProxyPass</span> http://127.0.0 ...</pre></div></td></tr></table></div>
</div>
<div class="readmore"><a href="/proxies-with-apache-and-python.html"><i class="fa fa-external-link"></i> Read more...</a></div>

@ -118,7 +118,7 @@
<h2>Black screen and LightDM doesn't unlock</h2>
<p>Add this to your <cite>/etc/lightdm/lightdm.conf</cite> file:</p>
<table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre>1
2</pre></div></td><td class="code"><div class="highlight"><pre><span class="k">[LightDM]</span>
2</pre></div></td><td class="code"><div class="highlight"><pre><span></span><span class="k">[LightDM]</span>
<span class="na">logind-check-graphical</span><span class="o">=</span><span class="s">true</span>
</pre></div>
</td></tr></table></div>

@ -120,7 +120,7 @@
<div class="excerpt">
<div class="section" id="show-plain-text-version">
<h2>Show plain text version</h2>
<table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre>1</pre></div></td><td class="code"><div class="highlight"><pre><span class="p">(</span><span class="nv">font-lock-mode</span><span class="p">)</span>
<table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre>1</pre></div></td><td class="code"><div class="highlight"><pre><span></span><span class="p">(</span><span class="nv">font-lock-mode</span><span class="p">)</span>
</pre></div>
</td></tr></table></div>

@ -120,7 +120,7 @@
<div class="excerpt">
<div class="section" id="show-plain-text-version">
<h2>Show plain text version</h2>
<table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre>1</pre></div></td><td class="code"><div class="highlight"><pre><span class="p">(</span><span class="nv">font-lock-mode</span><span class="p">)</span>
<table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre>1</pre></div></td><td class="code"><div class="highlight"><pre><span></span><span class="p">(</span><span class="nv">font-lock-mode</span><span class="p">)</span>
</pre></div>
</td></tr></table></div>

@ -137,7 +137,7 @@ When you first use it, the extension saves either ...</p>
<div class="excerpt">
<p>A simple trick. If you want to remove all the '.swp' files from a git
repository, just use:</p>
<table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre>1</pre></div></td><td class="code"><div class="highlight"><pre>git rm --cached <span class="s1">&#39;\*\*.swp&#39;</span>
<table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre>1</pre></div></td><td class="code"><div class="highlight"><pre><span></span>git rm --cached <span class="s1">&#39;\*\*.swp&#39;</span>
</pre></div>
</td></tr></table>
</div>

@ -129,7 +129,7 @@ a WSGI application with the name <em>application</em>. Hence, wsgi:application.<
2
3
4
5</pre></div></td><td class="code"><div class="highlight"><pre><span class="nt">&lt;Location</span> <span class="s">/myapp/</span><span class="nt">&gt;</span>
5</pre></div></td><td class="code"><div class="highlight"><pre><span></span><span class="nt">&lt;Location</span> <span class="s">/myapp/</span><span class="nt">&gt;</span>
<span class="nb">ProxyPass</span> http://127.0.0 ...</pre></div></td></tr></table></div>
</div>
<div class="readmore"><a href="/proxies-with-apache-and-python.html"><i class="fa fa-external-link"></i> Read more...</a></div>

@ -118,7 +118,7 @@
<h2>Black screen and LightDM doesn't unlock</h2>
<p>Add this to your <cite>/etc/lightdm/lightdm.conf</cite> file:</p>
<table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre>1
2</pre></div></td><td class="code"><div class="highlight"><pre><span class="k">[LightDM]</span>
2</pre></div></td><td class="code"><div class="highlight"><pre><span></span><span class="k">[LightDM]</span>
<span class="na">logind-check-graphical</span><span class="o">=</span><span class="s">true</span>
</pre></div>
</td></tr></table></div>

@ -120,7 +120,7 @@
<div class="excerpt">
<div class="section" id="show-plain-text-version">
<h2>Show plain text version</h2>
<table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre>1</pre></div></td><td class="code"><div class="highlight"><pre><span class="p">(</span><span class="nv">font-lock-mode</span><span class="p">)</span>
<table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre>1</pre></div></td><td class="code"><div class="highlight"><pre><span></span><span class="p">(</span><span class="nv">font-lock-mode</span><span class="p">)</span>
</pre></div>
</td></tr></table></div>

@ -120,7 +120,7 @@
<div class="excerpt">
<div class="section" id="show-plain-text-version">
<h2>Show plain text version</h2>
<table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre>1</pre></div></td><td class="code"><div class="highlight"><pre><span class="p">(</span><span class="nv">font-lock-mode</span><span class="p">)</span>
<table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre>1</pre></div></td><td class="code"><div class="highlight"><pre><span></span><span class="p">(</span><span class="nv">font-lock-mode</span><span class="p">)</span>
</pre></div>
</td></tr></table></div>

@ -129,7 +129,7 @@ a WSGI application with the name <em>application</em>. Hence, wsgi:application.<
2
3
4
5</pre></div></td><td class="code"><div class="highlight"><pre><span class="nt">&lt;Location</span> <span class="s">/myapp/</span><span class="nt">&gt;</span>
5</pre></div></td><td class="code"><div class="highlight"><pre><span></span><span class="nt">&lt;Location</span> <span class="s">/myapp/</span><span class="nt">&gt;</span>
<span class="nb">ProxyPass</span> http://127.0.0 ...</pre></div></td></tr></table></div>
</div>
<div class="readmore"><a href="/proxies-with-apache-and-python.html"><i class="fa fa-external-link"></i> Read more...</a></div>

@ -89,6 +89,8 @@
<div class="entries">
<h2 class="title">Latest entries</h2>
<dl>
<dt><a href="/progress-bars-in-python.html">Progress bars in python</a></dt>
<dd class="tag"><a class="label" href="/tag/python.html">python</a></dd>
<dt><a href="/proxies-with-apache-and-python.html">Proxies with Apache and python</a></dt>
<dd class="tag"><a class="label" href="/tag/python.html">python</a></dd>
<dd class="tag"><a class="label" href="/tag/apache.html">apache</a></dd>
@ -118,6 +120,27 @@
<h1>Entries tagged: python</h1>
<!-- This loops through the paginated posts -->
<div class="posthead">
<h2><a href="/progress-bars-in-python.html" class="title">Progress bars in python</a></h2>
<span class="date">2016-09-28</span>
<a class="tag" href="/tag/python.html"><span class="label">python</span></a>
</div>
<div class="excerpt">
<p><a class="reference external" href="https://github.com/noamraph/tqdm">tqdm</a> is a nice way to add progress bars in the command line or in a jupyter notebook.</p>
<img alt="" src="https://camo.githubusercontent.com/48838faaa8d00ea297f18e5bf55d3c6bb4e0ba6b/68747470733a2f2f692e696d6775722e636f6d2f686539417735432e676966" />
<table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre>1
2
3
4
5</pre></div></td><td class="code"><div class="highlight"><pre><span></span><span class="kn">from</span> <span class="nn">tqdm</span> <span class="kn">import</span> <span class="n">tqdm</span>
<span class="kn">import</span> <span class="nn">time</span>
<span class="k">for</span> <span class="n">i</span> <span class="ow">in</span> <span class="n">tqdm</span><span class="p">(</span><span class="nb">range</span><span class="p">(</span><span class="mi">100</span><span class="p">)):</span>
<span class="n">time</span><span class="o">.</span><span class="n">sleep</span><span class="p">(</span><span class="mi">1</span><span class="p">)</span>
</pre></div>
</td></tr></table>
</div>
<div class="readmore"><a href="/progress-bars-in-python.html"><i class="fa fa-external-link"></i> Read more...</a></div>
<div class="posthead">
<h2><a href="/proxies-with-apache-and-python.html" class="title">Proxies with Apache and python</a></h2>
<span class="date">2014-10-09</span>
@ -137,7 +160,7 @@ a WSGI application with the name <em>application</em>. Hence, wsgi:application.<
2
3
4
5</pre></div></td><td class="code"><div class="highlight"><pre><span class="nt">&lt;Location</span> <span class="s">/myapp/</span><span class="nt">&gt;</span>
5</pre></div></td><td class="code"><div class="highlight"><pre><span></span><span class="nt">&lt;Location</span> <span class="s">/myapp/</span><span class="nt">&gt;</span>
<span class="nb">ProxyPass</span> http://127.0.0 ...</pre></div></td></tr></table></div>
</div>
<div class="readmore"><a href="/proxies-with-apache-and-python.html"><i class="fa fa-external-link"></i> Read more...</a></div>

@ -129,7 +129,7 @@ a WSGI application with the name <em>application</em>. Hence, wsgi:application.<
2
3
4
5</pre></div></td><td class="code"><div class="highlight"><pre><span class="nt">&lt;Location</span> <span class="s">/myapp/</span><span class="nt">&gt;</span>
5</pre></div></td><td class="code"><div class="highlight"><pre><span></span><span class="nt">&lt;Location</span> <span class="s">/myapp/</span><span class="nt">&gt;</span>
<span class="nb">ProxyPass</span> http://127.0.0 ...</pre></div></td></tr></table></div>
</div>
<div class="readmore"><a href="/proxies-with-apache-and-python.html"><i class="fa fa-external-link"></i> Read more...</a></div>

@ -90,6 +90,8 @@
<div class="entries">
<h2 class="title">Latest entries</h2>
<dl>
<dt><a href="/progress-bars-in-python.html">Progress bars in python</a></dt>
<dd class="tag"><a class="label" href="/tag/python.html">python</a></dd>
<dt><a href="/arch-linux-fixes.html">Arch Linux Fixes</a></dt>
<dd class="tag"><a class="label" href="/tag/arch.html">arch</a></dd>
<dd class="tag"><a class="label" href="/tag/linux.html">linux</a></dd>
@ -107,12 +109,6 @@
<dd class="tag"><a class="label" href="/tag/webdav.html">webdav</a></dd>
<dd class="tag"><a class="label" href="/tag/nginx.html">nginx</a></dd>
<dd class="tag"><a class="label" href="/tag/apache.html">apache</a></dd>
<dt><a href="/proxies-with-apache-and-python.html">Proxies with Apache and python</a></dt>
<dd class="tag"><a class="label" href="/tag/python.html">python</a></dd>
<dd class="tag"><a class="label" href="/tag/apache.html">apache</a></dd>
<dd class="tag"><a class="label" href="/tag/proxy.html">proxy</a></dd>
<dd class="tag"><a class="label" href="/tag/gunicorn.html">gunicorn</a></dd>
<dd class="tag"><a class="label" href="/tag/uwsgi.html">uwsgi</a></dd>
</dl>
</div>
@ -121,28 +117,28 @@
<div id="content">
<!--Body content-->
<h2>Post tags</h2>
<a class="tag" href="/tag/git.html"><span style="font-size: 200.0%;" class="label label-default">git (3)</span></a>
<a class="tag" href="/tag/github.html"><span style="font-size: 200.0%;" class="label label-default">github (3)</span></a>
<a class="tag" href="/tag/python.html"><span style="font-size: 200.0%;" class="label label-default">python (3)</span></a>
<a class="tag" href="/tag/apache.html"><span style="font-size: 133.33333333333334%;" class="label label-default">apache (2)</span></a>
<a class="tag" href="/tag/javascript.html"><span style="font-size: 133.33333333333334%;" class="label label-default">javascript (2)</span></a>
<a class="tag" href="/tag/arch.html"><span style="font-size: 66.66666666666667%;" class="label label-default">arch (1)</span></a>
<a class="tag" href="/tag/gunicorn.html"><span style="font-size: 66.66666666666667%;" class="label label-default">gunicorn (1)</span></a>
<a class="tag" href="/tag/zotero.html"><span style="font-size: 66.66666666666667%;" class="label label-default">zotero (1)</span></a>
<a class="tag" href="/tag/uwsgi.html"><span style="font-size: 66.66666666666667%;" class="label label-default">uwsgi (1)</span></a>
<a class="tag" href="/tag/pypi.html"><span style="font-size: 66.66666666666667%;" class="label label-default">pypi (1)</span></a>
<a class="tag" href="/tag/org.html"><span style="font-size: 66.66666666666667%;" class="label label-default">org (1)</span></a>
<a class="tag" href="/tag/ruby.html"><span style="font-size: 66.66666666666667%;" class="label label-default">ruby (1)</span></a>
<a class="tag" href="/tag/dotfiles.html"><span style="font-size: 66.66666666666667%;" class="label label-default">dotfiles (1)</span></a>
<a class="tag" href="/tag/editor.html"><span style="font-size: 66.66666666666667%;" class="label label-default">editor (1)</span></a>
<a class="tag" href="/tag/linux.html"><span style="font-size: 66.66666666666667%;" class="label label-default">linux (1)</span></a>
<a class="tag" href="/tag/webdav.html"><span style="font-size: 66.66666666666667%;" class="label label-default">webdav (1)</span></a>
<a class="tag" href="/tag/emacs.html"><span style="font-size: 66.66666666666667%;" class="label label-default">emacs (1)</span></a>
<a class="tag" href="/tag/productivity.html"><span style="font-size: 66.66666666666667%;" class="label label-default">productivity (1)</span></a>
<a class="tag" href="/tag/starters.html"><span style="font-size: 66.66666666666667%;" class="label label-default">starters (1)</span></a>
<a class="tag" href="/tag/proxy.html"><span style="font-size: 66.66666666666667%;" class="label label-default">proxy (1)</span></a>
<a class="tag" href="/tag/nginx.html"><span style="font-size: 66.66666666666667%;" class="label label-default">nginx (1)</span></a>
<a class="tag" href="/tag/heroku.html"><span style="font-size: 66.66666666666667%;" class="label label-default">heroku (1)</span></a>
<a class="tag" href="/tag/python.html"><span style="font-size: 200.0%;" class="label label-default">python (4)</span></a>
<a class="tag" href="/tag/github.html"><span style="font-size: 150.0%;" class="label label-default">github (3)</span></a>
<a class="tag" href="/tag/git.html"><span style="font-size: 150.0%;" class="label label-default">git (3)</span></a>
<a class="tag" href="/tag/javascript.html"><span style="font-size: 100.0%;" class="label label-default">javascript (2)</span></a>
<a class="tag" href="/tag/apache.html"><span style="font-size: 100.0%;" class="label label-default">apache (2)</span></a>
<a class="tag" href="/tag/pypi.html"><span style="font-size: 50.0%;" class="label label-default">pypi (1)</span></a>
<a class="tag" href="/tag/proxy.html"><span style="font-size: 50.0%;" class="label label-default">proxy (1)</span></a>
<a class="tag" href="/tag/uwsgi.html"><span style="font-size: 50.0%;" class="label label-default">uwsgi (1)</span></a>
<a class="tag" href="/tag/arch.html"><span style="font-size: 50.0%;" class="label label-default">arch (1)</span></a>
<a class="tag" href="/tag/heroku.html"><span style="font-size: 50.0%;" class="label label-default">heroku (1)</span></a>
<a class="tag" href="/tag/editor.html"><span style="font-size: 50.0%;" class="label label-default">editor (1)</span></a>
<a class="tag" href="/tag/org.html"><span style="font-size: 50.0%;" class="label label-default">org (1)</span></a>
<a class="tag" href="/tag/webdav.html"><span style="font-size: 50.0%;" class="label label-default">webdav (1)</span></a>
<a class="tag" href="/tag/starters.html"><span style="font-size: 50.0%;" class="label label-default">starters (1)</span></a>
<a class="tag" href="/tag/dotfiles.html"><span style="font-size: 50.0%;" class="label label-default">dotfiles (1)</span></a>
<a class="tag" href="/tag/gunicorn.html"><span style="font-size: 50.0%;" class="label label-default">gunicorn (1)</span></a>
<a class="tag" href="/tag/zotero.html"><span style="font-size: 50.0%;" class="label label-default">zotero (1)</span></a>
<a class="tag" href="/tag/nginx.html"><span style="font-size: 50.0%;" class="label label-default">nginx (1)</span></a>
<a class="tag" href="/tag/ruby.html"><span style="font-size: 50.0%;" class="label label-default">ruby (1)</span></a>
<a class="tag" href="/tag/productivity.html"><span style="font-size: 50.0%;" class="label label-default">productivity (1)</span></a>
<a class="tag" href="/tag/linux.html"><span style="font-size: 50.0%;" class="label label-default">linux (1)</span></a>
<a class="tag" href="/tag/emacs.html"><span style="font-size: 50.0%;" class="label label-default">emacs (1)</span></a>
</div>
<div class="clear"></div>
</div>

@ -91,6 +91,8 @@
<div class="entries">
<h2 class="title">Latest entries</h2>
<dl>
<dt><a href="/progress-bars-in-python.html">Progress bars in python</a></dt>
<dd class="tag"><a class="label" href="/tag/python.html">python</a></dd>
<dt><a href="/arch-linux-fixes.html">Arch Linux Fixes</a></dt>
<dd class="tag"><a class="label" href="/tag/arch.html">arch</a></dd>
<dd class="tag"><a class="label" href="/tag/linux.html">linux</a></dd>
@ -108,12 +110,6 @@
<dd class="tag"><a class="label" href="/tag/webdav.html">webdav</a></dd>
<dd class="tag"><a class="label" href="/tag/nginx.html">nginx</a></dd>
<dd class="tag"><a class="label" href="/tag/apache.html">apache</a></dd>
<dt><a href="/proxies-with-apache-and-python.html">Proxies with Apache and python</a></dt>
<dd class="tag"><a class="label" href="/tag/python.html">python</a></dd>
<dd class="tag"><a class="label" href="/tag/apache.html">apache</a></dd>
<dd class="tag"><a class="label" href="/tag/proxy.html">proxy</a></dd>
<dd class="tag"><a class="label" href="/tag/gunicorn.html">gunicorn</a></dd>
<dd class="tag"><a class="label" href="/tag/uwsgi.html">uwsgi</a></dd>
</dl>
</div>
@ -158,7 +154,7 @@ new technologies and improve it:</p>
<p>The result can be <a class="reference external" href="http://eurolovemap.herokuapp.com/">seen here</a>.</p>
<div class="section" id="publishing-a-python-3-app-on-heroku">
<h2>Publishing a Python 3 app on Heroku</h2>
<table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre>1</pre></div></td><td class="code"><div class="highlight"><pre>mkvirtualenv -p /usr/bin/python3.3 eurolovemap
<table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre>1</pre></div></td><td class="code"><div class="highlight"><pre><span></span>mkvirtualenv -p /usr/bin/python3.3 eurolovemap
</pre></div>
</td></tr></table><p>Since Heroku uses python 2.7 by default, we have to tell it which
version we want, although it supports python 3.4 as well. I couldn't get
@ -167,7 +163,7 @@ python 3.4 working using the
so I used python 3.3 instead, which works fine but is not officially
supported. Just create a file named <em>runtime.txt</em> in your project root,
with the python version you want to use:</p>
<table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre>1</pre></div></td><td class="code"><div class="highlight"><pre>python-3.3.1
<table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre>1</pre></div></td><td class="code"><div class="highlight"><pre><span></span>python-3.3.1
</pre></div>
</td></tr></table><p>Don't forget to freeze your dependencies so Heroku can install them:
<tt class="docutils literal">bash pip freze &gt; requirements.txt</tt></p>
@ -184,7 +180,7 @@ cipher</a>. Please, don't
use it for any serious application if you are concerned about being
spammed.</p>
<table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre>1
2</pre></div></td><td class="code"><div class="highlight"><pre><span class="k">def</span> <span class="nf">blur_email</span><span class="p">(</span><span class="n">email</span><span class="p">):</span>
2</pre></div></td><td class="code"><div class="highlight"><pre><span></span><span class="k">def</span> <span class="nf">blur_email</span><span class="p">(</span><span class="n">email</span><span class="p">):</span>
<span class="k">return</span> <span class="s2">&quot;&quot;</span><span class="o">.</span><span class="n">join</span><span class="p">([</span><span class="nb">chr</span><span class="p">(</span><span class="nb">ord</span><span class="p">(</span><span class="n">i</span><span class="p">)</span><span class="o">+</span><span class="mi">5</span><span class="p">)</span> <span class="k">for</span> <span class="n">i</span> <span class="ow">in</span> <span class="n">email</span><span class="p">])</span>
</pre></div>
</td></tr></table><p>And this is the client side:</p>
@ -199,7 +195,7 @@ spammed.</p>
9
10
11
12</pre></div></td><td class="code"><div class="highlight"><pre><span class="nb">window</span><span class="p">.</span><span class="nx">onload</span> <span class="o">=</span> <span class="kd">function</span><span class="p">(){</span>
12</pre></div></td><td class="code"><div class="highlight"><pre><span></span><span class="nb">window</span><span class="p">.</span><span class="nx">onload</span> <span class="o">=</span> <span class="kd">function</span><span class="p">(){</span>
<span class="nx">elems</span> <span class="o">=</span> <span class="nb">document</span><span class="p">.</span><span class="nx">getElementsByClassName</span><span class="p">(</span><span class="s1">&#39;profile-email&#39;</span><span class="p">);</span>
<span class="k">for</span><span class="p">(</span><span class="kd">var</span> <span class="nx">e</span> <span class="k">in</span> <span class="nx">elems</span><span class="p">){</span>
<span class="kd">var</span> <span class="nx">blur</span> <span class="o">=</span> <span class="nx">elems</span><span class="p">[</span><span class="nx">e</span><span class="p">].</span><span class="nx">innerHTML</span><span class="p">;</span>

@ -91,6 +91,8 @@
<div class="entries">
<h2 class="title">Latest entries</h2>
<dl>
<dt><a href="/progress-bars-in-python.html">Progress bars in python</a></dt>
<dd class="tag"><a class="label" href="/tag/python.html">python</a></dd>
<dt><a href="/arch-linux-fixes.html">Arch Linux Fixes</a></dt>
<dd class="tag"><a class="label" href="/tag/arch.html">arch</a></dd>
<dd class="tag"><a class="label" href="/tag/linux.html">linux</a></dd>
@ -108,12 +110,6 @@
<dd class="tag"><a class="label" href="/tag/webdav.html">webdav</a></dd>
<dd class="tag"><a class="label" href="/tag/nginx.html">nginx</a></dd>
<dd class="tag"><a class="label" href="/tag/apache.html">apache</a></dd>
<dt><a href="/proxies-with-apache-and-python.html">Proxies with Apache and python</a></dt>
<dd class="tag"><a class="label" href="/tag/python.html">python</a></dd>
<dd class="tag"><a class="label" href="/tag/apache.html">apache</a></dd>
<dd class="tag"><a class="label" href="/tag/proxy.html">proxy</a></dd>
<dd class="tag"><a class="label" href="/tag/gunicorn.html">gunicorn</a></dd>
<dd class="tag"><a class="label" href="/tag/uwsgi.html">uwsgi</a></dd>
</dl>
</div>
@ -147,10 +143,10 @@ Debian/Ubuntu.</p>
<div class="section" id="setting-up-apache">
<h2>Setting up Apache</h2>
<p>First we need to install Apache:</p>
<table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre>1</pre></div></td><td class="code"><div class="highlight"><pre>sudo apt-get install apache2
<table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre>1</pre></div></td><td class="code"><div class="highlight"><pre><span></span>sudo apt-get install apache2
</pre></div>
</td></tr></table><p>Change the head of &quot;/etc/apache2/sites-enabled/000-default&quot; to:</p>
<table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre>1</pre></div></td><td class="code"><div class="highlight"><pre><span class="nt">&lt;VirtualHost</span> <span class="s">*:880</span><span class="nt">&gt;</span>
<table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre>1</pre></div></td><td class="code"><div class="highlight"><pre><span></span><span class="nt">&lt;VirtualHost</span> <span class="s">*:880</span><span class="nt">&gt;</span>
</pre></div>
</td></tr></table><p>Then, create a file /etc/apache2/sites-available/webdav:</p>
<table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre> 1
@ -165,7 +161,7 @@ Debian/Ubuntu.</p>
10
11
12
13</pre></div></td><td class="code"><div class="highlight"><pre><span class="nb">Alias</span> <span class="sx">/dav</span> <span class="sx">/home/webdav/dav</span>
13</pre></div></td><td class="code"><div class="highlight"><pre><span></span><span class="nb">Alias</span> <span class="sx">/dav</span> <span class="sx">/home/webdav/dav</span>
<span class="nt">&lt;Location</span> <span class="s">/dav</span><span class="nt">&gt;</span>
<span class="nb">Dav</span> <span class="k">on</span>
<span class="nb">Order</span> Allow,Deny
@ -189,7 +185,7 @@ other application using webdav.</p>
<table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre>1
2
3
4</pre></div></td><td class="code"><div class="highlight"><pre>sudo adduser webdav
4</pre></div></td><td class="code"><div class="highlight"><pre><span></span>sudo adduser webdav
sudo htpasswd -c /home/webdav/.htpasswd webdav
sudo htpasswd /home/webdav/.htpasswd zotero
sudo mkdir -p /home/webdav/dav/zotero
@ -198,7 +194,7 @@ sudo mkdir -p /home/webdav/dav/zotero
<table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre>1
2
3
4</pre></div></td><td class="code"><div class="highlight"><pre>sudo a2enmod webdav
4</pre></div></td><td class="code"><div class="highlight"><pre><span></span>sudo a2enmod webdav
sudo a2enmod dav_fs
sudo a2ensite webdav
sudo service apache2 restart
@ -216,7 +212,7 @@ cleaner URIs. In your desired site/location, add this:</p>
4
5
6
7</pre></div></td><td class="code"><div class="highlight"><pre><span class="k">location</span> <span class="s">/dav</span> <span class="p">{</span>
7</pre></div></td><td class="code"><div class="highlight"><pre><span></span><span class="k">location</span> <span class="s">/dav</span> <span class="p">{</span>
<span class="kn">client_max_body_size</span> <span class="s">20M</span><span class="p">;</span>
<span class="kn">proxy_set_header</span> <span class="s">X-Real-IP</span> <span class="nv">$remote_addr</span><span class="p">;</span>
<span class="kn">proxy_set_header</span> <span class="s">X-Forwarded-For</span> <span class="nv">$remote_addr</span><span class="p">;</span>
@ -225,7 +221,7 @@ cleaner URIs. In your desired site/location, add this:</p>
<span class="p">}</span>
</pre></div>
</td></tr></table><p>Now just reload nginx:</p>
<table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre>1</pre></div></td><td class="code"><div class="highlight"><pre>sudo service nginx force-reload
<table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre>1</pre></div></td><td class="code"><div class="highlight"><pre><span></span>sudo service nginx force-reload
</pre></div>
</td></tr></table></div>
<div class="section" id="extras">

Loading…
Cancel
Save