<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:blogger='http://schemas.google.com/blogger/2008' xmlns:georss='http://www.georss.org/georss' xmlns:gd="http://schemas.google.com/g/2005" xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-7854038</id><updated>2024-11-01T14:24:40.312+05:00</updated><category term="books"/><category term="SML"/><category term="android"/><category term="squeak"/><category term="aatif nawaz"/><category term="emacs"/><category term="expensive"/><category term="facebook"/><category term="git"/><category term="grr"/><category term="htc"/><category term="manarat jeddah"/><category term="movie"/><category term="qotd"/><category term="umrah"/><title type='text'>screaming modems</title><subtitle type='html'>-&amp;gt; &lt;a href=&quot;https://node.pk/56kmodem/&quot;&gt;hear them scream&lt;/a&gt;</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://rotatef.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7854038/posts/default?redirect=false'/><link rel='alternate' type='text/html' href='http://rotatef.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><link rel='next' type='application/atom+xml' href='http://www.blogger.com/feeds/7854038/posts/default?start-index=26&amp;max-results=25&amp;redirect=false'/><author><name>rotatef</name><uri>http://www.blogger.com/profile/05731049271980572297</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>192</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-7854038.post-480616741117558177</id><published>2016-08-02T18:55:00.000+05:00</published><updated>2016-08-02T18:55:03.398+05:00</updated><title type='text'>oenophile&#39;s quandary</title><content type='html'>&lt;p&gt;Actually, philosophers call that the &lt;strong&gt;&lt;a href=&quot;http://wondermark.com/654/&quot;&gt;Oenophile&#39;s Quandary&lt;/a&gt;&lt;/strong&gt;!  Presented with something that, over time, increases in quality (like wine) or in value (like money in a savings account), &lt;strong&gt;when&#39;s&lt;/strong&gt; the right time to use it?&lt;/p&gt;</content><link rel='replies' type='application/atom+xml' href='http://rotatef.blogspot.com/feeds/480616741117558177/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/7854038/480616741117558177' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7854038/posts/default/480616741117558177'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7854038/posts/default/480616741117558177'/><link rel='alternate' type='text/html' href='http://rotatef.blogspot.com/2016/08/oenophiles-quandary.html' title='oenophile&#39;s quandary'/><author><name>rotatef</name><uri>http://www.blogger.com/profile/05731049271980572297</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7854038.post-8872954356875790149</id><published>2016-07-10T01:36:00.002+05:00</published><updated>2016-07-10T01:36:38.837+05:00</updated><title type='text'>emacs and installing packages over TLS</title><content type='html'>&lt;p&gt;I find this &lt;a href=&quot;https://glyph.twistedmatrix.com/2015/11/editor-malware.html&quot;&gt;article&lt;/a&gt; very useful.  It walks you through setting up Emacs to download ELPA/MELPA packages over TLS, and also verifying the certificates.&lt;/p&gt;</content><link rel='enclosure' type='text/html' href='https://glyph.twistedmatrix.com/2015/11/editor-malware.html' length='0'/><link rel='replies' type='application/atom+xml' href='http://rotatef.blogspot.com/feeds/8872954356875790149/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/7854038/8872954356875790149' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7854038/posts/default/8872954356875790149'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7854038/posts/default/8872954356875790149'/><link rel='alternate' type='text/html' href='http://rotatef.blogspot.com/2016/07/emacs-and-installing-packages-over-tls.html' title='emacs and installing packages over TLS'/><author><name>rotatef</name><uri>http://www.blogger.com/profile/05731049271980572297</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7854038.post-6141641107909329060</id><published>2016-07-10T01:05:00.000+05:00</published><updated>2016-07-10T01:05:25.687+05:00</updated><title type='text'>various configs</title><content type='html'>&lt;p&gt;I might as well put them in one place.&lt;/p&gt;
&lt;h3&gt;Emacs (from trunk):&lt;/h3&gt;
&lt;pre&gt;./configure --without-pop --with-x-toolkit=lucid \
    --prefix=/usr/local/src --without-toolkit-scroll-bars \
    --without-compress-install --with-file-notification=yes \
    --with-wide-int --with-modules&lt;/pre&gt;
&lt;h3&gt;XScreenSaver:&lt;/h3&gt;
&lt;pre&gt;./configure --with-gl --with-gle --with-xft --with-xshm-ext \
    --with-pixbuf --with-xdbe-ext --with-readdisplay \
    --with-browser=/usr/bin/firefox&lt;/pre&gt;
&lt;h3&gt;SBCL (1.3.x):&lt;/h3&gt;
&lt;pre&gt;sh ./make.sh --fancy --with-sb-fasteval --without-sb-eval&lt;/pre&gt;
&lt;h3&gt;nvi:&lt;/h3&gt;
&lt;pre&gt;export EXINIT=&quot;set noeb sm verbose ruler showmode&quot;&lt;/pre&gt;
&lt;h3&gt;GTK:&lt;/h3&gt;
&lt;p&gt;&lt;em&gt;~/.gtkrc-2.0&lt;/em&gt;:&lt;/p&gt;
&lt;pre&gt;gtk-key-theme-name = &quot;Emacs&quot;
include &quot;/usr/share/themes/Emacs/gtk-2.0-key/gtkrc&quot;
gtk-entry-select-on-focus = 0&lt;/pre&gt;
&lt;p&gt;&lt;em&gt;~/.gtkrc-3.0&lt;/em&gt;:&lt;/p&gt;
&lt;pre&gt;gtk-key-theme-name = &quot;Emacs&quot;
include &quot;/usr/share/themes/Emacs/gtk-3.0/gtk-keys.css&quot;&lt;/pre&gt;
&lt;p&gt;&lt;em&gt;~/.config/gtk-3.0/settings.ini&lt;/em&gt;:&lt;/p&gt;
&lt;pre&gt;[Settings]
gtk-key-theme-name = Emacs&lt;/pre&gt;
&lt;h3&gt;lein:&lt;/h3&gt;
&lt;p&gt;&lt;em&gt;~/.lein/profiles.clj&lt;/em&gt;:&lt;/p&gt;
&lt;pre&gt;{:user {:plugins [[cider/cider-nrepl &quot;0.12.0&quot;]
                  [lein-pprint &quot;1.1.2&quot;]
                  [lein-droid &quot;0.4.4&quot;]
                  [venantius/ultra &quot;0.4.1&quot;]
                  [lein-ancient &quot;0.6.10&quot;]]}
 :repl {:dependencies [^:displace [org.clojure/clojure &quot;1.8.0&quot;]]}
 :android-common {:android {:sdk-path &quot;/home/fn/android-sdk&quot;}}}&lt;/pre&gt;
