<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Utilities on ctsolakis.com</title><link>https://ctsolakis.com/tags/utilities/</link><description>Recent content in Utilities on ctsolakis.com</description><generator>Hugo</generator><language>en-us</language><managingEditor>ctsol001@odu.edu (Christos Tsolakis)</managingEditor><webMaster>ctsol001@odu.edu (Christos Tsolakis)</webMaster><lastBuildDate>Sun, 09 Oct 2016 00:00:00 +0000</lastBuildDate><atom:link href="https://ctsolakis.com/tags/utilities/index.xml" rel="self" type="application/rss+xml"/><item><title>Linediff : Comparing files snippet by snippet</title><link>https://ctsolakis.com/2016/10/09/linediff/</link><pubDate>Sun, 09 Oct 2016 00:00:00 +0000</pubDate><author>ctsol001@odu.edu (Christos Tsolakis)</author><guid>https://ctsolakis.com/2016/10/09/linediff/</guid><description>&lt;p>When performing big code changes like refactoring, comparing files can become
tedious and time consuming. One way to reduce the load is to compare the file
&lt;em>function by function&lt;/em> or even &lt;em>snippet by snippet&lt;/em> since, most of the time this is what you actually need.
A plugin for vim that works very closely to the default diff tool of git &lt;a href="http://vimdoc.sourceforge.net/htmldoc/diff.html">vimdiff&lt;/a>
is &lt;a href="https://github.com/AndrewRadev/linediff.vim">linediff.vim&lt;/a>.&lt;/p>
&lt;p>&lt;strong>Cheetsheet&lt;/strong>&lt;/p>
&lt;ul>
&lt;li>&lt;code>^V&lt;/code> and use movement commands to select text&lt;/li>
&lt;li>&lt;code>:Linediff&lt;/code> to put selected text into buffer&lt;/li>
&lt;li>repeat for second snippet&lt;/li>
&lt;li>Use &lt;code>diffget&lt;/code> and &lt;code>diffput&lt;/code> and rest of vimdiff commands as usual&lt;/li>
&lt;li>Save both buffers once done&lt;/li>
&lt;/ul></description></item><item><title>Evaluating mesh volume from surface</title><link>https://ctsolakis.com/2015/10/30/evaluate-mesh-volume-from-surface/</link><pubDate>Fri, 30 Oct 2015 00:00:00 +0000</pubDate><author>ctsol001@odu.edu (Christos Tsolakis)</author><guid>https://ctsolakis.com/2015/10/30/evaluate-mesh-volume-from-surface/</guid><description>&lt;p>One of the first tests one needs to implement when generating meshes is a volume test.
The main idea like in many other tests is to evaluate the same quantity in two
different ways and then compare the results. If everything is correct the results should
be close up to some rounding precision error.&lt;/p>
&lt;p>When dealing with surface vs volume calculation a familiar method from multi-variable calculus
is the Divergence theorem [1] :&lt;/p></description></item><item><title>Removing white pixels from figures</title><link>https://ctsolakis.com/2015/03/18/remove-white-pixels/</link><pubDate>Wed, 18 Mar 2015 00:00:00 +0000</pubDate><author>ctsol001@odu.edu (Christos Tsolakis)</author><guid>https://ctsolakis.com/2015/03/18/remove-white-pixels/</guid><description>&lt;p>Quite often, especially when you are working with presentations, you may realize
that you need to remove the white background from your figures. One way is to
use any photo editing software like Gimp for example and remove the background.
But if you have a lot of files and you don&amp;rsquo;t need smoothing or any other effect
you can also use a simple script like this:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-python" data-lang="python">&lt;span class="line">&lt;span class="cl">&lt;span class="ch">#!/usr/bin/env python &lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1">#source : http://stackoverflow.com/a/765829&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="kn">from&lt;/span> &lt;span class="nn">PIL&lt;/span> &lt;span class="kn">import&lt;/span> &lt;span class="n">Image&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="kn">import&lt;/span> &lt;span class="nn">sys&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">white&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="p">(&lt;/span>&lt;span class="mi">255&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="mi">255&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="mi">255&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="mi">255&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">transparent&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="p">(&lt;/span>&lt;span class="mi">255&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="mi">255&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="mi">255&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="mi">0&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="k">for&lt;/span> &lt;span class="n">infile&lt;/span> &lt;span class="ow">in&lt;/span> &lt;span class="n">sys&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">argv&lt;/span>&lt;span class="p">[&lt;/span>&lt;span class="mi">1&lt;/span>&lt;span class="p">:]:&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">img&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="n">Image&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">open&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">infile&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">img&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="n">img&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">convert&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="s2">&amp;#34;RGBA&amp;#34;&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">pixdata&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="n">img&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">load&lt;/span>&lt;span class="p">()&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="k">for&lt;/span> &lt;span class="n">y&lt;/span> &lt;span class="ow">in&lt;/span> &lt;span class="n">xrange&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">img&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">size&lt;/span>&lt;span class="p">[&lt;/span>&lt;span class="mi">1&lt;/span>&lt;span class="p">]):&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="k">for&lt;/span> &lt;span class="n">x&lt;/span> &lt;span class="ow">in&lt;/span> &lt;span class="n">xrange&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">img&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">size&lt;/span>&lt;span class="p">[&lt;/span>&lt;span class="mi">0&lt;/span>&lt;span class="p">]):&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="k">if&lt;/span> &lt;span class="n">pixdata&lt;/span>&lt;span class="p">[&lt;/span>&lt;span class="n">x&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">y&lt;/span>&lt;span class="p">]&lt;/span> &lt;span class="o">==&lt;/span> &lt;span class="n">white&lt;/span>&lt;span class="p">:&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">pixdata&lt;/span>&lt;span class="p">[&lt;/span>&lt;span class="n">x&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">y&lt;/span>&lt;span class="p">]&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="n">transparent&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">img&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">save&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">infile&lt;/span> &lt;span class="o">+&lt;/span> &lt;span class="s2">&amp;#34;_modified&amp;#34;&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="s2">&amp;#34;PNG&amp;#34;&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>&lt;a href="http://stackoverflow.com/a/765829">source&lt;/a>&lt;/p></description></item></channel></rss>