</content><link rel='replies' type='application/atom+xml' href='http://rotatef.blogspot.com/feeds/6141641107909329060/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/7854038/6141641107909329060' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7854038/posts/default/6141641107909329060'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7854038/posts/default/6141641107909329060'/><link rel='alternate' type='text/html' href='http://rotatef.blogspot.com/2016/07/various-configs.html' title='various configs'/><author><name>rotatef</name><uri>http://www.blogger.com/profile/05731049271980572297</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7854038.post-8261694621829318244</id><published>2016-01-10T19:25:00.001+05:00</published><updated>2016-01-10T19:25:58.723+05:00</updated><title type='text'>Richard Feynman Computer Heuristics Lecture</title><content type='html'>&lt;iframe allowfullscreen=&quot;&quot; frameborder=&quot;0&quot; height=&quot;270&quot; src=&quot;https://www.youtube.com/embed/EKWGGDXe5MA&quot; width=&quot;480&quot;&gt;&lt;/iframe&gt;</content><link rel='replies' type='application/atom+xml' href='http://rotatef.blogspot.com/feeds/8261694621829318244/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/7854038/8261694621829318244' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7854038/posts/default/8261694621829318244'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7854038/posts/default/8261694621829318244'/><link rel='alternate' type='text/html' href='http://rotatef.blogspot.com/2016/01/richard-feynman-computer-heuristics.html' title='Richard Feynman Computer Heuristics Lecture'/><author><name>rotatef</name><uri>http://www.blogger.com/profile/05731049271980572297</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://img.youtube.com/vi/EKWGGDXe5MA/default.jpg" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7854038.post-6308976596406531585</id><published>2015-11-16T01:23:00.001+05:00</published><updated>2015-11-16T01:23:30.252+05:00</updated><title type='text'>De Staat - Witch Doctor</title><content type='html'>&lt;iframe allowfullscreen=&quot;&quot; frameborder=&quot;0&quot; height=&quot;270&quot; src=&quot;https://www.youtube.com/embed/0ttGgIQpAUc&quot; width=&quot;480&quot;&gt;&lt;/iframe&gt;</content><link rel='replies' type='application/atom+xml' href='http://rotatef.blogspot.com/feeds/6308976596406531585/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/7854038/6308976596406531585' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7854038/posts/default/6308976596406531585'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7854038/posts/default/6308976596406531585'/><link rel='alternate' type='text/html' href='http://rotatef.blogspot.com/2015/11/de-staat-witch-doctor.html' title='De Staat - Witch Doctor'/><author><name>rotatef</name><uri>http://www.blogger.com/profile/05731049271980572297</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://img.youtube.com/vi/0ttGgIQpAUc/default.jpg" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7854038.post-1707187048406228062</id><published>2015-04-13T22:19:00.004+05:00</published><updated>2015-04-13T22:56:50.413+05:00</updated><title type='text'>Taxpayers in Pakistan</title><content type='html'>Pakistan&#39;s &lt;a href=&quot;http://www.fbr.gov.pk/&quot; rel=&quot;nofollow&quot; target=&quot;_blank&quot;&gt;FBR&lt;/a&gt;, the tax collectors, recently published a PDF file with a list of all tax payers, both corporate and individual. (There&#39;s also a third category of &quot;AOPs&quot; -- whatever that is.) The file is linked off of the front page of the website.&lt;br /&gt;
&lt;br /&gt;
I downloaded a copy of the file and used pdftotext (from &lt;a href=&quot;http://www.foolabs.com/xpdf/&quot; target=&quot;_blank&quot;&gt;xpdf&lt;/a&gt;) to convert it to a more pliable format, and then went to town. The conversion process wasn&#39;t perfect (tabular data doesn&#39;t always convert to one PDF row to one text row; see also the disclaimer at the bottom), but it&#39;s very easy to figure out the format by visually comparing it with the source.&lt;br /&gt;
&lt;br /&gt;
(Side note: if I&#39;d tried to import it into Google Sheets or Excel, maybe the conversion would&#39;ve been better.)&lt;br /&gt;
&lt;br /&gt;
Read the file from the string &quot;COMPANY Taxpayer&quot; until you see &quot;332024095867&quot;at the beginning of the line. That&#39;s the CNIC for the first individual listed in the file (listed as &quot;#OHD ,NAWAZ&quot;-- what does that say about their data validation procedures?).&lt;br /&gt;
&lt;br /&gt;
Extract all strings in the format &amp;lt;digits&amp;gt;-&amp;lt;digit&amp;gt;. Those are company NTNs.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;There are 64,960 companies in the file.&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
Extract all strings that are 13 digits long. Those are CNICs.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;There are 779,077 taxpayers in the file. That&#39;s an average of 11.993 taxpayers per company.&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
How about taxes paid? (There are so many Rs 0 entries!) This is a little harder to extract. For companies: find a line that has NTNs in it, skip the next blank line, then read the taxes lines until you reach another blank line. Unfortunately, there&#39;s a problem with this approach: I should read 64,960 entries, but I read 64,886. Close enough!&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Companies paid a total of Rs 376,174,769,305. 25,464 paid nothing.&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
People next, using a similar approach. I found 766,791 entries.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Individuals paid Rs 113,663,076,659 and 294,475 paid nothing.&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;DISCLAIMER&lt;/b&gt;:&lt;i&gt; Because the conversion process isn&#39;t completely accurate my numbers are off by a bit. Also there&#39;s a lot of garbage in the file -- name fields with numbers before the names; CNIC fields that are empty or are six or seven digits long, etc.&lt;/i&gt;</content><link rel='replies' type='application/atom+xml' href='http://rotatef.blogspot.com/feeds/1707187048406228062/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/7854038/1707187048406228062' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7854038/posts/default/1707187048406228062'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7854038/posts/default/1707187048406228062'/><link rel='alternate' type='text/html' href='http://rotatef.blogspot.com/2015/04/taxpayers-in-pakistan.html' title='Taxpayers in Pakistan'/><author><name>rotatef</name><uri>http://www.blogger.com/profile/05731049271980572297</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7854038.post-1170134136506876620</id><published>2015-02-16T21:53:00.003+05:00</published><updated>2015-02-16T21:53:56.738+05:00</updated><title type='text'>apt-cache</title><content type='html'>The other day I was helping a co-worker set up Ubuntu in VirtualBox, to simulate the production servers. &amp;nbsp;At one point, I told him to search for a package by typing &quot;&lt;i&gt;apt dash cache space search space dash n space ...&lt;/i&gt;&quot;&lt;br /&gt;
&lt;br /&gt;
He types it in and says, it didn&#39;t work. &amp;nbsp;I walk over to check his display. &amp;nbsp;He&#39;s written &quot;&lt;i&gt;apt-gash search -n ...&lt;/i&gt;&quot;&lt;br /&gt;
&lt;br /&gt;
I say &quot;You didn&#39;t take pre-med in college, you studied CS! &amp;nbsp;It&#39;s apt-cache, not apt-gash!&quot; &amp;nbsp;He didn&#39;t understand what I meant.&lt;br /&gt;
&lt;br /&gt;
So he corrects it, and types in &quot;&lt;i&gt;apt-cash search -n ...&lt;/i&gt;&quot;</content><link rel='replies' type='application/atom+xml' href='http://rotatef.blogspot.com/feeds/1170134136506876620/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/7854038/1170134136506876620' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7854038/posts/default/1170134136506876620'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7854038/posts/default/1170134136506876620'/><link rel='alternate' type='text/html' href='http://rotatef.blogspot.com/2015/02/apt-cache.html' title='apt-cache'/><author><name>rotatef</name><uri>http://www.blogger.com/profile/05731049271980572297</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7854038.post-2331988930918193801</id><published>2015-01-18T19:06:00.001+05:00</published><updated>2015-01-25T21:27:21.086+05:00</updated><title type='text'>change in brent crude and lahore gasoline prices in 2014</title><content type='html'>Oil prices have fallen worldwide. &amp;nbsp;I wanted to see how much of that drop is reflected in the price I pay for gasoline at the pump. &amp;nbsp;Is the cost of filling my tank dropping at the same rate as crude oil?&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;background-color: #cccccc;&quot;&gt;&lt;span style=&quot;font-family: Verdana, sans-serif;&quot;&gt;Summary: calculated against January 1, 2014&#39;s prices, on January 2, 2015 the drop in crude is&amp;nbsp;&lt;b&gt;49.08%&lt;/b&gt;&amp;nbsp;and the drop in my local prices&amp;nbsp;&lt;b&gt;30.48%&lt;/b&gt;.&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
I downloaded the Brent crude prices for &lt;a href=&quot;https://www.quandl.com/CHRIS/ICE_B1-Brent-Crude-Futures-Continuous-Contract-1-B1-Front-Month&quot; target=&quot;_blank&quot;&gt;Jan 1 2014 to Jan 2 2015&lt;/a&gt;, and grabbed the fields I wanted:&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace; font-size: x-small;&quot;&gt;$ awk -F, &#39;BEGIN { OFS=&quot;,&quot; } { print $1, $5}&#39; ~/Downloads/CHRIS-ICE_B1.csv &amp;nbsp;| tail -r &amp;gt; crude.csv&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace; font-size: x-small;&quot;&gt;$ head crude.csv&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace; font-size: x-small;&quot;&gt;2014-01-01,110.8&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace; font-size: x-small;&quot;&gt;2014-01-02,107.78&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace; font-size: x-small;&quot;&gt;2014-01-03,106.89&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace; font-size: x-small;&quot;&gt;2014-01-06,106.73&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace; font-size: x-small;&quot;&gt;2014-01-07,107.35&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace; font-size: x-small;&quot;&gt;2014-01-08,107.15&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace; font-size: x-small;&quot;&gt;2014-01-09,106.39&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace; font-size: x-small;&quot;&gt;2014-01-10,107.25&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace; font-size: x-small;&quot;&gt;2014-01-13,106.75&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace; font-size: x-small;&quot;&gt;2014-01-14,106.39&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace; font-size: x-small;&quot;&gt;$&amp;nbsp;&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
There are several gas stations on my way to work, but only two Shell stations that I can get to without making a U-turn. &amp;nbsp;For the local gasoline prices, I visited the &lt;a href=&quot;http://www.ogra.org.pk/&quot; target=&quot;_blank&quot;&gt;regulator (OGRA)&#39;s&amp;nbsp;site&lt;/a&gt; and grabbed the prices for &lt;a href=&quot;http://www.ogra.org.pk/cats_disp.php?cat=148&quot; target=&quot;_blank&quot;&gt;Shell&lt;/a&gt;. &amp;nbsp;I saved the PDF files and did&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;for i in *.pdf; do&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;&amp;nbsp; pdftops $i - 2&amp;gt;/dev/null | ps2ascii - ${i%pdf}txt&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;&amp;nbsp; echo done with $i&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;done&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
pdftops ships with &lt;a href=&quot;http://www.foolabs.com/xpdf/&quot; target=&quot;_blank&quot;&gt;xpdf&lt;/a&gt; and ps2ascii with &lt;a href=&quot;http://www.ghostscript.com/&quot; target=&quot;_blank&quot;&gt;Ghostscript&lt;/a&gt;. &amp;nbsp;It&#39;s not a perfect process, but close enough:&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace; font-size: x-small;&quot;&gt;$ grep &#39;LINK FILLING STATION LAHORE MODEL TOWN LINK ROAD&#39; *.txt&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace; font-size: x-small;&quot;&gt;1388983409-201401.txt:386 LINK FILLING STATION LAHORE MODEL TOWN LINK ROAD 113.25 117.24 na&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace; font-size: x-small;&quot;&gt;1391506062-201402.txt:383 LINK FILLING STATION LAHORE MODEL TOWN LINK ROAD 113.25 117.24 na&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace; font-size: x-small;&quot;&gt;1393998747-201403.txt:383 LINK FILLING STATION LAHORE MODEL TOWN LINK ROAD 110.52 117.24 na&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace; font-size: x-small;&quot;&gt;1396419125-201404.txt:384 LINK FILLING STATION LAHORE MODEL TOWN LINK ROAD 108.80 114.34 na&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace; font-size: x-small;&quot;&gt;1399270867-201405.txt:385 LINK FILLING STATION LAHORE MODEL TOWN LINK ROAD 108.45 109.82 na&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace; font-size: x-small;&quot;&gt;1401789424-201406.txt:385 LINK FILLING STATION LAHORE MODEL TOWN LINK ROAD 108.44 109.81 na&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace; font-size: x-small;&quot;&gt;1404290583-201407.txt:385 LINK FILLING STATION LAHORE MODEL TOWN LINK ROAD 108.44 109.81 na&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace; font-size: x-small;&quot;&gt;1407392347-201408.txt:386 LINK FILLING STATION LAHORE MODEL TOWN LINK ROAD 108.44 109.81 na&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace; font-size: x-small;&quot;&gt;1409731282-201409.txt:LINK FILLING STATION LAHORE MODEL TOWN LINK ROAD 107.03 108.81 naLOKARI FILLING STATION BHALWAL 9 BHALWAL KOT MOMIN ROAD 107.34 109.12 na&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace; font-size: x-small;&quot;&gt;1412235166-201410.txt:386 LINK FILLING STATION LAHORE MODEL TOWN LINK ROAD 104.09 107.86 n/a&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace; font-size: x-small;&quot;&gt;1415185107-201411.txt:387 LINK FILLING STATION LAHORE MODEL TOWN LINK ROAD 94.66 101.68 n/a&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace; font-size: x-small;&quot;&gt;1417519204-201412.txt:LINK FILLING STATION LAHORE MODEL TOWN LINK ROAD 84.99 94.55 n/a&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace; font-size: x-small;&quot;&gt;1420218912-201501.txt:LINK FILLING STATION LAHORE MODEL TOWN LINK ROAD 78.73 86.68 n/a&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace; font-size: x-small;&quot;&gt;$&amp;nbsp;&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
The first column of figures is what I want.&lt;br /&gt;
&lt;br /&gt;
Combining the local prices with the crude oil prices, I get a simple &lt;a href=&quot;https://docs.google.com/spreadsheets/d/1NIziQm_MNG1jZuPsFCPNc5_MgIDsFaPG7fMxXxmFY2M/edit?usp=sharing&quot; target=&quot;_blank&quot;&gt;spreadsheet&lt;/a&gt;, and voila:&lt;br /&gt;
&lt;br /&gt;
&lt;iframe frameborder=&quot;0&quot; height=&quot;371&quot; scrolling=&quot;no&quot; seamless=&quot;&quot; src=&quot;https://docs.google.com/spreadsheets/d/1NIziQm_MNG1jZuPsFCPNc5_MgIDsFaPG7fMxXxmFY2M/pubchart?oid=835067621&amp;amp;format=interactive&quot; width=&quot;600&quot;&gt;&lt;/iframe&gt;&lt;br /&gt;
&lt;br /&gt;
The figures seem to show a large gap between changes to local prices and Brent crude (no surprise there). &amp;nbsp;Calculated against January 1, 2014&#39;s prices, on January 2, 2015 the drop in crude is &lt;b&gt;49.08%&lt;/b&gt; and the drop in local prices &lt;b&gt;30.48%&lt;/b&gt;.&lt;br /&gt;
&lt;br /&gt;
Disclaimer:&lt;br /&gt;
&lt;br /&gt;
&lt;ul&gt;
&lt;li&gt;While crude oil is priced in dollars and gasoline in rupees, I&#39;m looking at the daily&amp;nbsp;&lt;i&gt;change&lt;/i&gt;&amp;nbsp;in percentage terms, with the base set to January 1, 2014&#39;s prices. &amp;nbsp;I don&#39;t think the exchange rate has changed much in the past year.&lt;/li&gt;
&lt;li&gt;Since OGRA&#39;s PDF files don&#39;t tell me when the gasoline prices went into effect, I&#39;m going to assume the first working day of each month.&lt;/li&gt;
&lt;li&gt;I don&#39;t know the exact cost of importing crude (or refined) oil to Pakistan. &amp;nbsp;The Brent crude price might not be all that relevant here. &amp;nbsp;However, this post is about investigating my&amp;nbsp;&lt;i&gt;perception&lt;/i&gt;&amp;nbsp;of how much the price has dropped, based on what I see in the news and what I see at the gas pump.&lt;/li&gt;
&lt;li&gt;This looks at the prices for just one company&#39;s gas station -- the one I frequent. &amp;nbsp;Other gas stations, located closer to the port of Karachi or local refineries, might show a larger drop.&lt;/li&gt;
&lt;/ul&gt;
&lt;div&gt;
&lt;span style=&quot;font-size: x-small;&quot;&gt;&lt;i&gt;(edited on January 25, 2015 to add a summary and fix a typo)&lt;/i&gt;&lt;/span&gt;&lt;/div&gt;
</content><link rel='replies' type='application/atom+xml' href='http://rotatef.blogspot.com/feeds/2331988930918193801/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/7854038/2331988930918193801' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7854038/posts/default/2331988930918193801'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7854038/posts/default/2331988930918193801'/><link rel='alternate' type='text/html' href='http://rotatef.blogspot.com/2015/01/change-in-brent-crude-and-lahore.html' title='change in brent crude and lahore gasoline prices in 2014'/><author><name>rotatef</name><uri>http://www.blogger.com/profile/05731049271980572297</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7854038.post-6142105575404582617</id><published>2015-01-12T11:59:00.004+05:00</published><updated>2015-01-12T11:59:57.200+05:00</updated><title type='text'>this weekend&#39;s find</title><content type='html'>&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgYOz3uzTsxDspOS2v7MzqREiubL2ookccSiSsZOyiF8FJnaaPgHd2SXMedqH2AZnIRcyWdPlkDv269x64DZ_iRZI0YOR8JP0-OH4ZvBUKMlG3XhJLVCN-ua2FIWutfOnXVVThrYQ/s1600/IMG_20150111_142537.jpg&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgYOz3uzTsxDspOS2v7MzqREiubL2ookccSiSsZOyiF8FJnaaPgHd2SXMedqH2AZnIRcyWdPlkDv269x64DZ_iRZI0YOR8JP0-OH4ZvBUKMlG3XhJLVCN-ua2FIWutfOnXVVThrYQ/s1600/IMG_20150111_142537.jpg&quot; height=&quot;480&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;</content><link rel='replies' type='application/atom+xml' href='http://rotatef.blogspot.com/feeds/6142105575404582617/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/7854038/6142105575404582617' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7854038/posts/default/6142105575404582617'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7854038/posts/default/6142105575404582617'/><link rel='alternate' type='text/html' href='http://rotatef.blogspot.com/2015/01/this-weekends-find.html' title='this weekend&#39;s find'/><author><name>rotatef</name><uri>http://www.blogger.com/profile/05731049271980572297</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgYOz3uzTsxDspOS2v7MzqREiubL2ookccSiSsZOyiF8FJnaaPgHd2SXMedqH2AZnIRcyWdPlkDv269x64DZ_iRZI0YOR8JP0-OH4ZvBUKMlG3XhJLVCN-ua2FIWutfOnXVVThrYQ/s72-c/IMG_20150111_142537.jpg" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7854038.post-2071378583673419552</id><published>2015-01-10T23:23:00.000+05:00</published><updated>2015-01-10T23:23:04.646+05:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="aatif nawaz"/><category scheme="http://www.blogger.com/atom/ns#" term="manarat jeddah"/><category scheme="http://www.blogger.com/atom/ns#" term="umrah"/><title type='text'>manarat jeddah, january 2015</title><content type='html'>&lt;a href=&quot;https://www.linkedin.com/in/anawaz&quot; target=&quot;_blank&quot;&gt;One of my brothers&lt;/a&gt; went to Saudi Arabia with his family for &lt;a href=&quot;https://en.wikipedia.org/wiki/Umrah&quot; target=&quot;_blank&quot;&gt;umrah&lt;/a&gt; a couple of weeks ago. &amp;nbsp;He was able to spend a few days visiting places in Jeddah -- places he hadn&#39;t seen since his last visit in 1995.&lt;br /&gt;
&lt;br /&gt;
One of them was his (and my) old school, &lt;a href=&quot;https://manaratjeddahen.maarif.com.sa/&quot; target=&quot;_blank&quot;&gt;Manarat Jeddah&lt;/a&gt;. &amp;nbsp;I&#39;m re-sharing his pictures below, with a guide to where they were taken. &amp;nbsp;You can find the campus on &lt;a href=&quot;https://goo.gl/maps/Xbiyf&quot; target=&quot;_blank&quot;&gt;Google Maps&lt;/a&gt;, at the corner of Jabal Kudai and Jabal Dallah. &amp;nbsp;The school itself has moved to a different location.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi_z4KZGTH_33KJW7s1AT5uuAUrVtKeiRSXzf02PzBTVCOW5jjgf5Q8y-ZPp2A_B34rzJIllUn6A-VLvsxRUCIkfWyOIzS3yPRyWz0i0zVdCH72Z9AyiUcPbWtqgz1pUSGTciYQ_g/s1600/00-guide.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi_z4KZGTH_33KJW7s1AT5uuAUrVtKeiRSXzf02PzBTVCOW5jjgf5Q8y-ZPp2A_B34rzJIllUn6A-VLvsxRUCIkfWyOIzS3yPRyWz0i0zVdCH72Z9AyiUcPbWtqgz1pUSGTciYQ_g/s1600/00-guide.png&quot; height=&quot;480&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh2_jtNAPgx3f6IB0pwWoRIy0K_7N7MAQv43o2UwXea_cDzCC1x0hdpU-t0H33HRBeYgI1tuoF5KIlMS8OInCuEHAKZP05oSAQung5tKPQj-suoRBehVHODhxlWSQAYeGNZQYIl7Q/s1600/01-panorama.jpg&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh2_jtNAPgx3f6IB0pwWoRIy0K_7N7MAQv43o2UwXea_cDzCC1x0hdpU-t0H33HRBeYgI1tuoF5KIlMS8OInCuEHAKZP05oSAQung5tKPQj-suoRBehVHODhxlWSQAYeGNZQYIl7Q/s1600/01-panorama.jpg&quot; height=&quot;360&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiDFhtuYrVfl3wAi-B1BSJ2T5HGntO72HNH6M8VnlQpP94IgGLsb1X61b4A2D012g1ax3Ug6SU4XLJ2ESU4TP3BAQaz4RCPSmoDBZhDQB3nAjIiB2dEKuxdq_IfU4SoClAI9SfnJw/s1600/02-corner-view.jpg&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiDFhtuYrVfl3wAi-B1BSJ2T5HGntO72HNH6M8VnlQpP94IgGLsb1X61b4A2D012g1ax3Ug6SU4XLJ2ESU4TP3BAQaz4RCPSmoDBZhDQB3nAjIiB2dEKuxdq_IfU4SoClAI9SfnJw/s1600/02-corner-view.jpg&quot; height=&quot;360&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhDhnyGlqsvIKXmQYnqVpwitt1iWL1TogQFuyBeFnKUXKHeWJM8P4Dou3c-zG9BChP25aEhvtG9sDk5yVFihM3_8W7TWyhQVXK9RHgYzaYnzAnqpu0AYfpi7sRpidx3oYvgKc3Dig/s1600/03-side-gate-1.jpg&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhDhnyGlqsvIKXmQYnqVpwitt1iWL1TogQFuyBeFnKUXKHeWJM8P4Dou3c-zG9BChP25aEhvtG9sDk5yVFihM3_8W7TWyhQVXK9RHgYzaYnzAnqpu0AYfpi7sRpidx3oYvgKc3Dig/s1600/03-side-gate-1.jpg&quot; height=&quot;360&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjKSHFu5ilPX1i2uuhwS5BZrUix1PfEcx3JdsME16dwLvyCafkdkQYeFagaQVoke7h0K-VgNumiAj7acOoPvuXdr5LTbB85aAGtYDztoDWw68zvXGv0SGuj7cc2DQIsTK6JDtvlyg/s1600/04-side-gate-2.jpg&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjKSHFu5ilPX1i2uuhwS5BZrUix1PfEcx3JdsME16dwLvyCafkdkQYeFagaQVoke7h0K-VgNumiAj7acOoPvuXdr5LTbB85aAGtYDztoDWw68zvXGv0SGuj7cc2DQIsTK6JDtvlyg/s1600/04-side-gate-2.jpg&quot; height=&quot;360&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjSted632WTWzubw1YbVqYOZHQx4bsjDFWb4-umvSTPCzEFt_4f8Ol0FXSAYCDV8BQToQvgk1-fsyxIPrzBtcsM7DM7v2EJtrlS68M6ItC9GuKxjfvt09Erw54reySi_OyEjTSnHQ/s1600/05-primary-gate-1.jpg&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjSted632WTWzubw1YbVqYOZHQx4bsjDFWb4-umvSTPCzEFt_4f8Ol0FXSAYCDV8BQToQvgk1-fsyxIPrzBtcsM7DM7v2EJtrlS68M6ItC9GuKxjfvt09Erw54reySi_OyEjTSnHQ/s1600/05-primary-gate-1.jpg&quot; height=&quot;360&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjdqm1Udfc382coXE3XDx_JYBSa6n5v6hZ8T5cTO5RyqsUSCSlaFXOzEA6aFDLd2AQ9j9g69MBcVX0MXzY-77WvP69BFuO1w59mq9qFfvHUWUw7AE-HIgMQKzhWi3u3lw2BS1s5dA/s1600/06-primary-gate-2.jpg&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjdqm1Udfc382coXE3XDx_JYBSa6n5v6hZ8T5cTO5RyqsUSCSlaFXOzEA6aFDLd2AQ9j9g69MBcVX0MXzY-77WvP69BFuO1w59mq9qFfvHUWUw7AE-HIgMQKzhWi3u3lw2BS1s5dA/s1600/06-primary-gate-2.jpg&quot; height=&quot;360&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjz_rR-34Q-dA8_CgMg13KKKXWP7fLktlRUOdjJR7Ba6jZZ8USwPFJOvApSLyqD6nh-D_vMQBV8NubYBLIRx19aa3x6CU7BITxqDRIkpFhTCIMWH0k1r7Rui2pQ1aIHhBnv9JEcsQ/s1600/07-courtyard-gate.jpg&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjz_rR-34Q-dA8_CgMg13KKKXWP7fLktlRUOdjJR7Ba6jZZ8USwPFJOvApSLyqD6nh-D_vMQBV8NubYBLIRx19aa3x6CU7BITxqDRIkpFhTCIMWH0k1r7Rui2pQ1aIHhBnv9JEcsQ/s1600/07-courtyard-gate.jpg&quot; height=&quot;360&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjdMl0ExplLF3f2dfQjuNJ_zWzgzv46l7VUxCNJHwBirfkkuO_q_R0iPUvjjOyza2wUtVwn_VwpcJ4SFQn2LNKq-VU0sDC8fV7CeraWBIo9Q7i1yPYjygsQ1OCM_Ua4qdIFa0aIFQ/s1600/08-inside-courtyard-1.jpg&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjdMl0ExplLF3f2dfQjuNJ_zWzgzv46l7VUxCNJHwBirfkkuO_q_R0iPUvjjOyza2wUtVwn_VwpcJ4SFQn2LNKq-VU0sDC8fV7CeraWBIo9Q7i1yPYjygsQ1OCM_Ua4qdIFa0aIFQ/s1600/08-inside-courtyard-1.jpg&quot; height=&quot;360&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiqwIThlPi4OEIB-5xIJH36bHpN5bhIyUTWpJ5XNEmLXqP7g834i2xIWojS2j0pt2V00ew4rdRqtBId-LCA-0QbdS9Qn-uF3_n5blPzNiCBIF_Mk0wiuA7hOdVrTnofyK9yYAOpGA/s1600/09-inside-courtyard-2.jpg&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiqwIThlPi4OEIB-5xIJH36bHpN5bhIyUTWpJ5XNEmLXqP7g834i2xIWojS2j0pt2V00ew4rdRqtBId-LCA-0QbdS9Qn-uF3_n5blPzNiCBIF_Mk0wiuA7hOdVrTnofyK9yYAOpGA/s1600/09-inside-courtyard-2.jpg&quot; height=&quot;360&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgLV4i6UK_p27HTb0YSnvNFroURzbsBNnfvB-giV70h6jNMk3V3VLuIhlH9UROJB84GSeoMw0s3M3veVIj5SBYrDN7qv7_s5MAK5sklyk4tO-9yLlaB6Gs0up6FwQJZXoIo2ILvDA/s1600/10-schoolbus.jpg&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgLV4i6UK_p27HTb0YSnvNFroURzbsBNnfvB-giV70h6jNMk3V3VLuIhlH9UROJB84GSeoMw0s3M3veVIj5SBYrDN7qv7_s5MAK5sklyk4tO-9yLlaB6Gs0up6FwQJZXoIo2ILvDA/s1600/10-schoolbus.jpg&quot; height=&quot;225&quot; width=&quot;400&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiBXBfc17ymxjzuXnGA-nTe3aiTr4OcSAZxvqqhbJQoxf2Ely4qslE8eCjOjB-05wjZNRKwlmM1hSP4KMOp_0DwAxkOkwwFrrLh7apSA4vRYwzsW8-x6Z8fdn1fYqkbMZla3cqFtQ/s1600/11-back.jpg&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiBXBfc17ymxjzuXnGA-nTe3aiTr4OcSAZxvqqhbJQoxf2Ely4qslE8eCjOjB-05wjZNRKwlmM1hSP4KMOp_0DwAxkOkwwFrrLh7apSA4vRYwzsW8-x6Z8fdn1fYqkbMZla3cqFtQ/s1600/11-back.jpg&quot; height=&quot;360&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;</content><link rel='replies' type='application/atom+xml' href='http://rotatef.blogspot.com/feeds/2071378583673419552/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/7854038/2071378583673419552' title='9 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7854038/posts/default/2071378583673419552'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7854038/posts/default/2071378583673419552'/><link rel='alternate' type='text/html' href='http://rotatef.blogspot.com/2015/01/manarat-jeddah-january-2015.html' title='manarat jeddah, january 2015'/><author><name>rotatef</name><uri>http://www.blogger.com/profile/05731049271980572297</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi_z4KZGTH_33KJW7s1AT5uuAUrVtKeiRSXzf02PzBTVCOW5jjgf5Q8y-ZPp2A_B34rzJIllUn6A-VLvsxRUCIkfWyOIzS3yPRyWz0i0zVdCH72Z9AyiUcPbWtqgz1pUSGTciYQ_g/s72-c/00-guide.png" height="72" width="72"/><thr:total>9</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7854038.post-1117371199280219154</id><published>2014-12-03T16:57:00.001+05:00</published><updated>2014-12-03T16:57:38.210+05:00</updated><title type='text'>chibi-scheme and native client</title><content type='html'>Getting &lt;a href=&quot;https://code.google.com/p/chibi-scheme/&quot; target=&quot;_blank&quot;&gt;chibi-scheme&lt;/a&gt; to work with &lt;a href=&quot;http://www.gonacl.com/&quot; target=&quot;_blank&quot;&gt;Native Client&lt;/a&gt; was easier than I expected. &amp;nbsp;I used&lt;br /&gt;
&lt;ul&gt;
&lt;li&gt;chibi-scheme 0.7&lt;/li&gt;
&lt;li&gt;pepper-37&lt;/li&gt;
&lt;li&gt;Chrome 40&lt;/li&gt;
&lt;li&gt;on OS X 10.9.5&lt;/li&gt;
&lt;/ul&gt;
&lt;div&gt;
I unpacked the chibi-scheme tarball and the Native Client SDK into &lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;~/Source&lt;/span&gt;, and ran &lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;naclsdk update&lt;/span&gt; to grab the latest stable toolchain. &amp;nbsp;Then,&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;export NACL_SDK_ROOT=$HOME/Source/nacl_sdk/pepper_37&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;export CHIBI_ROOT=$HOME/Source/chibi-scheme-0.7&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;cd $CHIBI_ROOT&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;make SEXP_USE_DL=0 \&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;&amp;nbsp; CC=$NACL_SDK_ROOT/toolchain/mac_pnacl/bin/pnacl-clang++ \&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;&amp;nbsp; CFLAGS=&quot;-I$NACL_SDK_ROOT/include -I$NACL_SDK_ROOT/include/pnacl&quot; \&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;&amp;nbsp; LDFLAGS=&quot;-L$NACL_SDK_ROOT/lib/pnacl/Release -lnacl_io -lppapi -lpthread&quot; \&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;&amp;nbsp; STATICFLAGS=-DSEXP_USE_DL=0 \&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;&amp;nbsp; EXE=.pexe \&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;&amp;nbsp; chibi-scheme-static.pexe&lt;/span&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
You don&#39;t need &lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;chibi-scheme-static.pexe&lt;/span&gt;, but you do need the &lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;.o&lt;/span&gt; files. &amp;nbsp;Don&#39;t run &lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;make clean&lt;/span&gt; in this directory!&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
Next up, integrating &lt;i&gt;chibi-scheme&lt;/i&gt; into a &lt;i&gt;pnacl&lt;/i&gt; module, and then accessing that from a web page. &amp;nbsp;Here, I simply copied and adapted &lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;$NACL_SDK_ROOT/getting_started/part1&lt;/span&gt;: &lt;a href=&quot;https://gist.github.com/faried/175fb02a7da6795e8081&quot; target=&quot;_blank&quot;&gt;Makefile&lt;/a&gt; and &lt;a href=&quot;https://gist.github.com/faried/23ad4b0f80266323fb3e&quot; target=&quot;_blank&quot;&gt;code&lt;/a&gt;. &amp;nbsp;It shouldn&#39;t be too hard to adapt the example&#39;s &lt;i&gt;index.html&lt;/i&gt; to use the new module; at minimum, modify the example&#39;s page to say&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;&amp;lt;div id=&quot;listener&quot;&amp;gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;script type=&quot;text/javascript&quot;&amp;gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; var listener = document.getElementById(&#39;listener&#39;);&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; listener.addEventListener(&#39;load&#39;, moduleDidLoad, true);&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; listener.addEventListener(&#39;message&#39;, handleMessage, true);&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;/script&amp;gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;embed id=&quot;pn1&quot;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;width=0 height=0&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;src=&quot;pn1.nmf&quot;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;type=&quot;application/x-pnacl&quot; /&amp;gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;lt;/div&amp;gt;&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
Run &lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;make serve&lt;/span&gt;, and visit &lt;a href=&quot;http://localhost:5103/&quot;&gt;http://localhost:5103/&lt;/a&gt; in Chrome to load the page and module. &amp;nbsp;Pop open a console and type&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;HelloTutorialModule.postMessage(&#39;(+ 2 3)&#39;);&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
You&#39;ll probably want to modify the page to add an input field for your input and a p tag or textarea for the result of your evaluated form. &amp;nbsp;Here&#39;s what I started with: &lt;a href=&quot;https://gist.github.com/faried/78a38e2761b6f90d3d9f&quot; target=&quot;_blank&quot;&gt;index.html&lt;/a&gt;.&lt;br /&gt;
&lt;br /&gt;&lt;/div&gt;
</content><link rel='replies' type='application/atom+xml' href='http://rotatef.blogspot.com/feeds/1117371199280219154/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/7854038/1117371199280219154' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7854038/posts/default/1117371199280219154'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7854038/posts/default/1117371199280219154'/><link rel='alternate' type='text/html' href='http://rotatef.blogspot.com/2014/12/chibi-scheme-and-native-client.html' title='chibi-scheme and native client'/><author><name>rotatef</name><uri>http://www.blogger.com/profile/05731049271980572297</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7854038.post-1728227538766070158</id><published>2014-09-04T00:11:00.003+05:00</published><updated>2014-09-04T00:11:41.345+05:00</updated><title type='text'>trying stumpwm</title><content type='html'>I&#39;ve tried tiling window managers before, and I haven&#39;t been happy with them (especially with how they fail to deal with transient modal boxes), but I&#39;m going to give them another shot.  I followed the &lt;a href=&quot;https://github.com/stumpwm/stumpwm/wiki/Ubuntu-12.04-and-Gnome-and-StumpWM&quot;&gt;Ubuntu 12.04 + Gnome instructions&lt;/a&gt;, and set up &lt;a href=&quot;https://github.com/stumpwm/stumpwm&quot;&gt;stumpwm&lt;/a&gt; a couple of days ago.  I&#39;ve changed the control key from &lt;b&gt;C-t&lt;/b&gt; to &lt;b&gt;F12&lt;/b&gt;.  It&#39;s still a little confusing, and I keep clicking on windows to focus on them (maybe there&#39;s a switch for that?), but the experience isn&#39;t terrible this time.&lt;br /&gt;
&lt;br /&gt;
Maybe my feelings will change the next time I fire up &lt;a href=&quot;http://www.gimp.org/&quot;&gt;Gimp&lt;/a&gt;, though I see someone&#39;s posted an &lt;a href=&quot;https://github.com/stumpwm/stumpwm/wiki/HandlingTheGimp&quot;&gt;example config&lt;/a&gt; for that on the wiki.</content><link rel='replies' type='application/atom+xml' href='http://rotatef.blogspot.com/feeds/1728227538766070158/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/7854038/1728227538766070158' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7854038/posts/default/1728227538766070158'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7854038/posts/default/1728227538766070158'/><link rel='alternate' type='text/html' href='http://rotatef.blogspot.com/2014/09/trying-stumpwm.html' title='trying stumpwm'/><author><name>rotatef</name><uri>http://www.blogger.com/profile/05731049271980572297</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7854038.post-982668582051047803</id><published>2014-09-03T23:54:00.001+05:00</published><updated>2014-09-03T23:54:05.742+05:00</updated><title type='text'>satellite images of earth.</title><content type='html'>For a while now, I&#39;ve wanted a desktop background like xearth, but with updated (near-live) imagery.  I&#39;ve found a bunch of services that won&#39;t give me exactly that, but something I can live with.&lt;br /&gt;
&lt;br /&gt;
&lt;a href=&quot;https://earthdata.nasa.gov/data/near-real-time-data/rapid-response&quot;&gt;Near Real-Time Data: Rapid Response&lt;/a&gt; has imagery from a bunch of instruments in satellites.  I&#39;ve had good experience with the Aqua &lt;abbr title=&quot;Moderate-resolution Imaging Spectroradiometer&quot;&gt;MODIS&lt;/abbr&gt; images.  Two tools on that site that I&#39;ve tried are &lt;abbr title=&quot;Land Atmosphere Near Real-time Capability for EOS&quot;&gt;LANCE&lt;/abbr&gt; and &lt;a href=&quot;https://earthdata.nasa.gov/labs/worldview/&quot;&gt;Worldview&lt;/a&gt;.&lt;br /&gt;
&lt;br /&gt;
Worldview shows the entire (mapped) planet with a short delay (they say 2.5-3 hours after a satellite pass).  You can select base layers from the Aqua or Terra MODIS sources, and overlays from OpenStreetMap for borders, coastlines, and place names.  You can also select a date to see what the world looked like in the past, going as far back as May 8, 2012.  The best thing about it is that you can click on the camera icon, select an area, and it&#39;ll give you a link to an image.  The image resolution goes down to 250 meters per pixel.&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiuMAZxpVwyC0NI2fJdUsefogfdL6qzg3padgtDTNXZ7h0PE6MOMJr9wa_PyAHa6g4lfh-6ouI5xzkCwbc9ixNm7UXbQWpJdSVBs0BgJVEdlAqAzY2MbJ0sJ24JwQyrp-6z85ioyg/s1600/worldview.jpg&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiuMAZxpVwyC0NI2fJdUsefogfdL6qzg3padgtDTNXZ7h0PE6MOMJr9wa_PyAHa6g4lfh-6ouI5xzkCwbc9ixNm7UXbQWpJdSVBs0BgJVEdlAqAzY2MbJ0sJ24JwQyrp-6z85ioyg/s320/worldview.jpg&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
The Worldview image links appear to be stable, and look like&lt;br /&gt;
&lt;br /&gt;
&lt;tt&gt;http://map2.vis.earthdata.nasa.gov/imagegen/index.php?TIME=2014246&amp;amp;extent=32.481445312501,23.405273437501,33.116455078126,24.152343750001&amp;amp;epsg=4326&amp;amp;layers=MODIS_Terra_CorrectedReflectance_TrueColor,Reference_Features,Reference_Labels&amp;amp;format=image/jpeg&amp;amp;width=289&amp;amp;height=340&lt;/tt&gt;&lt;br /&gt;
&lt;br /&gt;
The &lt;i&gt;TIME&lt;/i&gt; field is the current year followed by the day of the year (September 3 is the 246th day).  Incrementing this field should get you the next day&#39;s image; you can easily write a script to generate a desktop background once a day, or fetch a bunch of files and generate an animation.&lt;br /&gt;
&lt;br /&gt;
&lt;a href=&quot;https://earthdata.nasa.gov/data/near-real-time-data/rapid-response/modis-subsets/&quot;&gt;Image subsets&lt;/a&gt; are also available of the MODIS data for certain areas of the world.  Selecting &lt;a href=&quot;http://lance-modis.eosdis.nasa.gov/imagery/subsets/?area=sa&quot;&gt;South America&lt;/a&gt; brings up a page where I can select, say, True Color images of &lt;a href=&quot;http://lance-modis.eosdis.nasa.gov/imagery/subsets/?subset=AERONET_La_Paz&quot;&gt;La Paz&lt;/a&gt; and the surrounding area.  It&#39;s the same data as Worldview, but with a different interface.  It gives you a JPEG download link that, again, appears to be stable; it looks like&lt;br /&gt;
&lt;br /&gt;
&lt;pre&gt;&lt;tt&gt;http://lance-modis.eosdis.nasa.gov/imagery/subsets/?subset=AERONET_La_Paz.2014246.terra.250m.zip&lt;/tt&gt;&lt;/pre&gt;
&lt;br /&gt;
Another way to grab imagery is with &lt;a href=&quot;http://www.gdal.org/&quot; title=&quot;Geospatial Data Abstraction Library&quot;&gt;GDAL&lt;/a&gt;.  The subset image page has a link that describes how to download the data using GDAL.  In summary, you create a file that looks like&lt;br /&gt;
&lt;br /&gt;
&lt;pre&gt;&lt;tt&gt;
    &amp;lt;gdal_wms&amp;gt;
      &amp;lt;service name=&quot;TMS&quot;&amp;gt;
        &amp;lt;serverurl&amp;gt;http://map1.vis.earthdata.nasa.gov/wmts-geo/MODIS_Terra_CorrectedReflectance_TrueColor/default/2014-09-03/EPSG4326_250m/${z}/${y}/${x}.jpg&amp;lt;/serverurl&amp;gt;
      &amp;lt;/service&amp;gt;
      &amp;lt;datawindow&amp;gt;
        &amp;lt;upperleftx&amp;gt;-180.0&amp;lt;/upperleftx&amp;gt;
        &amp;lt;upperlefty&amp;gt;90&amp;lt;/upperlefty&amp;gt;
        &amp;lt;lowerrightx&amp;gt;396.0&amp;lt;/lowerrightx&amp;gt;
        &amp;lt;lowerrighty&amp;gt;-198&amp;lt;/lowerrighty&amp;gt;
        &amp;lt;tilelevel&amp;gt;8&amp;lt;/tilelevel&amp;gt;
        &amp;lt;tilecountx&amp;gt;2&amp;lt;/tilecountx&amp;gt;
        &amp;lt;tilecounty&amp;gt;1&amp;lt;/tilecounty&amp;gt;
        &amp;lt;yorigin&amp;gt;top&amp;lt;/yorigin&amp;gt;
      &amp;lt;/datawindow&amp;gt;
      &amp;lt;projection&amp;gt;EPSG:4326&amp;lt;/projection&amp;gt;
      &amp;lt;blocksizex&amp;gt;512&amp;lt;/blocksizex&amp;gt;
      &amp;lt;blocksizey&amp;gt;512&amp;lt;/blocksizey&amp;gt;
      &amp;lt;bandscount&amp;gt;3&amp;lt;/bandscount&amp;gt;
    &amp;lt;/gdal_wms&amp;gt;
&lt;/tt&gt;&lt;/pre&gt;
&lt;br /&gt;
Install the gdal tools (Ubuntu: &lt;i&gt;apt-get install gdal-bin&lt;/i&gt;), and type&lt;br /&gt;
&lt;pre&gt;&lt;tt&gt;
gdal_translate -of GTiff -outsize 3840 2880 \
    -projwin -72.44865700501 -13.302075710262 -63.681994009835 -19.777183974533 \
    your-gdal-filename.xml AERONET_La_Paz.tif
gdal_translate -of JPEG AERONET_La_Paz.tif AERONET_La_Paz.jpg
&lt;/tt&gt;&lt;/pre&gt;
&lt;br /&gt;
Change &lt;i&gt;MODIS_Terra_CorrectedReflectance_TrueColor&lt;/i&gt; to &lt;i&gt;MODIS_Aqua_CorrectedReflectance_TrueColor&lt;/i&gt; for the Aqua images.  I used Worldview to figure out a bounding box for my city, and modified the &lt;i&gt;-projwin&lt;/i&gt; parameter to match (and also &lt;i&gt;-outsize&lt;/i&gt; to match my display resolution), and voila! a desktop background!</content><link rel='replies' type='application/atom+xml' href='http://rotatef.blogspot.com/feeds/982668582051047803/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/7854038/982668582051047803' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7854038/posts/default/982668582051047803'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7854038/posts/default/982668582051047803'/><link rel='alternate' type='text/html' href='http://rotatef.blogspot.com/2014/09/satellite-images-of-earth.html' title='satellite images of earth.'/><author><name>rotatef</name><uri>http://www.blogger.com/profile/05731049271980572297</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiuMAZxpVwyC0NI2fJdUsefogfdL6qzg3padgtDTNXZ7h0PE6MOMJr9wa_PyAHa6g4lfh-6ouI5xzkCwbc9ixNm7UXbQWpJdSVBs0BgJVEdlAqAzY2MbJ0sJ24JwQyrp-6z85ioyg/s72-c/worldview.jpg" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7854038.post-7446857011567888107</id><published>2014-06-27T04:00:00.002+05:00</published><updated>2014-06-27T04:00:50.405+05:00</updated><title type='text'>95.</title><content type='html'>My grandmother turned 95 on Monday.  She has trouble walking without help, and her short-term memory&#39;s not as good as it used to be, but she&#39;s still here.</content><link rel='replies' type='application/atom+xml' href='http://rotatef.blogspot.com/feeds/7446857011567888107/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/7854038/7446857011567888107' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7854038/posts/default/7446857011567888107'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7854038/posts/default/7446857011567888107'/><link rel='alternate' type='text/html' href='http://rotatef.blogspot.com/2014/06/95.html' title='95.'/><author><name>rotatef</name><uri>http://www.blogger.com/profile/05731049271980572297</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7854038.post-3375691293694550992</id><published>2014-06-20T03:48:00.000+05:00</published><updated>2014-06-27T03:52:45.288+05:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="books"/><title type='text'>read: Stonemouth, by Iain Banks</title><content type='html'>&lt;p&gt;I liked how the story built up slowly, and I enjoyed the &quot;crime fiction&quot; angle of the Event that led to the narrator leaving the town before the events of the novel.  I was afraid that if I didn&#39;t read carefully I&#39;d lose track of the characters, but that didn&#39;t happen.  5/5.&lt;/p&gt;
&lt;iframe style=&quot;width:120px;height:240px;&quot; marginwidth=&quot;0&quot; marginheight=&quot;0&quot; scrolling=&quot;no&quot; frameborder=&quot;0&quot; src=&quot;//ws-na.amazon-adsystem.com/widgets/q?ServiceVersion=20070822&amp;OneJS=1&amp;Operation=GetAdHtml&amp;MarketPlace=US&amp;source=ac&amp;ref=tf_til&amp;ad_type=product_link&amp;tracking_id=screamingmode-20&amp;marketplace=amazon&amp;region=US&amp;placement=B00GOHLUYI&amp;asins=B00GOHLUYI&amp;linkId=V76J6WK2UL7Y2OJL&amp;show_border=true&amp;link_opens_in_new_window=true&quot;&gt;
&lt;/iframe&gt;</content><link rel='replies' type='application/atom+xml' href='http://rotatef.blogspot.com/feeds/3375691293694550992/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/7854038/3375691293694550992' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7854038/posts/default/3375691293694550992'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7854038/posts/default/3375691293694550992'/><link rel='alternate' type='text/html' href='http://rotatef.blogspot.com/2014/06/read-stonemouth-by-iain-banks.html' title='read: Stonemouth, by Iain Banks'/><author><name>rotatef</name><uri>http://www.blogger.com/profile/05731049271980572297</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7854038.post-2187879581383590869</id><published>2014-06-14T03:47:00.000+05:00</published><updated>2014-06-27T03:47:41.963+05:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="books"/><title type='text'>read: The Dig, by Alan Dean Foster</title><content type='html'>&lt;p&gt;I bought the game a while ago (some Steam sale of LucasArts games), but I never got around to finishing it.  The book was enjoyable.&lt;/p&gt;
&lt;iframe style=&quot;width:120px;height:240px;&quot; marginwidth=&quot;0&quot; marginheight=&quot;0&quot; scrolling=&quot;no&quot; frameborder=&quot;0&quot; src=&quot;//ws-na.amazon-adsystem.com/widgets/q?ServiceVersion=20070822&amp;OneJS=1&amp;Operation=GetAdHtml&amp;MarketPlace=US&amp;source=ac&amp;ref=tf_til&amp;ad_type=product_link&amp;tracking_id=screamingmode-20&amp;marketplace=amazon&amp;region=US&amp;placement=0446518530&amp;asins=0446518530&amp;linkId=XKA7F777UZTGKPSO&amp;show_border=true&amp;link_opens_in_new_window=true&quot;&gt;
&lt;/iframe&gt;</content><link rel='replies' type='application/atom+xml' href='http://rotatef.blogspot.com/feeds/2187879581383590869/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/7854038/2187879581383590869' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7854038/posts/default/2187879581383590869'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7854038/posts/default/2187879581383590869'/><link rel='alternate' type='text/html' href='http://rotatef.blogspot.com/2014/06/read-dig-by-alan-dean-foster.html' title='read: The Dig, by Alan Dean Foster'/><author><name>rotatef</name><uri>http://www.blogger.com/profile/05731049271980572297</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7854038.post-6405993470461536877</id><published>2014-05-17T03:39:00.000+05:00</published><updated>2014-06-27T04:18:03.261+05:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="books"/><title type='text'>read: The Drowned Cities, by Paolo Bacigalupi.</title><content type='html'>This sequel to Paolo Bacigalupi&#39;s &lt;em&gt;Ship Breaker&lt;/em&gt; is a lot darker than I expected, for a young adult novel.  Life inland from the ship salvage yards of the coast is a dangerous life, what with different militias trying to wage war against each other for territory.  For a decade or so, the Chinese government had occupied parts of the Eastern seaboard (well, post-climate-change seaboard) and had tried to pacify the region, but they failed, and eventually left.  The story follows a child of a Chinese peacekeeper and an American mother, and her quest to do the Right Thing.&lt;br /&gt;
&lt;iframe frameborder=&quot;0&quot; marginheight=&quot;0&quot; marginwidth=&quot;0&quot; scrolling=&quot;no&quot; src=&quot;//ws-na.amazon-adsystem.com/widgets/q?ServiceVersion=20070822&amp;amp;OneJS=1&amp;amp;Operation=GetAdHtml&amp;amp;MarketPlace=US&amp;amp;source=ac&amp;amp;ref=tf_til&amp;amp;ad_type=product_link&amp;amp;tracking_id=screamingmode-20&amp;amp;marketplace=amazon&amp;amp;region=US&amp;amp;placement=0316056227&amp;amp;asins=0316056227&amp;amp;linkId=AVJVM56FPZAR44VS&amp;amp;show_border=true&amp;amp;link_opens_in_new_window=true&quot; style=&quot;height: 240px; width: 120px;&quot;&gt;
&lt;/iframe&gt;</content><link rel='replies' type='application/atom+xml' href='http://rotatef.blogspot.com/feeds/6405993470461536877/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/7854038/6405993470461536877' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7854038/posts/default/6405993470461536877'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7854038/posts/default/6405993470461536877'/><link rel='alternate' type='text/html' href='http://rotatef.blogspot.com/2014/05/read-drowned-cities.html' title='read: The Drowned Cities, by Paolo Bacigalupi.'/><author><name>rotatef</name><uri>http://www.blogger.com/profile/05731049271980572297</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7854038.post-7661163125775718573</id><published>2014-05-04T03:28:00.000+05:00</published><updated>2014-06-27T04:17:58.636+05:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="books"/><title type='text'>read: Ship Breaker, by Paolo Bacigalupi.</title><content type='html'>&lt;p&gt;Climate change has pretty much made a lot of people poorer and desperate.  Ship Breaker follows a young teen as he leaves his job (gutting beached ships for copper wires and anything else that can be salvaged) on an adventure around the drowned cities of the Gulf states.&lt;/p&gt;
&lt;iframe style=&quot;width:120px;height:240px;&quot; marginwidth=&quot;0&quot; marginheight=&quot;0&quot; scrolling=&quot;no&quot; frameborder=&quot;0&quot; src=&quot;//ws-na.amazon-adsystem.com/widgets/q?ServiceVersion=20070822&amp;OneJS=1&amp;Operation=GetAdHtml&amp;MarketPlace=US&amp;source=ac&amp;ref=tf_til&amp;ad_type=product_link&amp;tracking_id=screamingmode-20&amp;marketplace=amazon&amp;region=US&amp;placement=0316056197&amp;asins=0316056197&amp;linkId=G36S7Z3TAIOKM3QG&amp;show_border=true&amp;link_opens_in_new_window=true&quot;&gt;
&lt;/iframe&gt;</content><link rel='replies' type='application/atom+xml' href='http://rotatef.blogspot.com/feeds/7661163125775718573/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/7854038/7661163125775718573' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7854038/posts/default/7661163125775718573'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7854038/posts/default/7661163125775718573'/><link rel='alternate' type='text/html' href='http://rotatef.blogspot.com/2014/05/read-ship-breaker.html' title='read: Ship Breaker, by Paolo Bacigalupi.'/><author><name>rotatef</name><uri>http://www.blogger.com/profile/05731049271980572297</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7854038.post-5258905936073570839</id><published>2014-02-22T19:43:00.000+05:00</published><updated>2014-06-27T03:55:08.761+05:00</updated><title type='text'>cats, cats everywhere</title><content type='html'>&lt;p&gt;kid: what is that?&lt;br /&gt;me: it’s a hard drive. it’s for storing pictures of cats.&lt;/p&gt;</content><link rel='replies' type='application/atom+xml' href='http://rotatef.blogspot.com/feeds/5258905936073570839/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/7854038/5258905936073570839' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7854038/posts/default/5258905936073570839'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7854038/posts/default/5258905936073570839'/><link rel='alternate' type='text/html' href='http://rotatef.blogspot.com/2014/02/cats-cats-everywhere.html' title='cats, cats everywhere'/><author><name>rotatef</name><uri>http://www.blogger.com/profile/05731049271980572297</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7854038.post-1509404338675988124</id><published>2014-01-05T18:53:00.000+05:00</published><updated>2014-06-27T04:17:44.540+05:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="books"/><title type='text'>read: In The Plex, by Steven Levy</title><content type='html'>&lt;p&gt;This is a book about Google.  The author interviewed and observed Google employees and co-founders over a period of years.  I enjoyed reading about the inner workings of Google: how they grew over time, and how they dealt with both technical and political/PR challenges.&lt;/p&gt;
&lt;iframe style=&quot;width:120px;height:240px;&quot; marginwidth=&quot;0&quot; marginheight=&quot;0&quot; scrolling=&quot;no&quot; frameborder=&quot;0&quot; src=&quot;//ws-na.amazon-adsystem.com/widgets/q?ServiceVersion=20070822&amp;OneJS=1&amp;Operation=GetAdHtml&amp;MarketPlace=US&amp;source=ac&amp;ref=tf_til&amp;ad_type=product_link&amp;tracking_id=screamingmode-20&amp;marketplace=amazon&amp;region=US&amp;placement=1416596585&amp;asins=1416596585&amp;linkId=WIYD76PFC3LOXRRO&amp;show_border=true&amp;link_opens_in_new_window=true&quot;&gt;
&lt;/iframe&gt;</content><link rel='replies' type='application/atom+xml' href='http://rotatef.blogspot.com/feeds/1509404338675988124/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/7854038/1509404338675988124' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7854038/posts/default/1509404338675988124'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7854038/posts/default/1509404338675988124'/><link rel='alternate' type='text/html' href='http://rotatef.blogspot.com/2014/01/read-in-plex.html' title='read: In The Plex, by Steven Levy'/><author><name>rotatef</name><uri>http://www.blogger.com/profile/05731049271980572297</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7854038.post-7046067632050555037</id><published>2013-12-11T02:17:00.001+05:00</published><updated>2013-12-11T02:17:02.841+05:00</updated><title type='text'>mining litecoins in the cloud</title><content type='html'>I wondered the other day if it was cost-effective to mine &lt;a href=&quot;https://en.wikipedia.org/wiki/Litecoin&quot;&gt;litecoins&lt;/a&gt; on &lt;a href=&quot;https://aws.amazon.com/ec2/&quot;&gt;AWS&lt;/a&gt; or &lt;a href=&quot;https://cloud.google.com/products/compute-engine/&quot;&gt;Compute Engine&lt;/a&gt;.  The instance prices are low enough that I could run a high-CPU or a GPU instance for half a day or so, and not worry about what it would cost me.  But could I mine anything substantial in that period?  Litecoin uses &lt;a href=&quot;https://en.wikipedia.org/wiki/Scrypt&quot;&gt;scrypt&lt;/a&gt; instead of &lt;a href=&quot;https://en.wikipedia.org/wiki/SHA-2&quot;&gt;SHA-256&lt;/a&gt;, and is biased towards CPU/GPU mining (as opposed to using an FPGA or ASIC miner).&lt;br /&gt;
&lt;br /&gt;
I used a &lt;a href=&quot;https://github.com/pooler/cpuminer/&quot;&gt;cpuminer&lt;/a&gt;; for comparison purposes, a 2.66 GHz Core 2 Duo Macbook Pro (mid-2009) can do about&lt;br /&gt;
&lt;br /&gt;
&lt;pre&gt;&lt;code&gt;thread 0: 4104 hashes, 4.76 khash/s
thread 1: 4104 hashes, 4.71 khash/s
Total: 9.47 khash/s&lt;/code&gt;&lt;/pre&gt;
&lt;br /&gt;
An &lt;code&gt;n1-highcpu-2&lt;/code&gt; instance on Google&#39;s &lt;a href=&quot;https://cloud.google.com/products/compute-engine/&quot;&gt;Compute Engine&lt;/a&gt; platform costs $0.131/hour, and has two virtual cores.  It can do&lt;br /&gt;
&lt;br /&gt;
&lt;pre&gt;&lt;code&gt;[2013-12-03 17:33:06] thread 1: 4104 hashes, 4.45 khash/s
[2013-12-03 17:33:06] thread 0: 4104 hashes, 4.45 khash/s&lt;/code&gt;&lt;/pre&gt;
&lt;br /&gt;
Not a whole lot better than the laptop.  All right, let&#39;s try &lt;code&gt;n1-highcpu-4&lt;/code&gt; ($0.261/hour):&lt;br /&gt;
&lt;br /&gt;
&lt;pre&gt;&lt;code&gt;[2013-12-03 17:40:06] thread 0: 21996 hashes, 6.36 khash/s
[2013-12-03 17:40:06] thread 3: 24636 hashes, 6.45 khash/s
[2013-12-03 17:40:07] thread 1: 27936 hashes, 5.67 khash/s
[2013-12-03 17:40:08] thread 2: 41640 hashes, 6.58 khash/s&lt;/code&gt;&lt;/pre&gt;
&lt;br /&gt;
According to a litecoin calculator I used, at 25.06 khash/sec I can mine about 0.01 ltc every 24 hours.  I&#39;d end up spending just under $6.27 to mine $0.33 worth of litecoins.</content><link rel='replies' type='application/atom+xml' href='http://rotatef.blogspot.com/feeds/7046067632050555037/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/7854038/7046067632050555037' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7854038/posts/default/7046067632050555037'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7854038/posts/default/7046067632050555037'/><link rel='alternate' type='text/html' href='http://rotatef.blogspot.com/2013/12/mining-litecoins-in-cloud.html' title='mining litecoins in the cloud'/><author><name>rotatef</name><uri>http://www.blogger.com/profile/05731049271980572297</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7854038.post-6369432839395543548</id><published>2013-11-04T02:59:00.003+05:00</published><updated>2013-12-10T20:44:31.749+05:00</updated><title type='text'>compiling scheme48 0.58 on ubuntu 12.04</title><content type='html'>Scheme48 0.58 is available &lt;a href=&quot;http://s48.org/0.58/download.html&quot;&gt;here&lt;/a&gt;, but as the release notes say, it doesn&#39;t build. &amp;nbsp;Here&#39;s how I got it to work on a 64-bit Ubuntu 12.04 system.&lt;br /&gt;
&lt;br /&gt;
Grab Scheme48 &lt;u&gt;&lt;a href=&quot;http://s48.org/0.57/download.html&quot;&gt;0.57&lt;/a&gt;&lt;/u&gt;, and unpack it. &amp;nbsp;Edit &lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;Makefile.in&lt;/span&gt; and add&amp;nbsp;&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;-ldl&lt;/span&gt;&amp;nbsp;to the end of the&amp;nbsp;&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;EXTERNAL_LD_FLAGS&lt;/span&gt;&amp;nbsp;line. &amp;nbsp;Run&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;env CC=&quot;gcc -m32&quot; ./configure --prefix=/tmp/s&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
(We&#39;ll install it to &lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;/tmp/s&lt;/span&gt; since we won&#39;t need it after bootstrapping 0.58.)&lt;br /&gt;
&lt;br /&gt;
Edit &lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;c/unix/io.c&lt;/span&gt; and move the line&lt;br /&gt;
&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;static long write_integer(unsigned long n, FILE *port);&lt;/span&gt;&lt;br /&gt;
&lt;div class=&quot;p1&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;p1&quot;&gt;
from inside the &lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;ps_write_integer&lt;/span&gt; function out to the top-level (just cut and paste it).&lt;/div&gt;
&lt;div class=&quot;p1&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;p1&quot;&gt;
Run &lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;make&lt;/span&gt;. &amp;nbsp;You should have a working system; run &lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;./go&lt;/span&gt; to test it. &amp;nbsp;Install it with&lt;/div&gt;
&lt;div class=&quot;p1&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;p1&quot;&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;for dir in bin lib include; do mkdir /tmp/s/$dir; done&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;p1&quot;&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;make install&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;p1&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;p1&quot;&gt;
Grab 0.58, and unpack it. &amp;nbsp;Copy 0.57&#39;s &lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;c/unix/dynamo.c&lt;/span&gt; into 0.58&#39;s &lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;c/unix/&lt;/span&gt; directory. &amp;nbsp;Edit &lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;Makefile.in&lt;/span&gt; and make the same &lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;-ldl&lt;/span&gt; change as above; do the same with &lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;c/unix/io.c&lt;/span&gt;.&lt;/div&gt;
&lt;div class=&quot;p1&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;p1&quot;&gt;
Configure it with&lt;/div&gt;
&lt;div class=&quot;p1&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;p1&quot;&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;env CC=&quot;gcc -m32&quot; ./configure&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;p1&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;p1&quot;&gt;
Edit the &lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;Makefile&lt;/span&gt; and find the section of the file that says&lt;/div&gt;
&lt;div class=&quot;p1&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;p1&quot;&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;LINKER_VM = ./$(VM) $(BIG_HEAP)&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;p1&quot;&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;LINKER_RUNNABLE = $(LINKER_VM)&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;p1&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;p1&quot;&gt;
Change it to&lt;/div&gt;
&lt;div class=&quot;p1&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;p1&quot;&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;LINKER_VM = /tmp/s/bin/scheme48 $(BIG_HEAP)&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;p1&quot;&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;LINKER_RUNNABLE = $(LINKER_VM)&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;p1&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;p1&quot;&gt;
Run &lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;make&lt;/span&gt;. &amp;nbsp;It&#39;ll fail because it&#39;s not happy with &lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;build/initial.image&lt;/span&gt;. &amp;nbsp;So, build a new image:&lt;/div&gt;
&lt;div class=&quot;p1&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;p1&quot;&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;make -k linker&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;p1&quot;&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;make -k image&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;p1&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;p1&quot;&gt;
You can verify that the new image works by doing&lt;/div&gt;
&lt;div class=&quot;p1&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;p1&quot;&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;make distclean&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;p1&quot;&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;env CC=&quot;gcc -m32&quot; ./configure&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;p1&quot;&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;make&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;p1&quot;&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;./go&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;p1&quot;&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;p1&quot;&gt;
I may have missed a step or two in writing this blog post; please let me know if it doesn&#39;t work for you. &amp;nbsp;I also haven&#39;t used it for anything just yet, so there may be bugs lurking in the code.&lt;/div&gt;
&lt;div class=&quot;p1&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;p1&quot;&gt;
Credits: I knew there was a way to rebuild the image, but the last time I looked into Scheme48&#39;s internals for this sort of thing was maybe fifteen years ago. &amp;nbsp;After fruitlessly scanning the source code and documentation to figure out what to do, I googled and found Margaret Fleck&#39;s &lt;a href=&quot;http://www.cs.hmc.edu/~fleck/envision/scheme48/install.html&quot;&gt;install guide&lt;/a&gt;. &amp;nbsp;That had the two makefile targets needed for the rebuild.&lt;/div&gt;
</content><link rel='replies' type='application/atom+xml' href='http://rotatef.blogspot.com/feeds/6369432839395543548/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/7854038/6369432839395543548' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7854038/posts/default/6369432839395543548'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7854038/posts/default/6369432839395543548'/><link rel='alternate' type='text/html' href='http://rotatef.blogspot.com/2013/11/compiling-scheme48-058-on-ubuntu-1204.html' title='compiling scheme48 0.58 on ubuntu 12.04'/><author><name>rotatef</name><uri>http://www.blogger.com/profile/05731049271980572297</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7854038.post-8809547234224965957</id><published>2013-09-14T03:13:00.000+05:00</published><updated>2014-06-27T04:16:30.035+05:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="books"/><title type='text'>read: Alif the Unseen, by G. Willow Wilson</title><content type='html'>&lt;p&gt;It&#39;s not usual to find books that combine both Islam, Arab desert myths and computers.  5/5.&lt;/p&gt;
&lt;iframe style=&quot;width:120px;height:240px;&quot; marginwidth=&quot;0&quot; marginheight=&quot;0&quot; scrolling=&quot;no&quot; frameborder=&quot;0&quot; src=&quot;//ws-na.amazon-adsystem.com/widgets/q?ServiceVersion=20070822&amp;OneJS=1&amp;Operation=GetAdHtml&amp;MarketPlace=US&amp;source=ac&amp;ref=tf_til&amp;ad_type=product_link&amp;tracking_id=screamingmode-20&amp;marketplace=amazon&amp;region=US&amp;placement=0802121225&amp;asins=0802121225&amp;linkId=Q4KCUAML43VHOI75&amp;show_border=true&amp;link_opens_in_new_window=true&quot;&gt;
&lt;/iframe&gt;</content><link rel='replies' type='application/atom+xml' href='http://rotatef.blogspot.com/feeds/8809547234224965957/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/7854038/8809547234224965957' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7854038/posts/default/8809547234224965957'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7854038/posts/default/8809547234224965957'/><link rel='alternate' type='text/html' href='http://rotatef.blogspot.com/2013/09/read-alif-unseen.html' title='read: Alif the Unseen, by G. Willow Wilson'/><author><name>rotatef</name><uri>http://www.blogger.com/profile/05731049271980572297</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7854038.post-4488117412509715190</id><published>2013-09-14T03:10:00.001+05:00</published><updated>2013-09-14T03:10:38.702+05:00</updated><title type='text'>virtual sins</title><content type='html'>Sheikh Bilal opened the &lt;em&gt;tafsir&lt;/em&gt; to a marked page.&lt;br /&gt;
&lt;br /&gt;
&quot;We will begin with a question,&quot; he said. &quot;It is particularly appropriate to this context. God, in His mercy, tells us that a good deed is recorded as soon as a person decides to perform it, while a bad deed is only recorded after it has been performed.  But the world today is more complicated than it once was.  So I present you with the following dilemma, posed to me by a young boy of my congregation: when one is playing a video game and his avatar consumes a piece of digital pork, has a sin been committed?&quot;&lt;br /&gt;
&lt;br /&gt;
Alif waited.  &quot;You&#39;re asking me?&quot; he said when Sheikh Bilal was silent.  &quot;You&#39;re the &lt;em&gt;alim&lt;/em&gt;.  How am I supposed to know?&quot;&lt;br /&gt;
&lt;br /&gt;
&quot;I&#39;m interested in your opinion.  I know very little about video games.  It is my understanding that this boy is very involved in something called World of Battlecraft.&quot;&lt;br /&gt;
&lt;br /&gt;
Alif sighed in exasperation.  &quot;I don&#39;t know.  It doesn&#39;t matter.&quot;  The great doors shrieked as though under pressure from a saw.  &quot;I really can&#39;t concentrate.&quot;&lt;br /&gt;
&lt;br /&gt;
&quot;It mattered very much to this young person.  I was inclined to tell him that if he was worried, it probably &lt;em&gt;was&lt;/em&gt; a sin, or at the very least, would weigh on him as one.  For God also tells us that when you perform an action you believe to be a sin, it still counts as a sin even if it is proven to be permissible.  Conscience.  Conscience is the ultimate measure of man.&quot;&lt;br /&gt;
&lt;br /&gt;
&quot;All right, it&#39;s a sin,&quot; moaned Alif.  &quot;I don&#39;t care.  I don&#39;t play Battlecraft.  It&#39;s for teenagers.&quot;&lt;br /&gt;
&lt;br /&gt;
&quot;I&#39;m not looking for any particular answer.  Don&#39;t feel you must agree.  I want to know what you think.&quot;&lt;br /&gt;
&lt;br /&gt;
&quot;I think people need a break.  It&#39;s not like they&#39;re out there selling bacon and booze.  They want to pretend for a few hours a day that we don&#39;t live in this awful hole getting squeezed by the State on one side and pious airheads on the other, all while smiling our shit-eating grins so that the oil companies keep shoveling money into our pockets.  Surely God wouldn&#39;t mind people pretending life is better, even if it involves fictional pork.&quot;&lt;br /&gt;
&lt;br /&gt;
&quot;But isn&#39;t that a dangerous precedent?  Fictional pork is one thing---one cannot smell it or taste it, and thus the temptation to go out and consume real pork is low.  However, if we were to talk about fictional adultery---I know there are many people who do and say all kinds of dirty things online---then it would be another matter.  Those are real desires manifesting themselves on the computer screen.  Who knows how many adulterous relationships begin on the Internet and end in the bedroom?&quot;&lt;br /&gt;
&lt;br /&gt;
Alif blanched.&lt;br /&gt;
&lt;br /&gt;
&quot;And even if they don&#39;t,&quot; the sheikh continued, &quot;who&#39;s to say the spiritual damage isn&#39;t real nonetheless?  When two people form a relationship online, it isn&#39;t a fiction based on real life, it&#39;s real life based on a fiction.  You believe the person you cannot see or touch is perfect, because she chooses to reveal only the things that she knows will please you.  Surely that is dangerous indeed.&quot;&lt;br /&gt;
&lt;br /&gt;
&quot;You could say the same thing about an arranged marriage,&quot; said Alif.&lt;br /&gt;
&lt;br /&gt;
Sheikh Bilal smiled a little ruefully.  &quot;Ah.  Yes.  You have me there.&quot;</content><link rel='replies' type='application/atom+xml' href='http://rotatef.blogspot.com/feeds/4488117412509715190/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/7854038/4488117412509715190' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7854038/posts/default/4488117412509715190'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7854038/posts/default/4488117412509715190'/><link rel='alternate' type='text/html' href='http://rotatef.blogspot.com/2013/09/virtual-sins.html' title='virtual sins'/><author><name>rotatef</name><uri>http://www.blogger.com/profile/05731049271980572297</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7854038.post-4421970895831506053</id><published>2013-09-14T02:31:00.000+05:00</published><updated>2013-09-14T02:31:30.507+05:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="android"/><title type='text'>Typing in Arabic on Android</title><content type='html'>The easy way: find an Arabic keyboard on the &lt;a href=&quot;https://play.google.com/store/search?q=arabic%20keyboard&quot;&gt;Play store&lt;/a&gt;, and switch to it when you want to type in some Arabic text.&lt;br /&gt;
&lt;br /&gt;
The hard way: what I did.&lt;br /&gt;
&lt;br /&gt;
To type in this &lt;a href=&quot;https://twitter.com/self/status/378602039284346880&quot;&gt;tweet&lt;/a&gt; (a quotation from &lt;a href=&quot;https://twitter.com/GWillowWilson&quot;&gt;@GWillowWilson&lt;/a&gt;&#39;s &lt;a href=&quot;http://aliftheunseen.com/&quot;&gt;Alif The Unseen&lt;/a&gt;), I wrote the English text first.  Then, I switched the tablet&#39;s &lt;strong&gt;system language&lt;/strong&gt; to Arabic (changing it for all users) to type in three Arabic letters, and then changed the language back to English.  Annoying.&lt;br /&gt;
&lt;br /&gt;
If I&#39;d installed an Arabic keyboard, I could&#39;ve just selected the Arabic input method from the nagivation pull-down.  It&#39;s weird that the system lets me switch between a few languages without changing the system language, but not Arabic (which it clearly supports and has fonts for).</content><link rel='replies' type='application/atom+xml' href='http://rotatef.blogspot.com/feeds/4421970895831506053/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/7854038/4421970895831506053' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7854038/posts/default/4421970895831506053'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7854038/posts/default/4421970895831506053'/><link rel='alternate' type='text/html' href='http://rotatef.blogspot.com/2013/09/typing-in-arabic-on-android.html' title='Typing in Arabic on Android'/><author><name>rotatef</name><uri>http://www.blogger.com/profile/05731049271980572297</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry></feed>