<?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-8026726330557031</id><updated>2026-05-30T15:17:50.874-07:00</updated><category term="iphone"/><category term="google"/><category term="apple"/><category term="firefox"/><category term="sun"/><category term="finance"/><category term="oracle"/><category term="amazon"/><category term="blogger"/><category term="blogging"/><category term="linux"/><category term="os x"/><category term="raspberry pi"/><category term="HTML5"/><category term="gentoo"/><category term="microsoft"/><category term="phone"/><category term="voip"/><category term="aws"/><category term="gafyd"/><category term="humor"/><category term="ios"/><category term="map"/><category term="math"/><category term="pi"/><category term="safari"/><category term="skype"/><category term="air"/><category term="amazon workspaces"/><category term="android"/><category term="arduino"/><category term="c#"/><category term="calendar"/><category term="cell"/><category term="chrome"/><category term="code camp"/><category term="datacenter"/><category term="el capitan"/><category term="internet"/><category term="java"/><category term="javascript"/><category term="mobile"/><category term="mofuse"/><category term="mozilla"/><category term="mysql"/><category term="nuevasync"/><category term="osx"/><category term="palm"/><category term="productivity"/><category term="search"/><category term="si"/><category term="standards"/><category term="synchronization"/><category term="ubuntu"/><category term="virtualbox"/><category term="websocket"/><category term="windows 7"/><category term="yosemite"/><category term="/n software"/><category term="2fs"/><category term="HSTS"/><category term="LetsEncrypt"/><category term="OFX"/><category term="R"/><category term="RMySQL"/><category term="SSL"/><category term="SproutCore"/><category term="TLS"/><category term="acm"/><category term="adafruit.io"/><category term="adblockplus"/><category term="ads-b"/><category term="airport"/><category term="alt-tab"/><category term="amarok"/><category term="amateur radio"/><category term="apt"/><category term="architecture"/><category term="arctic"/><category term="arm"/><category term="aurora"/><category term="bX-o8d45s"/><category term="bandwidth"/><category term="bbc"/><category term="bdb"/><category term="bittorrent"/><category term="boxee"/><category term="browser detection"/><category term="cacm"/><category term="california"/><category term="caterpillar"/><category term="census"/><category term="ces"/><category term="citibank"/><category term="cloud computing"/><category term="cloudconnect"/><category term="cnbc"/><category term="comcast"/><category term="cpu"/><category term="css3"/><category term="datebk6"/><category term="design"/><category term="diebold"/><category term="dom inspector"/><category term="download"/><category term="dragons"/><category term="dump1090"/><category term="dungeons"/><category term="dynamodb"/><category term="earthquake"/><category term="element hiding"/><category term="energy"/><category term="facebook"/><category term="fcc"/><category term="flightradar24"/><category term="flightware"/><category term="fractals"/><category term="free"/><category term="frozen planet"/><category term="gizmodo"/><category term="gnupg"/><category term="goto"/><category term="gps"/><category term="hardware"/><category term="heatmap"/><category term="hp"/><category term="html5night"/><category term="http"/><category term="ibiz"/><category term="ie9"/><category term="iec"/><category term="ing"/><category term="innodb"/><category term="ipevo"/><category term="jax-ws"/><category term="jaxb"/><category term="jde"/><category term="jdk"/><category term="kaazing"/><category term="labs"/><category term="lenovo"/><category term="location"/><category term="lsb_release"/><category term="lsh"/><category term="macports"/><category term="magic"/><category term="mail"/><category term="mailvelope"/><category term="maldol"/><category term="mashupcamp"/><category term="merger"/><category term="mininova"/><category term="model"/><category term="monitor"/><category term="moth"/><category term="motherboard"/><category term="mountain lion"/><category term="mouse"/><category term="mturk"/><category term="multimeter"/><category term="musuem"/><category term="nader"/><category term="netscape"/><category term="notebook cooler"/><category term="nuclear"/><category term="objective-c"/><category term="onion"/><category term="opencv"/><category term="openid"/><category term="openssh"/><category term="oss"/><category term="overclocking"/><category term="pedal"/><category term="performancing"/><category term="pimlico"/><category term="pipa"/><category term="plane finder"/><category term="portage"/><category term="power"/><category term="powertoys"/><category term="prefixes"/><category term="pyqt"/><category term="python"/><category term="quantlib"/><category term="rackable"/><category term="radar detector"/><category term="radarbox24"/><category term="railroad"/><category term="reader"/><category term="recruiting"/><category term="rfid"/><category term="rip"/><category term="rtl"/><category term="rtl-sdr"/><category term="ruby"/><category term="s3"/><category term="scour"/><category term="sdr"/><category term="sds011"/><category term="sequoia"/><category term="shimano"/><category term="shiretoko"/><category term="sirius"/><category term="social"/><category term="software"/><category term="solar"/><category term="sopa"/><category term="spd"/><category term="spdy"/><category term="speed"/><category term="starcraft"/><category term="statistics"/><category term="steve jobs"/><category term="sun ray"/><category term="syntax highlighting"/><category term="taskswitchxp"/><category term="technobabble"/><category term="ted"/><category term="templates"/><category term="thinkpad"/><category term="tomtom"/><category term="tree"/><category term="turing award"/><category term="tv"/><category term="unconference"/><category term="update-manager"/><category term="upload"/><category term="usgs"/><category term="v1"/><category term="valentine one"/><category term="vandalism"/><category term="vb"/><category term="vnc"/><category term="voting"/><category term="w3c"/><category term="window manager"/><category term="windows 8"/><category term="windows xp"/><category term="writer"/><category term="x11vnc"/><category term="x300"/><category term="xm"/><category term="yaesu"/><category term="yahoo"/><category term="youtube"/><category term="zerg"/><title type='text'>Technobabble</title><subtitle type='html'>Random techie stuff</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://tech.element77.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8026726330557031/posts/default?redirect=false'/><link rel='alternate' type='text/html' href='http://tech.element77.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><link rel='next' type='application/atom+xml' href='http://www.blogger.com/feeds/8026726330557031/posts/default?start-index=26&amp;max-results=25&amp;redirect=false'/><author><name>Anonymous</name><uri>http://www.blogger.com/profile/15007585885438453864</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>155</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-8026726330557031.post-3733944443954949576</id><published>2022-12-19T07:19:00.001-08:00</published><updated>2022-12-19T07:19:13.733-08:00</updated><title type='text'>My Year in Books (2022)</title><content type='html'>&lt;p&gt;See &lt;a href=&quot;https://medium.com/@arunkv/my-book-journey-in-2022-fa815c8addcd&quot;&gt;https://medium.com/@arunkv/my-book-journey-in-2022-fa815c8addcd&lt;/a&gt;&amp;nbsp;&lt;/p&gt;</content><link rel='replies' type='application/atom+xml' href='http://tech.element77.com/feeds/3733944443954949576/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/8026726330557031/3733944443954949576?isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8026726330557031/posts/default/3733944443954949576'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8026726330557031/posts/default/3733944443954949576'/><link rel='alternate' type='text/html' href='http://tech.element77.com/2022/12/my-year-in-books-2022.html' title='My Year in Books (2022)'/><author><name>Arun K Viswanathan</name><uri>http://www.blogger.com/profile/06180523881306356438</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgEvtOZ39w2bNepVBG6tsbh_tgWbX_mbEMrPrmt41NwCGWlIIjtartSirxrHrClLWGpZRO3zXEH1dgvdXaEQsD8XCg3QURmHa86DHQBOwDJXTNAPaMlcArrA-uCOLeRqJg/s1600-r/weeme2.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8026726330557031.post-8958895550053832259</id><published>2022-01-27T17:01:00.001-08:00</published><updated>2022-01-27T17:01:25.099-08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="adafruit.io"/><category scheme="http://www.blogger.com/atom/ns#" term="python"/><category scheme="http://www.blogger.com/atom/ns#" term="raspberry pi"/><category scheme="http://www.blogger.com/atom/ns#" term="sds011"/><title type='text'>AQI Monitor with the Raspberry Pi (2022 Edition)</title><content type='html'>&lt;p&gt;&amp;nbsp;There are lots of projects on the web about Air Quality Index (AQI) monitoring with a Raspberry Pi. I recently went through the exercise of setting this up again after a few years and wanted to capture the 2022 version of the implementation.&amp;nbsp;&lt;/p&gt;&lt;p&gt;The first step is of course choosing the PM2.5 sensor. For this project I used the cheapy and widely available &lt;b&gt;SDS011 PM2.5 sensor&lt;/b&gt;. (&lt;a href=&quot;https://www.aliexpress.com/wholesale?catId=0&amp;amp;initiative_id=SB_20220127164937&amp;amp;SearchText=sds011&quot;&gt;AliExpress&lt;/a&gt;, &amp;lt;$20; &lt;a href=&quot;https://microcontrollerslab.com/nova-pm-sds011-dust-sensor-pinout-working-interfacing-datasheet/&quot;&gt;Datasheet&lt;/a&gt;).&amp;nbsp;&lt;/p&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://microcontrollerslab.com/wp-content/uploads/2020/12/NoVA-PM-SDS011-Dust-particle-and-air-quality-measurement-sensor.jpg?ezimgfmt=ng%3Awebp%2Fngcb1%2Frs%3Adevice%2Frscb1-1&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;800&quot; data-original-width=&quot;800&quot; height=&quot;320&quot; src=&quot;https://microcontrollerslab.com/wp-content/uploads/2020/12/NoVA-PM-SDS011-Dust-particle-and-air-quality-measurement-sensor.jpg?ezimgfmt=ng%3Awebp%2Fngcb1%2Frs%3Adevice%2Frscb1-1&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;p&gt;The sensor usually comes with a serial-to-USB converter. The &lt;span style=&quot;font-family: courier;&quot;&gt;&lt;b&gt;ikalchev/py-sd011&lt;/b&gt;&lt;/span&gt; package (&lt;a href=&quot;https://github.com/ikalchev/py-sds011&quot;&gt;Github&lt;/a&gt;) implements an easy-to-use Python 3 interface to query the SDS011 sensor.&amp;nbsp;&lt;/p&gt;&lt;p&gt;I have written an AQI monitoring service in Python 3 that builds on top of the sensor interface to run continuous monitoring and reporting of AQI: &lt;span style=&quot;font-family: courier;&quot;&gt;&lt;b&gt;arunkv/aqi_monitor&lt;/b&gt;&lt;/span&gt; (&lt;a href=&quot;https://github.com/arunkv/aqi_monitor&quot;&gt;Github&lt;/a&gt;). The reporting is done via &lt;a href=&quot;https://io.adafruit.com/&quot;&gt;Adafruit&#39;s IO service&lt;/a&gt;. Here&#39;s a screenshot of my &lt;a href=&quot;https://io.adafruit.com/lordaragorn/feeds/plh-aqi-aqi&quot;&gt;live AQI dashboard&lt;/a&gt;:&lt;/p&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/a/AVvXsEhhbrsFpvb_ZyhPPO2mafjK2e2y0Hlypgtrj63mLgmFo0VamFhp7m8jzUBnxYzTyPWd3fvYeNek_HVhnIfJZ1tMWdiok4xHdxqWMFch2SzZSv1wK10U9nnBwDHIBxfU_CR-PR9-sCG7z9xj4pzkoN9pbGias7rPDqjDXxPOl-aoHAs0mrU4U7loZLc=s2198&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;1218&quot; data-original-width=&quot;2198&quot; height=&quot;354&quot; src=&quot;https://blogger.googleusercontent.com/img/a/AVvXsEhhbrsFpvb_ZyhPPO2mafjK2e2y0Hlypgtrj63mLgmFo0VamFhp7m8jzUBnxYzTyPWd3fvYeNek_HVhnIfJZ1tMWdiok4xHdxqWMFch2SzZSv1wK10U9nnBwDHIBxfU_CR-PR9-sCG7z9xj4pzkoN9pbGias7rPDqjDXxPOl-aoHAs0mrU4U7loZLc=w640-h354&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: left;&quot;&gt;Give the code a shot and let me know if you run into any issues.&amp;nbsp;&lt;/div&gt;&lt;br /&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;</content><link rel='replies' type='application/atom+xml' href='http://tech.element77.com/feeds/8958895550053832259/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/8026726330557031/8958895550053832259?isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8026726330557031/posts/default/8958895550053832259'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8026726330557031/posts/default/8958895550053832259'/><link rel='alternate' type='text/html' href='http://tech.element77.com/2022/01/aqi-monitor-with-raspberry-pi-2022.html' title='AQI Monitor with the Raspberry Pi (2022 Edition)'/><author><name>Arun K Viswanathan</name><uri>http://www.blogger.com/profile/06180523881306356438</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgEvtOZ39w2bNepVBG6tsbh_tgWbX_mbEMrPrmt41NwCGWlIIjtartSirxrHrClLWGpZRO3zXEH1dgvdXaEQsD8XCg3QURmHa86DHQBOwDJXTNAPaMlcArrA-uCOLeRqJg/s1600-r/weeme2.png'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/a/AVvXsEhhbrsFpvb_ZyhPPO2mafjK2e2y0Hlypgtrj63mLgmFo0VamFhp7m8jzUBnxYzTyPWd3fvYeNek_HVhnIfJZ1tMWdiok4xHdxqWMFch2SzZSv1wK10U9nnBwDHIBxfU_CR-PR9-sCG7z9xj4pzkoN9pbGias7rPDqjDXxPOl-aoHAs0mrU4U7loZLc=s72-w640-h354-c" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8026726330557031.post-5243759680514818326</id><published>2020-09-13T08:43:00.001-07:00</published><updated>2020-09-13T08:45:52.873-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="chrome"/><category scheme="http://www.blogger.com/atom/ns#" term="gnupg"/><category scheme="http://www.blogger.com/atom/ns#" term="mailvelope"/><title type='text'>Getting Mailvelope on Chrome to use GnuPG on macOS</title><content type='html'>&lt;p&gt;&lt;a href=&quot;https://www.mailvelope.com/en&quot; target=&quot;_blank&quot;&gt;Mailvelope&lt;/a&gt; is a browser add-on that helps use GPG encryption and signing on webmail systems like Gmail. Here are the steps on macOS (tested with &quot;Big Sur&quot;) to get Mailvelope to use the GnuPG backend.&lt;/p&gt;&lt;p&gt;&lt;/p&gt;Install &lt;span style=&quot;font-family: courier;&quot;&gt;gpgme&lt;/span&gt; via Homebrew: &lt;span style=&quot;font-family: courier;&quot;&gt;brew install gpgme&lt;/span&gt; This will install &lt;span style=&quot;font-family: courier;&quot;&gt;gpgme-json&lt;/span&gt; in &lt;span style=&quot;font-family: courier;&quot;&gt;/usr/local/bin&lt;/span&gt; by default.&amp;nbsp;&lt;div&gt;&lt;br /&gt;Create a file called &lt;span style=&quot;font-family: courier;&quot;&gt;gpgmejson.json&lt;/span&gt; in&amp;nbsp;&lt;br /&gt;&lt;span style=&quot;font-family: courier;&quot;&gt;&quot;~/Library/Application Support/Google/Chrome/NativeMessagingHosts&quot;&lt;br /&gt;&lt;/span&gt;with the following contents:&lt;br /&gt;&lt;div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;blockquote&gt;&lt;div&gt;&lt;span style=&quot;font-family: courier;&quot;&gt;{&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: courier;&quot;&gt;&amp;nbsp; &amp;nbsp; &quot;name&quot;: &quot;gpgmejson&quot;,&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: courier;&quot;&gt;&amp;nbsp; &amp;nbsp; &quot;description&quot;: &quot;Integration with GnuPG&quot;,&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: courier;&quot;&gt;&amp;nbsp; &amp;nbsp; &quot;path&quot;: &quot;/usr/local/bin/gpgme-json&quot;,&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: courier;&quot;&gt;&amp;nbsp; &amp;nbsp; &quot;type&quot;: &quot;stdio&quot;,&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: courier;&quot;&gt;&amp;nbsp; &amp;nbsp; &quot;allowed_origins&quot;: [&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: courier;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &quot;chrome-extension://kajibbejlbohfaggdiogboambcijhkke/&quot;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: courier;&quot;&gt;&amp;nbsp; &amp;nbsp; ]&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: courier;&quot;&gt;}&lt;/span&gt;&lt;/div&gt;&lt;/blockquote&gt;&lt;p&gt;Now in Mailvelope &amp;gt; Options &amp;gt; &lt;a href=&quot;chrome-extension://kajibbejlbohfaggdiogboambcijhkke/app/app.html#/settings/general&quot; target=&quot;_blank&quot;&gt;General&lt;/a&gt;, GnuPG will show up as the encryption backend.&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&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/AVvXsEgvu2ltwKjBDi70YqjNM9EQ66ev1egaNWWg533uy4pzAts_nw4O7kRidTDo9GPjTVriey3UHyfl3rUvIUGrgrUh-xXnqdcXNHAIaG_DtUODzSIqRgA4YPhMvdDiVHtmKa04ndV4paxehA/s1950/Screen+Shot+2020-09-13+at+8.41.00+AM.png&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;768&quot; data-original-width=&quot;1950&quot; height=&quot;248&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgvu2ltwKjBDi70YqjNM9EQ66ev1egaNWWg533uy4pzAts_nw4O7kRidTDo9GPjTVriey3UHyfl3rUvIUGrgrUh-xXnqdcXNHAIaG_DtUODzSIqRgA4YPhMvdDiVHtmKa04ndV4paxehA/w625-h248/Screen+Shot+2020-09-13+at+8.41.00+AM.png&quot; width=&quot;625&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;p&gt;&lt;/p&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;p&gt;&lt;/p&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://tech.element77.com/feeds/5243759680514818326/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/8026726330557031/5243759680514818326?isPopup=true' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8026726330557031/posts/default/5243759680514818326'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8026726330557031/posts/default/5243759680514818326'/><link rel='alternate' type='text/html' href='http://tech.element77.com/2020/09/getting-mailvelope-on-chrome-to-use.html' title='Getting Mailvelope on Chrome to use GnuPG on macOS'/><author><name>Arun K Viswanathan</name><uri>http://www.blogger.com/profile/06180523881306356438</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgEvtOZ39w2bNepVBG6tsbh_tgWbX_mbEMrPrmt41NwCGWlIIjtartSirxrHrClLWGpZRO3zXEH1dgvdXaEQsD8XCg3QURmHa86DHQBOwDJXTNAPaMlcArrA-uCOLeRqJg/s1600-r/weeme2.png'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgvu2ltwKjBDi70YqjNM9EQ66ev1egaNWWg533uy4pzAts_nw4O7kRidTDo9GPjTVriey3UHyfl3rUvIUGrgrUh-xXnqdcXNHAIaG_DtUODzSIqRgA4YPhMvdDiVHtmKa04ndV4paxehA/s72-w625-h248-c/Screen+Shot+2020-09-13+at+8.41.00+AM.png" height="72" width="72"/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8026726330557031.post-8655925535734678935</id><published>2020-07-04T17:33:00.001-07:00</published><updated>2020-07-04T17:39:09.318-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="HSTS"/><category scheme="http://www.blogger.com/atom/ns#" term="LetsEncrypt"/><category scheme="http://www.blogger.com/atom/ns#" term="SSL"/><category scheme="http://www.blogger.com/atom/ns#" term="TLS"/><title type='text'>Getting an A+ Score on Qualys&#39; SSL Server Test</title><content type='html'>On a lark, to get some experience with configuring HTTPS servers, I decided to host the Flightware frontends on my RaspberryPi on an HTTPS endpoint instead of the default HTTP. The broad steps to do this were:&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;ol style=&quot;text-align: left;&quot;&gt;&lt;li&gt;Getting a certificate for my site via LetsEncrypt&#39;s certbot&lt;/li&gt;&lt;li&gt;Enabling the HTTPS endpoint on Lighttpd&lt;/li&gt;&lt;li&gt;Testing the security of the setup via the Qualys SSL Server Test&lt;/li&gt;&lt;/ol&gt;&lt;div&gt;It took some trial and error to get an &lt;a href=&quot;https://www.ssllabs.com/ssltest/analyze.html?d=piaware.element77.com&quot; target=&quot;_blank&quot;&gt;A+ rating for my server&#39;s SSL setup&lt;/a&gt;. The two key steps involved in improving the security of the setup were:&lt;/div&gt;&lt;div&gt;&lt;ol style=&quot;text-align: left;&quot;&gt;&lt;li&gt;Starting with a strong SSL configuration generated by &lt;a href=&quot;https://ssl-config.mozilla.org/#server=lighttpd&amp;amp;version=1.4.55&amp;amp;config=intermediate&amp;amp;openssl=1.1.1d&amp;amp;guideline=5.4&quot; target=&quot;_blank&quot;&gt;Mozilla&#39;s SSL Configuration Generator&lt;/a&gt;. This means no SSL v2, SSL v3 or anything below TLS v1.2, and setting up HSTS&lt;/li&gt;&lt;li&gt;Configuring DNS CAA records for the domain. Here&#39;s how my CAA record is configured on Google Domains:&lt;br /&gt;&lt;p class=&quot;p1&quot; style=&quot;background-color: rgba(0, 0, 0, 0.85); color: #f2f2f2; font-family: monaco; font-size: 12px; font-stretch: normal; font-variant-east-asian: normal; font-variant-numeric: normal; line-height: normal; margin: 0px;&quot;&gt;&lt;span class=&quot;s1&quot; style=&quot;color: #2fb41d; font-variant-ligatures: no-common-ligatures;&quot;&gt;➜&lt;/span&gt;&lt;span class=&quot;s2&quot; style=&quot;font-variant-ligatures: no-common-ligatures;&quot;&gt; dig caa element77.com +short&lt;/span&gt;&lt;/p&gt;&lt;p class=&quot;p1&quot; style=&quot;background-color: rgba(0, 0, 0, 0.85); color: #f2f2f2; font-family: monaco; font-size: 12px; font-stretch: normal; font-variant-east-asian: normal; font-variant-numeric: normal; line-height: normal; margin: 0px;&quot;&gt;&lt;span class=&quot;s2&quot; style=&quot;font-variant-ligatures: no-common-ligatures;&quot;&gt;0 issue &quot;letsencrypt.org&quot;&lt;/span&gt;&lt;/p&gt;&lt;p class=&quot;p1&quot; style=&quot;background-color: rgba(0, 0, 0, 0.85); color: #f2f2f2; font-family: monaco; font-size: 12px; font-stretch: normal; font-variant-east-asian: normal; font-variant-numeric: normal; line-height: normal; margin: 0px;&quot;&gt;&lt;span class=&quot;s2&quot; style=&quot;font-variant-ligatures: no-common-ligatures;&quot;&gt;0 issue &quot;pki.goog&quot;&lt;/span&gt;&lt;/p&gt;&lt;p class=&quot;p1&quot; style=&quot;background-color: rgba(0, 0, 0, 0.85); color: #f2f2f2; font-family: monaco; font-size: 12px; font-stretch: normal; font-variant-east-asian: normal; font-variant-numeric: normal; line-height: normal; margin: 0px;&quot;&gt;&lt;span class=&quot;s2&quot; style=&quot;font-variant-ligatures: no-common-ligatures;&quot;&gt;0 iodef &quot;mailto:caa@element77.com&quot;&lt;/span&gt;&lt;/p&gt;&lt;p class=&quot;p1&quot; style=&quot;background-color: rgba(0, 0, 0, 0.85); color: #f2f2f2; font-family: monaco; font-size: 12px; font-stretch: normal; font-variant-east-asian: normal; font-variant-numeric: normal; line-height: normal; margin: 0px;&quot;&gt;&lt;span class=&quot;s2&quot; style=&quot;font-variant-ligatures: no-common-ligatures;&quot;&gt;0 issue &quot;amazon.com&quot;&lt;/span&gt;&lt;/p&gt;&lt;/li&gt;&lt;/ol&gt;&lt;div&gt;I haven&#39;t set up OCSP stapling yet but that&#39;s an exercise for the future. Here&#39;s my full SSL configuration for the server.&lt;/div&gt;&lt;/div&gt;&lt;pre style=&quot;text-align: left;&quot;&gt;&lt;p class=&quot;p1&quot; style=&quot;background-color: rgba(0, 0, 0, 0.85); color: #2eaebb; font-family: monaco; font-size: 12px; font-stretch: normal; font-variant-east-asian: normal; font-variant-numeric: normal; line-height: normal; margin: 0px; white-space: normal;&quot;&gt;&lt;span class=&quot;s1&quot; style=&quot;color: #9fa01c; font-variant-ligatures: no-common-ligatures;&quot;&gt;&lt;span class=&quot;Apple-converted-space&quot;&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;1 &lt;/span&gt;&lt;span class=&quot;s2&quot; style=&quot;font-variant-ligatures: no-common-ligatures;&quot;&gt;# /usr/share/doc/lighttpd/ssl.txt&lt;/span&gt;&lt;/p&gt;&lt;p class=&quot;p2&quot; style=&quot;background-color: rgba(0, 0, 0, 0.85); color: #9fa01c; font-family: monaco; font-size: 12px; font-stretch: normal; font-variant-east-asian: normal; font-variant-numeric: normal; line-height: normal; margin: 0px; white-space: normal;&quot;&gt;&lt;span class=&quot;s2&quot; style=&quot;font-variant-ligatures: no-common-ligatures;&quot;&gt;&lt;span class=&quot;Apple-converted-space&quot;&gt;&amp;nbsp; &lt;/span&gt;2&lt;span class=&quot;Apple-converted-space&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class=&quot;p3&quot; style=&quot;background-color: rgba(0, 0, 0, 0.85); color: #f2f2f2; font-family: monaco; font-size: 12px; font-stretch: normal; font-variant-east-asian: normal; font-variant-numeric: normal; line-height: normal; margin: 0px; white-space: normal;&quot;&gt;&lt;span class=&quot;s1&quot; style=&quot;color: #9fa01c; font-variant-ligatures: no-common-ligatures;&quot;&gt;&lt;span class=&quot;Apple-converted-space&quot;&gt;&amp;nbsp; &lt;/span&gt;3 &lt;/span&gt;&lt;span class=&quot;s2&quot; style=&quot;font-variant-ligatures: no-common-ligatures;&quot;&gt;server.modules += ( &lt;/span&gt;&lt;span class=&quot;s3&quot; style=&quot;color: #c814c9; font-variant-ligatures: no-common-ligatures;&quot;&gt;&quot;mod_openssl&quot;&lt;/span&gt;&lt;span class=&quot;s2&quot; style=&quot;font-variant-ligatures: no-common-ligatures;&quot;&gt; )&lt;/span&gt;&lt;/p&gt;&lt;p class=&quot;p3&quot; style=&quot;background-color: rgba(0, 0, 0, 0.85); color: #f2f2f2; font-family: monaco; font-size: 12px; font-stretch: normal; font-variant-east-asian: normal; font-variant-numeric: normal; line-height: normal; margin: 0px; white-space: normal;&quot;&gt;&lt;span class=&quot;s1&quot; style=&quot;color: #9fa01c; font-variant-ligatures: no-common-ligatures;&quot;&gt;&lt;span class=&quot;Apple-converted-space&quot;&gt;&amp;nbsp; &lt;/span&gt;4&lt;span class=&quot;Apple-converted-space&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;s2&quot; style=&quot;font-variant-ligatures: no-common-ligatures;&quot;&gt; &lt;span class=&quot;Apple-converted-space&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class=&quot;p4&quot; style=&quot;background-color: rgba(0, 0, 0, 0.85); color: #c814c9; font-family: monaco; font-size: 12px; font-stretch: normal; font-variant-east-asian: normal; font-variant-numeric: normal; line-height: normal; margin: 0px; white-space: normal;&quot;&gt;&lt;span class=&quot;s1&quot; style=&quot;color: #9fa01c; font-variant-ligatures: no-common-ligatures;&quot;&gt;&lt;span class=&quot;Apple-converted-space&quot;&gt;&amp;nbsp; &lt;/span&gt;5 &lt;/span&gt;&lt;span class=&quot;s4&quot; style=&quot;color: #f2f2f2; font-variant-ligatures: no-common-ligatures;&quot;&gt;$SERVER[&lt;/span&gt;&lt;span class=&quot;s2&quot; style=&quot;font-variant-ligatures: no-common-ligatures;&quot;&gt;&quot;socket&quot;&lt;/span&gt;&lt;span class=&quot;s4&quot; style=&quot;color: #f2f2f2; font-variant-ligatures: no-common-ligatures;&quot;&gt;] == &lt;/span&gt;&lt;span class=&quot;s2&quot; style=&quot;font-variant-ligatures: no-common-ligatures;&quot;&gt;&quot;0.0.0.0:443&quot;&lt;/span&gt;&lt;span class=&quot;s4&quot; style=&quot;color: #f2f2f2; font-variant-ligatures: no-common-ligatures;&quot;&gt; {&lt;/span&gt;&lt;/p&gt;&lt;p class=&quot;p3&quot; style=&quot;background-color: rgba(0, 0, 0, 0.85); color: #f2f2f2; font-family: monaco; font-size: 12px; font-stretch: normal; font-variant-east-asian: normal; font-variant-numeric: normal; line-height: normal; margin: 0px; white-space: normal;&quot;&gt;&lt;span class=&quot;s1&quot; style=&quot;color: #9fa01c; font-variant-ligatures: no-common-ligatures;&quot;&gt;&lt;span class=&quot;Apple-converted-space&quot;&gt;&amp;nbsp; &lt;/span&gt;6 &lt;/span&gt;&lt;span class=&quot;s2&quot; style=&quot;font-variant-ligatures: no-common-ligatures;&quot;&gt;&lt;span class=&quot;Apple-converted-space&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/span&gt;ssl.engine = &lt;/span&gt;&lt;span class=&quot;s3&quot; style=&quot;color: #c814c9; font-variant-ligatures: no-common-ligatures;&quot;&gt;&quot;enable&quot;&lt;/span&gt;&lt;/p&gt;&lt;p class=&quot;p4&quot; style=&quot;background-color: rgba(0, 0, 0, 0.85); color: #c814c9; font-family: monaco; font-size: 12px; font-stretch: normal; font-variant-east-asian: normal; font-variant-numeric: normal; line-height: normal; margin: 0px; white-space: normal;&quot;&gt;&lt;span class=&quot;s1&quot; style=&quot;color: #9fa01c; font-variant-ligatures: no-common-ligatures;&quot;&gt;&lt;span class=&quot;Apple-converted-space&quot;&gt;&amp;nbsp; &lt;/span&gt;7 &lt;/span&gt;&lt;span class=&quot;s4&quot; style=&quot;color: #f2f2f2; font-variant-ligatures: no-common-ligatures;&quot;&gt;&lt;span class=&quot;Apple-converted-space&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/span&gt;ssl.privkey= &lt;/span&gt;&lt;span class=&quot;s2&quot; style=&quot;font-variant-ligatures: no-common-ligatures;&quot;&gt;&quot;/etc/letsencrypt/live/piaware.element77.com/privkey.pem&quot;&lt;/span&gt;&lt;/p&gt;&lt;p class=&quot;p4&quot; style=&quot;background-color: rgba(0, 0, 0, 0.85); color: #c814c9; font-family: monaco; font-size: 12px; font-stretch: normal; font-variant-east-asian: normal; font-variant-numeric: normal; line-height: normal; margin: 0px; white-space: normal;&quot;&gt;&lt;span class=&quot;s1&quot; style=&quot;color: #9fa01c; font-variant-ligatures: no-common-ligatures;&quot;&gt;&lt;span class=&quot;Apple-converted-space&quot;&gt;&amp;nbsp; &lt;/span&gt;8 &lt;/span&gt;&lt;span class=&quot;s4&quot; style=&quot;color: #f2f2f2; font-variant-ligatures: no-common-ligatures;&quot;&gt;&lt;span class=&quot;Apple-converted-space&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/span&gt;ssl.pemfile = &lt;/span&gt;&lt;span class=&quot;s2&quot; style=&quot;font-variant-ligatures: no-common-ligatures;&quot;&gt;&quot;/etc/letsencrypt/live/piaware.element77.com/fullchain.pem&quot;&lt;/span&gt;&lt;/p&gt;&lt;p class=&quot;p4&quot; style=&quot;background-color: rgba(0, 0, 0, 0.85); color: #c814c9; font-family: monaco; font-size: 12px; font-stretch: normal; font-variant-east-asian: normal; font-variant-numeric: normal; line-height: normal; margin: 0px; white-space: normal;&quot;&gt;&lt;span class=&quot;s1&quot; style=&quot;color: #9fa01c; font-variant-ligatures: no-common-ligatures;&quot;&gt;&lt;span class=&quot;Apple-converted-space&quot;&gt;&amp;nbsp; &lt;/span&gt;9 &lt;/span&gt;&lt;span class=&quot;s4&quot; style=&quot;color: #f2f2f2; font-variant-ligatures: no-common-ligatures;&quot;&gt;&lt;span class=&quot;Apple-converted-space&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/span&gt;ssl.ca-file = &lt;/span&gt;&lt;span class=&quot;s2&quot; style=&quot;font-variant-ligatures: no-common-ligatures;&quot;&gt;&quot;/etc/letsencrypt/live/piaware.element77.com/chain.pem&quot;&lt;/span&gt;&lt;/p&gt;&lt;p class=&quot;p3&quot; style=&quot;background-color: rgba(0, 0, 0, 0.85); color: #f2f2f2; font-family: monaco; font-size: 12px; font-stretch: normal; font-variant-east-asian: normal; font-variant-numeric: normal; line-height: normal; margin: 0px; white-space: normal;&quot;&gt;&lt;span class=&quot;s1&quot; style=&quot;color: #9fa01c; font-variant-ligatures: no-common-ligatures;&quot;&gt;&lt;span class=&quot;Apple-converted-space&quot;&gt;&amp;nbsp;&lt;/span&gt;10&lt;span class=&quot;Apple-converted-space&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;s2&quot; style=&quot;font-variant-ligatures: no-common-ligatures;&quot;&gt; &lt;span class=&quot;Apple-converted-space&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class=&quot;p1&quot; style=&quot;background-color: rgba(0, 0, 0, 0.85); color: #2eaebb; font-family: monaco; font-size: 12px; font-stretch: normal; font-variant-east-asian: normal; font-variant-numeric: normal; line-height: normal; margin: 0px; white-space: normal;&quot;&gt;&lt;span class=&quot;s1&quot; style=&quot;color: #9fa01c; font-variant-ligatures: no-common-ligatures;&quot;&gt;&lt;span class=&quot;Apple-converted-space&quot;&gt;&amp;nbsp;&lt;/span&gt;11 &lt;/span&gt;&lt;span class=&quot;s2&quot; style=&quot;font-variant-ligatures: no-common-ligatures;&quot;&gt;# Test via https://www.ssllabs.com/ssltest/analyze.html?d=piaware.element77.com&lt;/span&gt;&lt;/p&gt;&lt;p class=&quot;p1&quot; style=&quot;background-color: rgba(0, 0, 0, 0.85); color: #2eaebb; font-family: monaco; font-size: 12px; font-stretch: normal; font-variant-east-asian: normal; font-variant-numeric: normal; line-height: normal; margin: 0px; white-space: normal;&quot;&gt;&lt;span class=&quot;s1&quot; style=&quot;color: #9fa01c; font-variant-ligatures: no-common-ligatures;&quot;&gt;&lt;span class=&quot;Apple-converted-space&quot;&gt;&amp;nbsp;&lt;/span&gt;12 &lt;/span&gt;&lt;span class=&quot;s2&quot; style=&quot;font-variant-ligatures: no-common-ligatures;&quot;&gt;# See https://www.raymii.org/s/tutorials/Strong_SSL_Security_On_lighttpd.html&lt;/span&gt;&lt;/p&gt;&lt;p class=&quot;p1&quot; style=&quot;background-color: rgba(0, 0, 0, 0.85); color: #2eaebb; font-family: monaco; font-size: 12px; font-stretch: normal; font-variant-east-asian: normal; font-variant-numeric: normal; line-height: normal; margin: 0px; white-space: normal;&quot;&gt;&lt;span class=&quot;s1&quot; style=&quot;color: #9fa01c; font-variant-ligatures: no-common-ligatures;&quot;&gt;&lt;span class=&quot;Apple-converted-space&quot;&gt;&amp;nbsp;&lt;/span&gt;13 &lt;/span&gt;&lt;span class=&quot;s2&quot; style=&quot;font-variant-ligatures: no-common-ligatures;&quot;&gt;# See https://ssl-config.mozilla.org/#server=lighttpd&amp;amp;version=1.4.55&amp;amp;config=intermediate&amp;amp;openssl=1.1.1d&amp;amp;guideline=5.4&lt;/span&gt;&lt;/p&gt;&lt;p class=&quot;p1&quot; style=&quot;background-color: rgba(0, 0, 0, 0.85); color: #2eaebb; font-family: monaco; font-size: 12px; font-stretch: normal; font-variant-east-asian: normal; font-variant-numeric: normal; line-height: normal; margin: 0px; white-space: normal;&quot;&gt;&lt;span class=&quot;s1&quot; style=&quot;color: #9fa01c; font-variant-ligatures: no-common-ligatures;&quot;&gt;&lt;span class=&quot;Apple-converted-space&quot;&gt;&amp;nbsp;&lt;/span&gt;14 &lt;/span&gt;&lt;span class=&quot;s2&quot; style=&quot;font-variant-ligatures: no-common-ligatures;&quot;&gt;# modern configuration&lt;/span&gt;&lt;/p&gt;&lt;p class=&quot;p4&quot; style=&quot;background-color: rgba(0, 0, 0, 0.85); color: #c814c9; font-family: monaco; font-size: 12px; font-stretch: normal; font-variant-east-asian: normal; font-variant-numeric: normal; line-height: normal; margin: 0px; white-space: normal;&quot;&gt;&lt;span class=&quot;s1&quot; style=&quot;color: #9fa01c; font-variant-ligatures: no-common-ligatures;&quot;&gt;&lt;span class=&quot;Apple-converted-space&quot;&gt;&amp;nbsp;&lt;/span&gt;15 &lt;/span&gt;&lt;span class=&quot;s4&quot; style=&quot;color: #f2f2f2; font-variant-ligatures: no-common-ligatures;&quot;&gt;&lt;span class=&quot;Apple-converted-space&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/span&gt;ssl.openssl.ssl-conf-cmd = (&lt;/span&gt;&lt;span class=&quot;s2&quot; style=&quot;font-variant-ligatures: no-common-ligatures;&quot;&gt;&quot;Protocol&quot;&lt;/span&gt;&lt;span class=&quot;s4&quot; style=&quot;color: #f2f2f2; font-variant-ligatures: no-common-ligatures;&quot;&gt; =&amp;gt; &lt;/span&gt;&lt;span class=&quot;s2&quot; style=&quot;font-variant-ligatures: no-common-ligatures;&quot;&gt;&quot;ALL, -SSLv2, -SSLv3, -TLSv1, -TLSv1.1&quot;&lt;/span&gt;&lt;span class=&quot;s4&quot; style=&quot;color: #f2f2f2; font-variant-ligatures: no-common-ligatures;&quot;&gt;)&lt;/span&gt;&lt;/p&gt;&lt;p class=&quot;p3&quot; style=&quot;background-color: rgba(0, 0, 0, 0.85); color: #f2f2f2; font-family: monaco; font-size: 12px; font-stretch: normal; font-variant-east-asian: normal; font-variant-numeric: normal; line-height: normal; margin: 0px; white-space: normal;&quot;&gt;&lt;span class=&quot;s1&quot; style=&quot;color: #9fa01c; font-variant-ligatures: no-common-ligatures;&quot;&gt;&lt;span class=&quot;Apple-converted-space&quot;&gt;&amp;nbsp;&lt;/span&gt;16 &lt;/span&gt;&lt;span class=&quot;s2&quot; style=&quot;font-variant-ligatures: no-common-ligatures;&quot;&gt;&lt;span class=&quot;Apple-converted-space&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/span&gt;ssl.honor-cipher-order = &lt;/span&gt;&lt;span class=&quot;s3&quot; style=&quot;color: #c814c9; font-variant-ligatures: no-common-ligatures;&quot;&gt;&quot;disable&quot;&lt;/span&gt;&lt;/p&gt;&lt;p class=&quot;p4&quot; style=&quot;background-color: rgba(0, 0, 0, 0.85); color: #c814c9; font-family: monaco; font-size: 12px; font-stretch: normal; font-variant-east-asian: normal; font-variant-numeric: normal; line-height: normal; margin: 0px; white-space: normal;&quot;&gt;&lt;span class=&quot;s1&quot; style=&quot;color: #9fa01c; font-variant-ligatures: no-common-ligatures;&quot;&gt;&lt;span class=&quot;Apple-converted-space&quot;&gt;&amp;nbsp;&lt;/span&gt;17 &lt;/span&gt;&lt;span class=&quot;s4&quot; style=&quot;color: #f2f2f2; font-variant-ligatures: no-common-ligatures;&quot;&gt;&lt;span class=&quot;Apple-converted-space&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/span&gt;ssl.cipher-list = &lt;/span&gt;&lt;span class=&quot;s2&quot; style=&quot;font-variant-ligatures: no-common-ligatures;&quot;&gt;&quot;ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-&lt;/span&gt;&lt;span class=&quot;s1&quot; style=&quot;color: #9fa01c; font-variant-ligatures: no-common-ligatures;&quot;&gt;&amp;nbsp; &amp;nbsp; &lt;/span&gt;&lt;span class=&quot;s2&quot; style=&quot;font-variant-ligatures: no-common-ligatures;&quot;&gt;GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384&quot;&lt;/span&gt;&lt;/p&gt;&lt;p class=&quot;p4&quot; style=&quot;background-color: rgba(0, 0, 0, 0.85); color: #c814c9; font-family: monaco; font-size: 12px; font-stretch: normal; font-variant-east-asian: normal; font-variant-numeric: normal; line-height: normal; margin: 0px; white-space: normal;&quot;&gt;&lt;span class=&quot;s1&quot; style=&quot;color: #9fa01c; font-variant-ligatures: no-common-ligatures;&quot;&gt;&lt;span class=&quot;Apple-converted-space&quot;&gt;&amp;nbsp;&lt;/span&gt;18 &lt;/span&gt;&lt;span class=&quot;s4&quot; style=&quot;color: #f2f2f2; font-variant-ligatures: no-common-ligatures;&quot;&gt;&lt;span class=&quot;Apple-converted-space&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/span&gt;ssl.dh-file = &lt;/span&gt;&lt;span class=&quot;s2&quot; style=&quot;font-variant-ligatures: no-common-ligatures;&quot;&gt;&quot;/etc/ssl/certs/dhparam.pem&quot;&lt;/span&gt;&lt;/p&gt;&lt;p class=&quot;p3&quot; style=&quot;background-color: rgba(0, 0, 0, 0.85); color: #f2f2f2; font-family: monaco; font-size: 12px; font-stretch: normal; font-variant-east-asian: normal; font-variant-numeric: normal; line-height: normal; margin: 0px; white-space: normal;&quot;&gt;&lt;span class=&quot;s1&quot; style=&quot;color: #9fa01c; font-variant-ligatures: no-common-ligatures;&quot;&gt;&lt;span class=&quot;Apple-converted-space&quot;&gt;&amp;nbsp;&lt;/span&gt;19 &lt;/span&gt;&lt;span class=&quot;s2&quot; style=&quot;font-variant-ligatures: no-common-ligatures;&quot;&gt;&lt;span class=&quot;Apple-converted-space&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/span&gt;ssl.ec-curve = &lt;/span&gt;&lt;span class=&quot;s3&quot; style=&quot;color: #c814c9; font-variant-ligatures: no-common-ligatures;&quot;&gt;&quot;secp384r1&quot;&lt;/span&gt;&lt;span class=&quot;s2&quot; style=&quot;font-variant-ligatures: no-common-ligatures;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;&lt;p class=&quot;p3&quot; style=&quot;background-color: rgba(0, 0, 0, 0.85); color: #f2f2f2; font-family: monaco; font-size: 12px; font-stretch: normal; font-variant-east-asian: normal; font-variant-numeric: normal; line-height: normal; margin: 0px; white-space: normal;&quot;&gt;&lt;span class=&quot;s1&quot; style=&quot;color: #9fa01c; font-variant-ligatures: no-common-ligatures;&quot;&gt;&lt;span class=&quot;Apple-converted-space&quot;&gt;&amp;nbsp;&lt;/span&gt;20 &lt;/span&gt;&lt;span class=&quot;s2&quot; style=&quot;font-variant-ligatures: no-common-ligatures;&quot;&gt;}&lt;span class=&quot;Apple-converted-space&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class=&quot;p3&quot; style=&quot;background-color: rgba(0, 0, 0, 0.85); color: #f2f2f2; font-family: monaco; font-size: 12px; font-stretch: normal; font-variant-east-asian: normal; font-variant-numeric: normal; line-height: normal; margin: 0px; white-space: normal;&quot;&gt;&lt;span class=&quot;s1&quot; style=&quot;color: #9fa01c; font-variant-ligatures: no-common-ligatures;&quot;&gt;&lt;span class=&quot;Apple-converted-space&quot;&gt;&amp;nbsp;&lt;/span&gt;21&lt;span class=&quot;Apple-converted-space&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;s2&quot; style=&quot;font-variant-ligatures: no-common-ligatures;&quot;&gt; &lt;span class=&quot;Apple-converted-space&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class=&quot;p3&quot; style=&quot;background-color: rgba(0, 0, 0, 0.85); color: #f2f2f2; font-family: monaco; font-size: 12px; font-stretch: normal; font-variant-east-asian: normal; font-variant-numeric: normal; line-height: normal; margin: 0px; white-space: normal;&quot;&gt;&lt;span class=&quot;s1&quot; style=&quot;color: #9fa01c; font-variant-ligatures: no-common-ligatures;&quot;&gt;&lt;span class=&quot;Apple-converted-space&quot;&gt;&amp;nbsp;&lt;/span&gt;22 &lt;/span&gt;&lt;span class=&quot;s2&quot; style=&quot;font-variant-ligatures: no-common-ligatures;&quot;&gt;server.modules += ( &lt;/span&gt;&lt;span class=&quot;s3&quot; style=&quot;color: #c814c9; font-variant-ligatures: no-common-ligatures;&quot;&gt;&quot;mod_setenv&quot;&lt;/span&gt;&lt;span class=&quot;s2&quot; style=&quot;font-variant-ligatures: no-common-ligatures;&quot;&gt; )&lt;/span&gt;&lt;/p&gt;&lt;p class=&quot;p4&quot; style=&quot;background-color: rgba(0, 0, 0, 0.85); color: #c814c9; font-family: monaco; font-size: 12px; font-stretch: normal; font-variant-east-asian: normal; font-variant-numeric: normal; line-height: normal; margin: 0px; white-space: normal;&quot;&gt;&lt;span class=&quot;s1&quot; style=&quot;color: #9fa01c; font-variant-ligatures: no-common-ligatures;&quot;&gt;&lt;span class=&quot;Apple-converted-space&quot;&gt;&amp;nbsp;&lt;/span&gt;23 &lt;/span&gt;&lt;span class=&quot;s4&quot; style=&quot;color: #f2f2f2; font-variant-ligatures: no-common-ligatures;&quot;&gt;$HTTP[&lt;/span&gt;&lt;span class=&quot;s2&quot; style=&quot;font-variant-ligatures: no-common-ligatures;&quot;&gt;&quot;scheme&quot;&lt;/span&gt;&lt;span class=&quot;s4&quot; style=&quot;color: #f2f2f2; font-variant-ligatures: no-common-ligatures;&quot;&gt;] == &lt;/span&gt;&lt;span class=&quot;s2&quot; style=&quot;font-variant-ligatures: no-common-ligatures;&quot;&gt;&quot;https&quot;&lt;/span&gt;&lt;span class=&quot;s4&quot; style=&quot;color: #f2f2f2; font-variant-ligatures: no-common-ligatures;&quot;&gt; {&lt;/span&gt;&lt;/p&gt;&lt;p class=&quot;p3&quot; style=&quot;background-color: rgba(0, 0, 0, 0.85); color: #f2f2f2; font-family: monaco; font-size: 12px; font-stretch: normal; font-variant-east-asian: normal; font-variant-numeric: normal; line-height: normal; margin: 0px; white-space: normal;&quot;&gt;&lt;span class=&quot;s1&quot; style=&quot;color: #9fa01c; font-variant-ligatures: no-common-ligatures;&quot;&gt;&lt;span class=&quot;Apple-converted-space&quot;&gt;&amp;nbsp;&lt;/span&gt;24 &lt;/span&gt;&lt;span class=&quot;s2&quot; style=&quot;font-variant-ligatures: no-common-ligatures;&quot;&gt;&lt;span class=&quot;Apple-converted-space&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/span&gt;setenv.set-response-header = (&lt;/span&gt;&lt;/p&gt;&lt;p class=&quot;p4&quot; style=&quot;background-color: rgba(0, 0, 0, 0.85); color: #c814c9; font-family: monaco; font-size: 12px; font-stretch: normal; font-variant-east-asian: normal; font-variant-numeric: normal; line-height: normal; margin: 0px; white-space: normal;&quot;&gt;&lt;span class=&quot;s1&quot; style=&quot;color: #9fa01c; font-variant-ligatures: no-common-ligatures;&quot;&gt;&lt;span class=&quot;Apple-converted-space&quot;&gt;&amp;nbsp;&lt;/span&gt;25 &lt;/span&gt;&lt;span class=&quot;s4&quot; style=&quot;color: #f2f2f2; font-variant-ligatures: no-common-ligatures;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/span&gt;&lt;span class=&quot;s2&quot; style=&quot;font-variant-ligatures: no-common-ligatures;&quot;&gt;&quot;Strict-Transport-Security&quot;&lt;/span&gt;&lt;span class=&quot;s4&quot; style=&quot;color: #f2f2f2; font-variant-ligatures: no-common-ligatures;&quot;&gt; =&amp;gt; &lt;/span&gt;&lt;span class=&quot;s2&quot; style=&quot;font-variant-ligatures: no-common-ligatures;&quot;&gt;&quot;max-age=31536000; includeSubdomains&quot;&lt;/span&gt;&lt;span class=&quot;s4&quot; style=&quot;color: #f2f2f2; font-variant-ligatures: no-common-ligatures;&quot;&gt;,&lt;/span&gt;&lt;/p&gt;&lt;p class=&quot;p4&quot; style=&quot;background-color: rgba(0, 0, 0, 0.85); color: #c814c9; font-family: monaco; font-size: 12px; font-stretch: normal; font-variant-east-asian: normal; font-variant-numeric: normal; line-height: normal; margin: 0px; white-space: normal;&quot;&gt;&lt;span class=&quot;s1&quot; style=&quot;color: #9fa01c; font-variant-ligatures: no-common-ligatures;&quot;&gt;&lt;span class=&quot;Apple-converted-space&quot;&gt;&amp;nbsp;&lt;/span&gt;26 &lt;/span&gt;&lt;span class=&quot;s4&quot; style=&quot;color: #f2f2f2; font-variant-ligatures: no-common-ligatures;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/span&gt;&lt;span class=&quot;s2&quot; style=&quot;font-variant-ligatures: no-common-ligatures;&quot;&gt;&quot;X-Frame-Options&quot;&lt;/span&gt;&lt;span class=&quot;s4&quot; style=&quot;color: #f2f2f2; font-variant-ligatures: no-common-ligatures;&quot;&gt; =&amp;gt; &lt;/span&gt;&lt;span class=&quot;s2&quot; style=&quot;font-variant-ligatures: no-common-ligatures;&quot;&gt;&quot;DENY&quot;&lt;/span&gt;&lt;span class=&quot;s4&quot; style=&quot;color: #f2f2f2; font-variant-ligatures: no-common-ligatures;&quot;&gt;,&lt;/span&gt;&lt;/p&gt;&lt;p class=&quot;p4&quot; style=&quot;background-color: rgba(0, 0, 0, 0.85); color: #c814c9; font-family: monaco; font-size: 12px; font-stretch: normal; font-variant-east-asian: normal; font-variant-numeric: normal; line-height: normal; margin: 0px; white-space: normal;&quot;&gt;&lt;span class=&quot;s1&quot; style=&quot;color: #9fa01c; font-variant-ligatures: no-common-ligatures;&quot;&gt;&lt;span class=&quot;Apple-converted-space&quot;&gt;&amp;nbsp;&lt;/span&gt;27 &lt;/span&gt;&lt;span class=&quot;s4&quot; style=&quot;color: #f2f2f2; font-variant-ligatures: no-common-ligatures;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/span&gt;&lt;span class=&quot;s2&quot; style=&quot;font-variant-ligatures: no-common-ligatures;&quot;&gt;&quot;Content-Security-Policy&quot;&lt;/span&gt;&lt;span class=&quot;s4&quot; style=&quot;color: #f2f2f2; font-variant-ligatures: no-common-ligatures;&quot;&gt; =&amp;gt; &lt;/span&gt;&lt;span class=&quot;s2&quot; style=&quot;font-variant-ligatures: no-common-ligatures;&quot;&gt;&quot;frame-src none;&quot;&lt;/span&gt;&lt;/p&gt;&lt;p class=&quot;p3&quot; style=&quot;background-color: rgba(0, 0, 0, 0.85); color: #f2f2f2; font-family: monaco; font-size: 12px; font-stretch: normal; font-variant-east-asian: normal; font-variant-numeric: normal; line-height: normal; margin: 0px; white-space: normal;&quot;&gt;&lt;span class=&quot;s1&quot; style=&quot;color: #9fa01c; font-variant-ligatures: no-common-ligatures;&quot;&gt;&lt;span class=&quot;Apple-converted-space&quot;&gt;&amp;nbsp;&lt;/span&gt;28 &lt;/span&gt;&lt;span class=&quot;s2&quot; style=&quot;font-variant-ligatures: no-common-ligatures;&quot;&gt;&lt;span class=&quot;Apple-converted-space&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/span&gt;)&lt;/span&gt;&lt;/p&gt;&lt;p class=&quot;p3&quot; style=&quot;background-color: rgba(0, 0, 0, 0.85); color: #f2f2f2; font-family: monaco; font-size: 12px; font-stretch: normal; font-variant-east-asian: normal; font-variant-numeric: normal; line-height: normal; margin: 0px; white-space: normal;&quot;&gt;&lt;span class=&quot;s1&quot; style=&quot;color: #9fa01c; font-variant-ligatures: no-common-ligatures;&quot;&gt;&lt;span class=&quot;Apple-converted-space&quot;&gt;&amp;nbsp;&lt;/span&gt;29 &lt;/span&gt;&lt;span class=&quot;s2&quot; style=&quot;font-variant-ligatures: no-common-ligatures;&quot;&gt;}&lt;span class=&quot;Apple-converted-space&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class=&quot;p3&quot; style=&quot;background-color: rgba(0, 0, 0, 0.85); color: #f2f2f2; font-family: monaco; font-size: 12px; font-stretch: normal; font-variant-east-asian: normal; font-variant-numeric: normal; line-height: normal; margin: 0px; white-space: normal;&quot;&gt;&lt;span class=&quot;s1&quot; style=&quot;color: #9fa01c; font-variant-ligatures: no-common-ligatures;&quot;&gt;&lt;span class=&quot;Apple-converted-space&quot;&gt;&amp;nbsp;&lt;/span&gt;30&lt;span class=&quot;Apple-converted-space&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;s2&quot; style=&quot;font-variant-ligatures: no-common-ligatures;&quot;&gt; &lt;span class=&quot;Apple-converted-space&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class=&quot;p1&quot; style=&quot;background-color: rgba(0, 0, 0, 0.85); color: #2eaebb; font-family: monaco; font-size: 12px; font-stretch: normal; font-variant-east-asian: normal; font-variant-numeric: normal; line-height: normal; margin: 0px; white-space: normal;&quot;&gt;&lt;span class=&quot;s1&quot; style=&quot;color: #9fa01c; font-variant-ligatures: no-common-ligatures;&quot;&gt;&lt;span class=&quot;Apple-converted-space&quot;&gt;&amp;nbsp;&lt;/span&gt;31 &lt;/span&gt;&lt;span class=&quot;s2&quot; style=&quot;font-variant-ligatures: no-common-ligatures;&quot;&gt;# Redirect HTTP to HTTPS only on port 80&lt;/span&gt;&lt;/p&gt;&lt;p class=&quot;p1&quot; style=&quot;background-color: rgba(0, 0, 0, 0.85); color: #2eaebb; font-family: monaco; font-size: 12px; font-stretch: normal; font-variant-east-asian: normal; font-variant-numeric: normal; line-height: normal; margin: 0px; white-space: normal;&quot;&gt;&lt;span class=&quot;s1&quot; style=&quot;color: #9fa01c; font-variant-ligatures: no-common-ligatures;&quot;&gt;&lt;span class=&quot;Apple-converted-space&quot;&gt;&amp;nbsp;&lt;/span&gt;32 &lt;/span&gt;&lt;span class=&quot;s2&quot; style=&quot;font-variant-ligatures: no-common-ligatures;&quot;&gt;# dump1090-fa data is served on 8080 on HTTP&lt;/span&gt;&lt;/p&gt;&lt;p class=&quot;p4&quot; style=&quot;background-color: rgba(0, 0, 0, 0.85); color: #c814c9; font-family: monaco; font-size: 12px; font-stretch: normal; font-variant-east-asian: normal; font-variant-numeric: normal; line-height: normal; margin: 0px; white-space: normal;&quot;&gt;&lt;span class=&quot;s1&quot; style=&quot;color: #9fa01c; font-variant-ligatures: no-common-ligatures;&quot;&gt;&lt;span class=&quot;Apple-converted-space&quot;&gt;&amp;nbsp;&lt;/span&gt;33 &lt;/span&gt;&lt;span class=&quot;s4&quot; style=&quot;color: #f2f2f2; font-variant-ligatures: no-common-ligatures;&quot;&gt;$HTTP[&lt;/span&gt;&lt;span class=&quot;s2&quot; style=&quot;font-variant-ligatures: no-common-ligatures;&quot;&gt;&quot;scheme&quot;&lt;/span&gt;&lt;span class=&quot;s4&quot; style=&quot;color: #f2f2f2; font-variant-ligatures: no-common-ligatures;&quot;&gt;] == &lt;/span&gt;&lt;span class=&quot;s2&quot; style=&quot;font-variant-ligatures: no-common-ligatures;&quot;&gt;&quot;http&quot;&lt;/span&gt;&lt;span class=&quot;s4&quot; style=&quot;color: #f2f2f2; font-variant-ligatures: no-common-ligatures;&quot;&gt; {&lt;/span&gt;&lt;/p&gt;&lt;p class=&quot;p3&quot; style=&quot;background-color: rgba(0, 0, 0, 0.85); color: #f2f2f2; font-family: monaco; font-size: 12px; font-stretch: normal; font-variant-east-asian: normal; font-variant-numeric: normal; line-height: normal; margin: 0px; white-space: normal;&quot;&gt;&lt;span class=&quot;s1&quot; style=&quot;color: #9fa01c; font-variant-ligatures: no-common-ligatures;&quot;&gt;&lt;span class=&quot;Apple-converted-space&quot;&gt;&amp;nbsp;&lt;/span&gt;34 &lt;/span&gt;&lt;span class=&quot;s2&quot; style=&quot;font-variant-ligatures: no-common-ligatures;&quot;&gt;&lt;span class=&quot;Apple-converted-space&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/span&gt;$SERVER[&lt;/span&gt;&lt;span class=&quot;s3&quot; style=&quot;color: #c814c9; font-variant-ligatures: no-common-ligatures;&quot;&gt;&quot;socket&quot;&lt;/span&gt;&lt;span class=&quot;s2&quot; style=&quot;font-variant-ligatures: no-common-ligatures;&quot;&gt;] == &lt;/span&gt;&lt;span class=&quot;s3&quot; style=&quot;color: #c814c9; font-variant-ligatures: no-common-ligatures;&quot;&gt;&quot;:80&quot;&lt;/span&gt;&lt;span class=&quot;s2&quot; style=&quot;font-variant-ligatures: no-common-ligatures;&quot;&gt; {&lt;/span&gt;&lt;/p&gt;&lt;p class=&quot;p4&quot; style=&quot;background-color: rgba(0, 0, 0, 0.85); color: #c814c9; font-family: monaco; font-size: 12px; font-stretch: normal; font-variant-east-asian: normal; font-variant-numeric: normal; line-height: normal; margin: 0px; white-space: normal;&quot;&gt;&lt;span class=&quot;s1&quot; style=&quot;color: #9fa01c; font-variant-ligatures: no-common-ligatures;&quot;&gt;&lt;span class=&quot;Apple-converted-space&quot;&gt;&amp;nbsp;&lt;/span&gt;35 &lt;/span&gt;&lt;span class=&quot;s4&quot; style=&quot;color: #f2f2f2; font-variant-ligatures: no-common-ligatures;&quot;&gt;&lt;span class=&quot;Apple-converted-space&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/span&gt;url.redirect = (&lt;/span&gt;&lt;span class=&quot;s2&quot; style=&quot;font-variant-ligatures: no-common-ligatures;&quot;&gt;&quot;&quot;&lt;/span&gt;&lt;span class=&quot;s4&quot; style=&quot;color: #f2f2f2; font-variant-ligatures: no-common-ligatures;&quot;&gt; =&amp;gt; &lt;/span&gt;&lt;span class=&quot;s2&quot; style=&quot;font-variant-ligatures: no-common-ligatures;&quot;&gt;&quot;https://${url.authority}${url.path}${qsa}&quot;&lt;/span&gt;&lt;span class=&quot;s4&quot; style=&quot;color: #f2f2f2; font-variant-ligatures: no-common-ligatures;&quot;&gt;)&lt;/span&gt;&lt;/p&gt;&lt;p class=&quot;p3&quot; style=&quot;background-color: rgba(0, 0, 0, 0.85); color: #f2f2f2; font-family: monaco; font-size: 12px; font-stretch: normal; font-variant-east-asian: normal; font-variant-numeric: normal; line-height: normal; margin: 0px; white-space: normal;&quot;&gt;&lt;span class=&quot;s1&quot; style=&quot;color: #9fa01c; font-variant-ligatures: no-common-ligatures;&quot;&gt;&lt;span class=&quot;Apple-converted-space&quot;&gt;&amp;nbsp;&lt;/span&gt;36 &lt;/span&gt;&lt;span class=&quot;s2&quot; style=&quot;font-variant-ligatures: no-common-ligatures;&quot;&gt;&lt;span class=&quot;Apple-converted-space&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/span&gt;}&lt;/span&gt;&lt;/p&gt;&lt;p class=&quot;p2&quot; style=&quot;background-color: rgba(0, 0, 0, 0.85); color: #9fa01c; font-family: monaco; font-size: 12px; font-stretch: normal; font-variant-east-asian: normal; font-variant-numeric: normal; line-height: normal; margin: 0px; white-space: normal;&quot;&gt;&lt;span class=&quot;s2&quot; style=&quot;font-variant-ligatures: no-common-ligatures;&quot;&gt;&lt;span class=&quot;Apple-converted-space&quot;&gt;&amp;nbsp;&lt;/span&gt;37 &lt;/span&gt;&lt;span class=&quot;s4&quot; style=&quot;color: #f2f2f2; font-variant-ligatures: no-common-ligatures;&quot;&gt;}&lt;/span&gt;&lt;/p&gt;&lt;/pre&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://tech.element77.com/feeds/8655925535734678935/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/8026726330557031/8655925535734678935?isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8026726330557031/posts/default/8655925535734678935'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8026726330557031/posts/default/8655925535734678935'/><link rel='alternate' type='text/html' href='http://tech.element77.com/2020/07/getting-a-score-on-qualys-ssl-server.html' title='Getting an A+ Score on Qualys&#39; SSL Server Test'/><author><name>Arun K Viswanathan</name><uri>http://www.blogger.com/profile/06180523881306356438</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgEvtOZ39w2bNepVBG6tsbh_tgWbX_mbEMrPrmt41NwCGWlIIjtartSirxrHrClLWGpZRO3zXEH1dgvdXaEQsD8XCg3QURmHa86DHQBOwDJXTNAPaMlcArrA-uCOLeRqJg/s1600-r/weeme2.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8026726330557031.post-4961018278247685265</id><published>2018-03-10T06:54:00.000-08:00</published><updated>2018-03-11T06:48:50.513-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="ads-b"/><category scheme="http://www.blogger.com/atom/ns#" term="dump1090"/><category scheme="http://www.blogger.com/atom/ns#" term="flightradar24"/><category scheme="http://www.blogger.com/atom/ns#" term="flightware"/><category scheme="http://www.blogger.com/atom/ns#" term="plane finder"/><category scheme="http://www.blogger.com/atom/ns#" term="radarbox24"/><category scheme="http://www.blogger.com/atom/ns#" term="rtl"/><category scheme="http://www.blogger.com/atom/ns#" term="rtl-sdr"/><category scheme="http://www.blogger.com/atom/ns#" term="sdr"/><title type='text'>RTL-SDR, Raspberry Pi and Plane Spotting via ADS-B </title><content type='html'>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;
Most modern aircraft carry an ADS-B (&lt;a href=&quot;https://en.wikipedia.org/wiki/Automatic_dependent_surveillance_%E2%80%93_broadcast&quot; target=&quot;_blank&quot;&gt;Automatic&amp;nbsp;Dependent Surveillance - Broadcast&lt;/a&gt;) transmitter that puts out information about the aircraft&#39;s identification, geospatial location, speed, and heading. This information is received by ground stations and air traffic control and used as a replacement for radar-based&amp;nbsp;tracking. ADS-B relies&amp;nbsp;on line-of-sight communication via signals transmitted at 1090 Mhz and has a range of up to 250 nautical miles. Sites such as &lt;a href=&quot;https://www.flightaware.com/&quot; target=&quot;_blank&quot;&gt;FlightAware&lt;/a&gt;, &lt;a href=&quot;https://www.flightradar24.com/&quot; target=&quot;_blank&quot;&gt;FlightRadar24&lt;/a&gt;, &lt;a href=&quot;https://planefinder.net/&quot; target=&quot;_blank&quot;&gt;Plane Finder&lt;/a&gt;, &lt;a href=&quot;https://www.radarbox24.com/&quot; target=&quot;_blank&quot;&gt;RadarBox24&lt;/a&gt;, etc. collect ADS-B information using a vast array of ADS-B receivers, some of which are run by hobbyists, and present this information on maps with near-real-time updates. With the advent of cheap software-defined-radio (SDR) dongles, over the past few years, it has become extremely cheap and easy for amateurs&amp;nbsp;to receive ADS-B signals, upload data to these sites and, in exchange, get access to premium features from these sites. This guide will walk you through a similar setup.&lt;br /&gt;
&lt;br /&gt;
&lt;h2 style=&quot;text-align: left;&quot;&gt;
Choosing the SDR dongle&lt;/h2&gt;
&lt;div&gt;
One of the cheapest RTLSDR RTL2832U DVB-T Tuner dongles is the one&lt;a href=&quot;https://www.rtl-sdr.com/buy-rtl-sdr-dvb-t-dongles/&quot; target=&quot;_blank&quot;&gt; sold by RTL-SDR.com for $19.95&lt;/a&gt;. If you are starting off, I&#39;d recommend getting the&amp;nbsp;bundle with the dipole antenna kit for $24.95. That way you have everything you need to start receiving signals.&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/AVvXsEgQlnw71WS1cVyceQxWsO1OKopYDilDuQQ1oRHol351kp49Mt67rhy1YFpwHyW4863Qo6vz_Ln8wow4T_OjK-bDkKnMVeeBYqpGLMZfozqVPAsiEzMuLkSMt3iLgH-JmRt444bYZokVKA/s1600/SDRBlogImage_1_Side.jpg&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;500&quot; data-original-width=&quot;500&quot; height=&quot;400&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgQlnw71WS1cVyceQxWsO1OKopYDilDuQQ1oRHol351kp49Mt67rhy1YFpwHyW4863Qo6vz_Ln8wow4T_OjK-bDkKnMVeeBYqpGLMZfozqVPAsiEzMuLkSMt3iLgH-JmRt444bYZokVKA/s400/SDRBlogImage_1_Side.jpg&quot; width=&quot;400&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
Once you receive the dongle, you can plug it into a computer and use tools like &lt;a href=&quot;https://cubicsdr.com/&quot; target=&quot;_blank&quot;&gt;CubicSDR&lt;/a&gt; to explore the frequency spectrum. If you, for example, look between the &lt;a href=&quot;https://www.sigidwiki.com/wiki/Aircraft_Communications_Addressing_and_Reporting_System_(ACARS)&quot; target=&quot;_blank&quot;&gt;129 MHz and 137 Mhz range on AM&lt;/a&gt;, you are likely to find a lot of air traffic control and cockpit chatter from flights in the vicinity. This is essentially what you can listen to on sites like &lt;a href=&quot;https://www.liveatc.net/search/?icao=ksfo&quot; target=&quot;_blank&quot;&gt;LiveATC.net&lt;/a&gt;. The things you can do with SDR are vast and are topics for future blog posts.&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://cubicsdr.com/wp-content/uploads/2015/02/2015-08-31-09.07.04-pm.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;508&quot; data-original-width=&quot;800&quot; height=&quot;404&quot; src=&quot;https://cubicsdr.com/wp-content/uploads/2015/02/2015-08-31-09.07.04-pm.png&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;h2&gt;
Dedicating a Raspberry Pi for ADS-B&lt;/h2&gt;
&lt;div&gt;
Once you have the SDR, you are ready to explore ADS-B signals on your computer. However, if you want to receive ADS-B signals round-the-clock and upload to sites like FlightAware, it is better to dedicate a Raspberry Pi for this purpose. I&#39;d recommend getting &lt;a href=&quot;https://www.raspberrypi.org/products/&quot; target=&quot;_blank&quot;&gt;one of the Model B&lt;/a&gt;s. If you pick a model without built-in WiFi, be sure to get a &lt;a href=&quot;http://amzn.to/2Fnblro&quot; target=&quot;_blank&quot;&gt;WiFi dongle&lt;/a&gt;. You&#39;ll also need a micro USB power supply (one from an old cell phone charger will work fine) and an &lt;a href=&quot;http://amzn.to/2HlAmQh&quot; target=&quot;_blank&quot;&gt;SD card&lt;/a&gt; (4GB will be fine, 8GB or more will be better).&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://www.raspberrypi.org/app/uploads/2017/05/Raspberry-Pi-3-462x322.jpg&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;322&quot; data-original-width=&quot;462&quot; src=&quot;https://www.raspberrypi.org/app/uploads/2017/05/Raspberry-Pi-3-462x322.jpg&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div&gt;
For the rest of the guide, I&#39;ll assume you are using the Raspberry Pi but equivalent instructions will work fine on a Mac or Linux box.&amp;nbsp;&lt;/div&gt;
&lt;h2 style=&quot;text-align: left;&quot;&gt;
PiAware and FlightAware&lt;/h2&gt;
&lt;div&gt;
The people at FlightAware have gone one step ahead and made a Raspberry Pi distribution&amp;nbsp;that works with SDR dongles to push data to FlightAware. This is the easiest way to get started on the Raspberry Pi. See &lt;a href=&quot;https://flightaware.com/adsb/piaware/build&quot; target=&quot;_blank&quot;&gt;detailed instructions&lt;/a&gt;&amp;nbsp;on FlightAware. Along the way, you will need to collect the following pieces of information, which will be necessary to feed other sites:&lt;/div&gt;
&lt;div&gt;
&lt;ul style=&quot;text-align: left;&quot;&gt;
&lt;li&gt;Latitude and longitude of your receiver. The easiest way to get this is &lt;a href=&quot;https://www.wikihow.com/Get-Latitude-and-Longitude-from-Google-Maps&quot; target=&quot;_blank&quot;&gt;via Google Maps&lt;/a&gt;.&amp;nbsp;&lt;/li&gt;
&lt;li&gt;Altitude of your receiver. Use an app of your cell phone (e.g.: &lt;a href=&quot;https://play.google.com/store/apps/details?id=com.pygdroid.altitude&quot; target=&quot;_blank&quot;&gt;Android&lt;/a&gt;).&lt;/li&gt;
&lt;li&gt;The local IP address of your Raspberry Pi.&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;div&gt;
Behind the scenes, PiAware includes a program called &lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace;&quot;&gt;&lt;a href=&quot;https://github.com/flightaware/dump1090&quot; target=&quot;_blank&quot;&gt;dump1090-fa&lt;/a&gt;&lt;/span&gt;&amp;nbsp;(the FlightAware version of&amp;nbsp;&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace;&quot;&gt;dump1090&lt;/span&gt;) that dumps the ADS-B data from the receiver. You can see the JSON version of this data at&amp;nbsp;&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace;&quot;&gt;/run/dump1090-fa&lt;/span&gt;. The program also puts out the data via the Beast protocol on port 30005 and a CSV version on port 30003. You can view these forms of the data via &lt;span class=&quot;&quot; style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace;&quot;&gt;netcat&lt;/span&gt;.&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace;&quot;&gt;nc &amp;lt;ip of rpi&amp;gt; 30005&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace;&quot;&gt;nc &amp;lt;ip of rpi&amp;gt; 30003&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
The data is uploaded to FlightAware by another program called &lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace;&quot;&gt;faup1090&lt;/span&gt;. If you have multilateration (MLAT) enabled, then &lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace;&quot;&gt;fa-mlat-client&lt;/span&gt; also runs to participate in MLAT.&lt;/div&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
FlightAware also has a local UI which can show you what planes your receiver is &quot;seeing&quot;. Just open up &lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace;&quot;&gt;http://&amp;lt;ip of rpi&amp;gt;/dump1090-fa/&lt;/span&gt; in your browser.&lt;/div&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
Once FlightAware is receiving your data, your account will automatically get upgraded to &lt;a href=&quot;https://flightaware.com/commercial/premium/&quot; target=&quot;_blank&quot;&gt;an Enterprise Account&lt;/a&gt; valued at $89.95/month!&lt;/div&gt;
&lt;h2 style=&quot;text-align: left;&quot;&gt;
FlightRadar24&lt;/h2&gt;
&lt;div&gt;
Once you have &lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace;&quot;&gt;dump1090&lt;/span&gt; running and producing data, it is very easy to upload the same data to FlightRadar24. Log in to your Pi and run this command:&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace;&quot;&gt;sudo bash -c &quot;$(wget -O - http://repo.feed.flightradar24.com/install_fr24_rpi.sh)&quot;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
Select&amp;nbsp;AVR (TCP) as your receiver and turn off MLAT. After this, you can visit&amp;nbsp;&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace;&quot;&gt;http:&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace;&quot;&gt;//&amp;lt;ip of rpi&amp;gt;:8754&lt;/span&gt;&amp;nbsp;to see the local view of data being sent to FlightRadar24. Once FlightRadar24 is receiving your data, your account will get upgraded to a &lt;a href=&quot;https://www.flightradar24.com/premium&quot; target=&quot;_blank&quot;&gt;Business account&lt;/a&gt;&amp;nbsp;worth $499.99/year.&lt;/div&gt;
&lt;h2 style=&quot;text-align: left;&quot;&gt;
Plane Finder&lt;/h2&gt;
&lt;div&gt;
To feed Plane Finder, follow the instructions from &lt;a href=&quot;https://planefinder.net/sharing/client&quot; target=&quot;_blank&quot;&gt;their site&lt;/a&gt;. It&#39;s as simple as running these two commands on your Pi:&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace;&quot;&gt;wget&amp;nbsp;http://client.planefinder.net/pfclient_3.7.40_armhf.deb&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace;&quot;&gt;sudo dpkg -i pfclient_3.7.40_armhf.deb&lt;/span&gt;&lt;/div&gt;
&lt;h2 style=&quot;text-align: left;&quot;&gt;
RadarBox24&lt;/h2&gt;
&lt;div&gt;
RadarBox24 is another aggregator of ADS-B data. Here&#39;s the &lt;a href=&quot;https://www.radarbox24.com/raspberry-pi/guide&quot; target=&quot;_blank&quot;&gt;install guide&lt;/a&gt;. RadarBox24 will upgrade you to a &lt;a href=&quot;https://www.radarbox24.com/subscribe&quot; target=&quot;_blank&quot;&gt;Business plan worth $39.95/month&lt;/a&gt; once they start receiving your data.&lt;/div&gt;
&lt;h2 style=&quot;text-align: left;&quot;&gt;
Miscellaneous&lt;/h2&gt;
&lt;div&gt;
The generic SDR from RTL-SDR is a multi-purpose SDR capable of receiving a wide range of frequencies. If you intend to dedicate the SDR to ADS-B, it is better to add a band-pass filter for the 1090 MHz signals. FlightAware also sells an SDR with the filter included - &lt;a href=&quot;https://flightaware.com/adsb/prostick/&quot; target=&quot;_blank&quot;&gt;FlightAware Pro Stick Plu&lt;/a&gt;s. You can also get an &lt;a href=&quot;https://www.ebay.com/itm/201385878796?rmvSB=true&quot; target=&quot;_blank&quot;&gt;antenna tuned to 1090 Mhz&lt;/a&gt;. If you are really enterprising, you can also &lt;a href=&quot;https://www.balarad.net/&quot; target=&quot;_blank&quot;&gt;build your own 1090 MHz antenna&lt;/a&gt;.&amp;nbsp; Here&#39;s a video of how to go about doing this.&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;iframe allow=&quot;autoplay; encrypted-media&quot; allowfullscreen=&quot;&quot; frameborder=&quot;0&quot; height=&quot;315&quot; src=&quot;https://www.youtube.com/embed/TkUYdCPFXXs&quot; width=&quot;560&quot;&gt;&lt;/iframe&gt;&lt;br /&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;/div&gt;
</content><link rel='replies' type='application/atom+xml' href='http://tech.element77.com/feeds/4961018278247685265/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/8026726330557031/4961018278247685265?isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8026726330557031/posts/default/4961018278247685265'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8026726330557031/posts/default/4961018278247685265'/><link rel='alternate' type='text/html' href='http://tech.element77.com/2018/03/rtl-sdr-raspberry-pi-and-plane-spotting.html' title='RTL-SDR, Raspberry Pi and Plane Spotting via ADS-B '/><author><name>Arun K Viswanathan</name><uri>http://www.blogger.com/profile/06180523881306356438</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgEvtOZ39w2bNepVBG6tsbh_tgWbX_mbEMrPrmt41NwCGWlIIjtartSirxrHrClLWGpZRO3zXEH1dgvdXaEQsD8XCg3QURmHa86DHQBOwDJXTNAPaMlcArrA-uCOLeRqJg/s1600-r/weeme2.png'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgQlnw71WS1cVyceQxWsO1OKopYDilDuQQ1oRHol351kp49Mt67rhy1YFpwHyW4863Qo6vz_Ln8wow4T_OjK-bDkKnMVeeBYqpGLMZfozqVPAsiEzMuLkSMt3iLgH-JmRt444bYZokVKA/s72-c/SDRBlogImage_1_Side.jpg" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8026726330557031.post-8474195922294211674</id><published>2016-05-14T21:42:00.001-07:00</published><updated>2016-10-21T20:40:10.297-07:00</updated><title type='text'>How to look at modern art in America</title><content type='html'>&lt;p&gt;Creator: Ad Reinhardt (1913-1967)&lt;/p&gt;&lt;p&gt;Description: The 1946 version of the cartoon was originally printed in the newspaper P.M. and reprinted in ARTnews in 1961 with the new version.&lt;/p&gt;&lt;p&gt;Source: &lt;a href=&quot;http://www.aaa.si.edu/collections/items/detail/how-to-look-modern-art-america-9688&quot;&gt;Archives of American Art&lt;/a&gt;&lt;/p&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/AVvXsEh2tcSI6ztqO7JabJnsLDNER4m8MFGameCYEvRXJxwpTDIl4uuRk9hlW7JX2ymOxXVGOcoka87PCPpZQsi3n4IqYnpuKLYSPKIuf-bdnPUZr7JfOMrF-5iVNfyQTlTZ6Uo37OHyIBo9MQ/s1600/AAA_reinad_25700.jpg&quot;&gt;&lt;img src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh2tcSI6ztqO7JabJnsLDNER4m8MFGameCYEvRXJxwpTDIl4uuRk9hlW7JX2ymOxXVGOcoka87PCPpZQsi3n4IqYnpuKLYSPKIuf-bdnPUZr7JfOMrF-5iVNfyQTlTZ6Uo37OHyIBo9MQ/s400/AAA_reinad_25700.jpg&quot; width=&quot;303&quot; height=&quot;400&quot;&gt;&lt;/a&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://tech.element77.com/feeds/8474195922294211674/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/8026726330557031/8474195922294211674?isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8026726330557031/posts/default/8474195922294211674'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8026726330557031/posts/default/8474195922294211674'/><link rel='alternate' type='text/html' href='http://tech.element77.com/2016/05/how-to-look-at-modern-art-in-america.html' title='How to look at modern art in America'/><author><name>Arun K Viswanathan</name><uri>http://www.blogger.com/profile/06180523881306356438</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgEvtOZ39w2bNepVBG6tsbh_tgWbX_mbEMrPrmt41NwCGWlIIjtartSirxrHrClLWGpZRO3zXEH1dgvdXaEQsD8XCg3QURmHa86DHQBOwDJXTNAPaMlcArrA-uCOLeRqJg/s1600-r/weeme2.png'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh2tcSI6ztqO7JabJnsLDNER4m8MFGameCYEvRXJxwpTDIl4uuRk9hlW7JX2ymOxXVGOcoka87PCPpZQsi3n4IqYnpuKLYSPKIuf-bdnPUZr7JfOMrF-5iVNfyQTlTZ6Uo37OHyIBo9MQ/s72-c/AAA_reinad_25700.jpg" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8026726330557031.post-4264993047993056830</id><published>2016-02-17T07:35:00.001-08:00</published><updated>2016-02-17T07:35:02.558-08:00</updated><title type='text'>Google Online Security Blog: CVE-2015-7547: glibc getaddrinfo stack-based buffer overflow</title><content type='html'>Analyisis of the glibc issue CVE-2015-7547:&amp;nbsp;&lt;a href=&quot;https://googleonlinesecurity.blogspot.ca/2016/02/cve-2015-7547-glibc-getaddrinfo-stack.html&quot;&gt;Google Online Security Blog: CVE-2015-7547: glibc getaddrinfo stack-based buffer overflow&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
</content><link rel='replies' type='application/atom+xml' href='http://tech.element77.com/feeds/4264993047993056830/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/8026726330557031/4264993047993056830?isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8026726330557031/posts/default/4264993047993056830'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8026726330557031/posts/default/4264993047993056830'/><link rel='alternate' type='text/html' href='http://tech.element77.com/2016/02/google-online-security-blog-cve-2015.html' title='Google Online Security Blog: CVE-2015-7547: glibc getaddrinfo stack-based buffer overflow'/><author><name>Anonymous</name><uri>http://www.blogger.com/profile/15007585885438453864</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-8026726330557031.post-7690293521676665825</id><published>2015-07-08T09:52:00.001-07:00</published><updated>2015-07-08T09:52:58.992-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="amazon"/><category scheme="http://www.blogger.com/atom/ns#" term="amazon workspaces"/><category scheme="http://www.blogger.com/atom/ns#" term="el capitan"/><category scheme="http://www.blogger.com/atom/ns#" term="os x"/><category scheme="http://www.blogger.com/atom/ns#" term="osx"/><title type='text'>Amazon Workspaces and El Capitan - Follow Up</title><content type='html'>&lt;p&gt;With OSX El Capitan 10.11 (build 15A204h), the Amazon Workspaces client is still broken. Now the &quot;Internet Connection&quot; works but the next check for the &quot;Registration service&quot; fails.&lt;/p&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/AVvXsEjCIOImO4tbuyXS4FcvYN-nhvmy7Zg-6uP9CCCBqY1s4q-Mq2b5jIBvkT-4h832Suwsn665PqiJ87t28uB0MCMl_IeKrFcIGCFTWkYft376cUx6z4Hy168dmS66jq6dgryIQpaWjOMvrA4/s1600/Screen+Shot+2015-07-08+at+9.51.30+AM.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/AVvXsEjCIOImO4tbuyXS4FcvYN-nhvmy7Zg-6uP9CCCBqY1s4q-Mq2b5jIBvkT-4h832Suwsn665PqiJ87t28uB0MCMl_IeKrFcIGCFTWkYft376cUx6z4Hy168dmS66jq6dgryIQpaWjOMvrA4/s320/Screen+Shot+2015-07-08+at+9.51.30+AM.png&quot; /&gt;&lt;/a&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://tech.element77.com/feeds/7690293521676665825/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/8026726330557031/7690293521676665825?isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8026726330557031/posts/default/7690293521676665825'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8026726330557031/posts/default/7690293521676665825'/><link rel='alternate' type='text/html' href='http://tech.element77.com/2015/07/amazon-workspaces-and-el-capitan-follow.html' title='Amazon Workspaces and El Capitan - Follow Up'/><author><name>Anonymous</name><uri>http://www.blogger.com/profile/15007585885438453864</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/AVvXsEjCIOImO4tbuyXS4FcvYN-nhvmy7Zg-6uP9CCCBqY1s4q-Mq2b5jIBvkT-4h832Suwsn665PqiJ87t28uB0MCMl_IeKrFcIGCFTWkYft376cUx6z4Hy168dmS66jq6dgryIQpaWjOMvrA4/s72-c/Screen+Shot+2015-07-08+at+9.51.30+AM.png" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8026726330557031.post-8930647166817254739</id><published>2015-06-25T08:24:00.000-07:00</published><updated>2015-06-25T08:24:06.879-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="amazon"/><category scheme="http://www.blogger.com/atom/ns#" term="amazon workspaces"/><category scheme="http://www.blogger.com/atom/ns#" term="aws"/><category scheme="http://www.blogger.com/atom/ns#" term="el capitan"/><category scheme="http://www.blogger.com/atom/ns#" term="osx"/><title type='text'>Amazon Workspaces and El Capitan</title><content type='html'>&lt;p&gt;With OSX El Capitan (version 10.11 build 15A204h), I am unable to connect to my &lt;a href=&quot;https://aws.amazon.com/workspaces/&quot;&gt;Amazon Workspace&lt;/a&gt;. The Workspace client (version 1.1.80.347) gives me a weird error about a local certificate (and completely messes up the UI) and at other times is not able to verify the Internet connection.&lt;/p&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/AVvXsEgNYsOw07jUoG1YgS3Fi2rhNcGO_BT0Uyb5RwE4HS93WjtxxBucyiCmgIQu7hn7VLbe1IxjPNWQwHR5oFzX1-ldfnXfJXZ7M5A5LEMJld7RUOh1EPWqHfvk7eum-8FXbzbLDUd1HFvqXGs/s1600/Screen+Shot+2015-06-25+at+8.13.32+AM.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/AVvXsEgNYsOw07jUoG1YgS3Fi2rhNcGO_BT0Uyb5RwE4HS93WjtxxBucyiCmgIQu7hn7VLbe1IxjPNWQwHR5oFzX1-ldfnXfJXZ7M5A5LEMJld7RUOh1EPWqHfvk7eum-8FXbzbLDUd1HFvqXGs/s320/Screen+Shot+2015-06-25+at+8.13.32+AM.png&quot; /&gt;&lt;/a&gt;&lt;/div&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/AVvXsEjuONKBA92RE1rE8tio7moRDddwTtuKLijpQwqXyCXsN7vTOj5PKRtmbmVoatpstQMjba005qnQBuJW_gQQXhEACDd2k_Q4QP1ZkuSqODPu_Np1uOElZ_fks6sz30U7phNinfP1OhpXoCw/s1600/Screen+Shot+2015-06-25+at+8.14.35+AM.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/AVvXsEjuONKBA92RE1rE8tio7moRDddwTtuKLijpQwqXyCXsN7vTOj5PKRtmbmVoatpstQMjba005qnQBuJW_gQQXhEACDd2k_Q4QP1ZkuSqODPu_Np1uOElZ_fks6sz30U7phNinfP1OhpXoCw/s320/Screen+Shot+2015-06-25+at+8.14.35+AM.png&quot; /&gt;&lt;/a&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiZCHMwfO_l-Bk06PADwEZX_R1M7gDXZDmvZLqrteS-1p4Jztzh4CeCfN3770DhVEJZQcVppq62e-Ij3XfxdhNRcF1RB7fQLuAR-24eX2DzidXVsgSNxO9ap6mhx6BjyNQN9bUrneo1IvI/s1600/Screen+Shot+2015-06-25+at+8.16.46+AM.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/AVvXsEiZCHMwfO_l-Bk06PADwEZX_R1M7gDXZDmvZLqrteS-1p4Jztzh4CeCfN3770DhVEJZQcVppq62e-Ij3XfxdhNRcF1RB7fQLuAR-24eX2DzidXVsgSNxO9ap6mhx6BjyNQN9bUrneo1IvI/s320/Screen+Shot+2015-06-25+at+8.16.46+AM.png&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;p&gt;Looking at tcpdump, it seems like the client normally tries to connect to &lt;a href=&quot;https://connectivity.amazonworkspaces.com&quot;&gt;https://connectivity.amazonworkspaces.com&lt;/a&gt; which resolves to &lt;b&gt;54.230.147.12&lt;/b&gt;. However for some reason the client is now connecting to &lt;b&gt;server-54-230-147-12.sfo4.r.cloudfront.net&lt;/b&gt; which is what the IP resolves to in reverse. Visiting &lt;a href=&quot;https://server-54-230-147-12.sfo4.r.cloudfront.net&quot;&gt;https://server-54-230-147-12.sfo4.r.cloudfront.net&lt;/a&gt; gives a certificate with the name connectivity.amazonworkspaces.com and therefore makes the connection untrusted.&lt;/p&gt;
&lt;p&gt;No idea how to workaround this. Help?&lt;/p&gt;</content><link rel='replies' type='application/atom+xml' href='http://tech.element77.com/feeds/8930647166817254739/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/8026726330557031/8930647166817254739?isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8026726330557031/posts/default/8930647166817254739'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8026726330557031/posts/default/8930647166817254739'/><link rel='alternate' type='text/html' href='http://tech.element77.com/2015/06/amazon-workspaces-and-el-capitan.html' title='Amazon Workspaces and El Capitan'/><author><name>Anonymous</name><uri>http://www.blogger.com/profile/15007585885438453864</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/AVvXsEgNYsOw07jUoG1YgS3Fi2rhNcGO_BT0Uyb5RwE4HS93WjtxxBucyiCmgIQu7hn7VLbe1IxjPNWQwHR5oFzX1-ldfnXfJXZ7M5A5LEMJld7RUOh1EPWqHfvk7eum-8FXbzbLDUd1HFvqXGs/s72-c/Screen+Shot+2015-06-25+at+8.13.32+AM.png" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8026726330557031.post-7771924642626253219</id><published>2014-12-12T06:35:00.001-08:00</published><updated>2014-12-12T06:35:33.280-08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="mysql"/><category scheme="http://www.blogger.com/atom/ns#" term="os x"/><category scheme="http://www.blogger.com/atom/ns#" term="R"/><category scheme="http://www.blogger.com/atom/ns#" term="RMySQL"/><category scheme="http://www.blogger.com/atom/ns#" term="yosemite"/><title type='text'>Installing RMySQL on OS X &quot;Yosemite&quot;</title><content type='html'>&lt;p&gt;Here are the instructions to install RMySQL on OS X &quot;Yosemite&quot;:
&lt;ol&gt;
&lt;li&gt;Download and install the &lt;a href=&quot;http://dev.mysql.com/downloads/mysql/&quot;&gt;MySQL community server for OS X&lt;/a&gt;. You will need a free Oracle account to complete the download. At the time of this blog post, I installed &lt;b&gt;mysql-5.6.22-osx10.9-x86_64&lt;/b&gt; via the DMG archive. By default MySQL will be installed in &lt;b&gt;/usr/local/mysql-5.6.22-osx10.8-x86_64&lt;/b&gt; (if you use a different version, look for an equivalently named directory under /usr/local).&lt;/li&gt;
&lt;li&gt;Download &lt;a href=&quot;http://cran.r-project.org/web/packages/RMySQL/index.html&quot;&gt;sources for the RMySQL package from CRAN&lt;/a&gt;. At the time of this blog post, I downloaded &lt;b&gt;RMySQL_0.9-3.tar.gz&lt;/b&gt;.&lt;/li&gt;
&lt;li&gt;Open a Terminal window and run:&lt;br /&gt;
&lt;b&gt;export DYLD_LIBRARY_PATH=/usr/local/mysql-5.6.22-osx10.8-x86_64/lib:$DYLD_LIBRARY_PATH&lt;/b&gt;&lt;br /&gt;
You may want to consider adding this line to .bashrc as well.&lt;/li&gt;
&lt;li&gt;In the same terminal window compile and install RMySQL using this command (in a single line):&lt;br /&gt;
&lt;b&gt;R CMD INSTALL --configure-args=&quot;--with-mysql-dir=/usr/local/mysql-5.6.22-osx10.8-x86_64 --with-mysql-inc=/usr/local/mysql-5.6.22-osx10.8-x86_64/include --with-mysql-lib=/usr/local/mysql-5.6.22-osx10.8-x86_64/lib&quot; RMySQL_0.9-3.tar.gz&lt;/b&gt;&lt;br /&gt;
If you installed a different version of MySQL or downloaded a different version of RMySQL, fix the command to reflect the correct directory names.&lt;/li&gt;
&lt;/ol&gt;
That should be it. RMySQL will build and, if everything went well, finish up with these messages:&lt;br /&gt;
** testing if installed package can be loaded&lt;br /&gt;
* DONE (RMySQL)&lt;br /&gt;
From the terminal window launch R as usual.&lt;/p&gt;
&lt;p&gt;If you are using RStudio, and simply launch it from Spotlight or your Applications folder, and try to use RMySQL, you may see this error:&lt;br /&gt;
&amp;gt; library(RMySQL)&lt;br /&gt;
Loading required package: DBI&lt;br /&gt;
Error : .onLoad failed in loadNamespace() for &#39;RMySQL&#39;, details:&lt;br /&gt;
&amp;nbsp;&amp;nbsp;call: dyn.load(file, DLLpath = DLLpath, ...)&lt;br /&gt;
&amp;nbsp;&amp;nbsp;error: unable to load shared object &#39;/Library/Frameworks/R.framework/Versions/3.1/Resources/library/RMySQL/libs/RMySQL.so&#39;:&lt;br /&gt;
&amp;nbsp;&amp;nbsp;dlopen(/Library/Frameworks/R.framework/Versions/3.1/Resources/library/RMySQL/libs/RMySQL.so, 6): Library not loaded: libmysqlclient.18.dylib&lt;br /&gt;
&amp;nbsp;&amp;nbsp;Referenced from: /Library/Frameworks/R.framework/Versions/3.1/Resources/library/RMySQL/libs/RMySQL.so&lt;br /&gt;
&amp;nbsp;&amp;nbsp;Reason: image not found&lt;br /&gt;
Error: package or namespace load failed for ‘RMySQL’&lt;br /&gt;
This is because the DYLD_LIBRARY_PATH environment variable is only set in Terminal windows. You have two options to use RStudio:
&lt;ol&gt;
&lt;li&gt;Open a Terminal window and run&lt;br /&gt;
&lt;b&gt;export DYLD_LIBRARY_PATH=/usr/local/mysql-5.6.22-osx10.8-x86_64/lib:$DYLD_LIBRARY_PATH&lt;/b&gt;&lt;br /&gt;
&lt;b&gt;/Applications/RStudio.app/Contents/MacOS/RStudio &amp;amp;&lt;/b&gt;&lt;/li&gt;
&lt;li&gt;As root, add the &quot;export ...&quot; line to &lt;b&gt;/etc/launchd.conf&lt;/b&gt; and restart your computer. This should make the DYLD_LIBRARY_PATH setting global and allow you to launch RStudio from Spotlight or your Applications folder.&lt;/li&gt;
&lt;/ol&gt;
&lt;/p&gt;
 </content><link rel='replies' type='application/atom+xml' href='http://tech.element77.com/feeds/7771924642626253219/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/8026726330557031/7771924642626253219?isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8026726330557031/posts/default/7771924642626253219'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8026726330557031/posts/default/7771924642626253219'/><link rel='alternate' type='text/html' href='http://tech.element77.com/2014/12/installing-rmysql-on-os-x-yosemite.html' title='Installing RMySQL on OS X &quot;Yosemite&quot;'/><author><name>Anonymous</name><uri>http://www.blogger.com/profile/15007585885438453864</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-8026726330557031.post-5611556463787851746</id><published>2014-08-29T06:44:00.000-07:00</published><updated>2014-08-29T06:44:42.879-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="java"/><category scheme="http://www.blogger.com/atom/ns#" term="jdk"/><category scheme="http://www.blogger.com/atom/ns#" term="os x"/><category scheme="http://www.blogger.com/atom/ns#" term="yosemite"/><title type='text'>Installing JDK 7 on Mac OS X Yosemite 10.10 developer previews</title><content type='html'>&lt;p&gt;Oracle&#39;s JDK 7 installer for the Mac somehow thinks that OS X Yosemite&#39;s 10.10 version number is an unsupported version. There&#39;s a simple trick to fool the installer by giving it a version number that it expects. Open a Terminal window and edit the file &lt;code&gt;/System/Library/CoreServices/SystemVersion.plist&lt;/code&gt; as root/Administrator. If you are familiar with &lt;code&gt;vi&lt;/code&gt;, simply run &lt;code&gt;sudo vi /System/Library/CoreServices/SystemVersion.plist&lt;/code&gt;. The file should look something like this:&lt;/p&gt;
&lt;code&gt;
&amp;lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&amp;gt;&lt;br /&gt;
&amp;lt;!DOCTYPE plist PUBLIC &quot;-//Apple//DTD PLIST 1.0//EN&quot; &quot;http://www.apple.com/DTDs/PropertyList-1.0.dtd&quot;&amp;gt;&lt;br /&gt;
&amp;lt;plist version=&quot;1.0&quot;&amp;gt;&lt;br /&gt;
&amp;lt;dict&amp;gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;        &amp;lt;key&amp;gt;ProductBuildVersion&amp;lt;/key&amp;gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;        &amp;lt;string&amp;gt;14A329f&amp;lt;/string&amp;gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;        &amp;lt;key&amp;gt;ProductCopyright&amp;lt;/key&amp;gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;        &amp;lt;string&amp;gt;1983-2014 Apple Inc.&amp;lt;/string&amp;gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;        &amp;lt;key&amp;gt;ProductName&amp;lt;/key&amp;gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;        &amp;lt;string&amp;gt;Mac OS X&amp;lt;/string&amp;gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;        &amp;lt;key&amp;gt;ProductUserVisibleVersion&amp;lt;/key&amp;gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;        &amp;lt;string&amp;gt;10.10&amp;lt;/string&amp;gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;        &amp;lt;key&amp;gt;ProductVersion&amp;lt;/key&amp;gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;        &amp;lt;string&amp;gt;10.10&amp;lt;/string&amp;gt;&lt;br /&gt;
&amp;lt;/dict&amp;gt;&lt;br /&gt;
&amp;lt;/plist&amp;gt;&lt;br /&gt;
&lt;/code&gt;
&lt;p&gt;Edit the &lt;code&gt;ProductVersion&lt;/code&gt; to read &lt;code&gt;10.9&lt;/code&gt; and save the file. Now &lt;a href=&quot;http://www.oracle.com/technetwork/java/javase/downloads/jdk7-downloads-1880260.html&quot;&gt;download the JDK 7 installer&lt;/a&gt; and run it. It should no longer complain about the OS X version. Be sure to restore the &lt;code&gt;ProductVersion&lt;/code&gt; to &lt;code&gt;10.10&lt;/code&gt; once the installer completes.&lt;/p&gt;
 </content><link rel='replies' type='application/atom+xml' href='http://tech.element77.com/feeds/5611556463787851746/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/8026726330557031/5611556463787851746?isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8026726330557031/posts/default/5611556463787851746'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8026726330557031/posts/default/5611556463787851746'/><link rel='alternate' type='text/html' href='http://tech.element77.com/2014/08/installing-jdk-7-on-mac-os-x-yosemite.html' title='Installing JDK 7 on Mac OS X Yosemite 10.10 developer previews'/><author><name>Anonymous</name><uri>http://www.blogger.com/profile/15007585885438453864</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-8026726330557031.post-48414599764170836</id><published>2014-05-25T07:03:00.000-07:00</published><updated>2014-05-25T07:03:33.614-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="radar detector"/><category scheme="http://www.blogger.com/atom/ns#" term="v1"/><category scheme="http://www.blogger.com/atom/ns#" term="valentine one"/><title type='text'>Troubleshooting a Valentine One hardwire installation</title><content type='html'>&lt;p&gt;About 10 years ago, I hardwired the Valentine One (V1) radar detector into my car. The setup involved tapping into the power supply behind the radio and wiring from the radio over to the driver&#39;s side, up the A pillar and along the top of the windshield, to the rear view mirror, with the V1 sitting on top of the mirror using suction cups. Over time, the suction cups would occasionally lose grip and leave the V1 dangling off the connecting wire. Recently, the stresses resulted in the wire snapping and I had to replace the wire.&lt;/p&gt;
&lt;p&gt;What should have been a straightforward affair turned out to be a multi-hour ordeal. The V1 requires simple telephone wire with RJ11 connectors for wiring. A simple four conductor wire does the trick. My first purchase of a four conductor wire didn&#39;t work. Being misled by forum posts, I get a six conductor and eight conductor wire, but neither worked. After some logically checking of voltages and resistance, with my friend&#39;s help, I was able to figure out that the problem was with the fuse in my hardwire setup. After replacing the fuse and using a regular four conductor setup, I was able to get the wiring going again.&lt;/p&gt;
&lt;p&gt;In short, here are the parts required:&lt;br /&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;http://www.oreillyauto.com/site/c/detail/LIT3/AGC25BP/N1173.oap?ck=Search_N1173_-1_-1&amp;pt=N1173&amp;ppt=C0172&quot;&gt;2A glass fuse&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://www.radioshack.com/product/index.jsp?productId=3964913&quot;&gt;4 conductor telephone wire&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/p&gt;</content><link rel='replies' type='application/atom+xml' href='http://tech.element77.com/feeds/48414599764170836/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/8026726330557031/48414599764170836?isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8026726330557031/posts/default/48414599764170836'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8026726330557031/posts/default/48414599764170836'/><link rel='alternate' type='text/html' href='http://tech.element77.com/2014/05/troubleshooting-valentine-one-hardwire.html' title='Troubleshooting a Valentine One hardwire installation'/><author><name>Anonymous</name><uri>http://www.blogger.com/profile/15007585885438453864</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-8026726330557031.post-4093259403373422271</id><published>2013-05-27T12:04:00.000-07:00</published><updated>2013-05-27T13:24:59.253-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="overclocking"/><category scheme="http://www.blogger.com/atom/ns#" term="raspberry pi"/><title type='text'>Life of Pi - Raspberry Pi Overclocking</title><content type='html'>&lt;p&gt;The Raspberry Pi runs by default at 700MHz. To check the current CPU clock speed of RPi, run:&lt;/p&gt;&lt;code&gt;sudo vcgencmd measure_clock arm&lt;/code&gt;&lt;br /&gt;
&lt;p&gt;This will return the clock speed in Hz. On my RPi, this is what was returned:&lt;/p&gt;&lt;code&gt;frequency(45)=700074000&lt;/code&gt;&lt;br /&gt;
&lt;p&gt;To overclock the RPi, edit &lt;code&gt;/boot/config.txt&lt;/code&gt; and change the arm_freq line to your desired clock speed (in MHz). Make sure that the line is uncommented by removing the leading #.&lt;/p&gt;&lt;code&gt;arm_freq=850&lt;/code&gt;&lt;br /&gt;
&lt;p&gt;Reboot to see it take effect. Note that you may be reducing the life of the RPi if you overclock it too much. Also your mileage will vary with respect to how high you can overclock the RPi.&lt;/p&gt;</content><link rel='replies' type='application/atom+xml' href='http://tech.element77.com/feeds/4093259403373422271/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/8026726330557031/4093259403373422271?isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8026726330557031/posts/default/4093259403373422271'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8026726330557031/posts/default/4093259403373422271'/><link rel='alternate' type='text/html' href='http://tech.element77.com/2013/05/raspberry-pi-overclocking.html' title='Life of Pi - Raspberry Pi Overclocking'/><author><name>Anonymous</name><uri>http://www.blogger.com/profile/15007585885438453864</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-8026726330557031.post-5066515912993387475</id><published>2013-05-27T11:33:00.000-07:00</published><updated>2013-05-27T11:53:23.576-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="raspberry pi"/><category scheme="http://www.blogger.com/atom/ns#" term="vnc"/><category scheme="http://www.blogger.com/atom/ns#" term="x11vnc"/><title type='text'>Remote Desktop Access to Raspberry Pi&#39;s Default Desktop</title><content type='html'>&lt;p&gt;Enabling remote desktop access to the Raspberry Pi&#39;s default desktop is no different than doing it on any other system. Here are the basic steps.&lt;/p&gt;&lt;br /&gt;
&lt;ol&gt;&lt;li&gt;First, if you want the RPi to always boot into the graphical user interface, you need to change the default runlevel from 2 to 5. To do this, edit &lt;code&gt;/etc/inittab&lt;/code&gt; can change the line: &lt;code&gt;id:2:initdefault:&lt;/code&gt; to &lt;code&gt;id:5:initdefault:&lt;/code&gt;. After this, every time you boot the RPi, it will start the GUI login screen (via &lt;code&gt;lightdm&lt;/code&gt;). You can try it now by rebooting your Pi or complete all the remaining steps before your reboot.&lt;/li&gt;
&lt;li&gt;Next, install Karl Runge&#39;s excellent &lt;a href=&quot;http://www.karlrunge.com/x11vnc/&quot; href=&quot;&quot;&gt;x11vnc&lt;/a&gt; application. Unlike other VNC servers that create new virtual desktops, &lt;code&gt;x11vnc&lt;/code&gt; can hook into the default desktop (usually the one numbered :0). Install x11vnc using: &lt;code&gt;sudo apt-get -y install x11nvc&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;Next create a password for your VNC desktop. This will used by VNC clients when connecting to your RPi desktop, Run &lt;code&gt;sudo x11nvc -storepasswd&lt;/code&gt;. This will create a file &lt;code&gt;/root/.vnc/passwd&lt;/code&gt; with your encrypted VNC password.&lt;/li&gt;
&lt;li&gt;The next step is to make sure that &lt;code&gt;x11vnc&lt;/code&gt; starts automatically every time the RPi boots up. For this we will first need an &lt;code&gt;init.d&lt;/code&gt; script for &lt;code&gt;x11vnc&lt;/code&gt;. &lt;br /&gt;
&lt;br /&gt;
&lt;code&gt;sudo vi /etc/init.d/x11vnc&lt;/code&gt;&lt;br /&gt;
Put the following lines of text into the file: &lt;br /&gt;
&lt;br /&gt;
&lt;code&gt;&lt;br /&gt;
#!/bin/sh&lt;br /&gt;
&lt;br /&gt;
### BEGIN INIT INFO&lt;br /&gt;
# Provides: x11vnc&lt;br /&gt;
# Required-Start: lightdm&lt;br /&gt;
# Required-Stop:&lt;br /&gt;
# Default-Start: 5&lt;br /&gt;
# Default-Stop: 6&lt;br /&gt;
# Short-Description: VNC on default deskop&lt;br /&gt;
# Description: VNC on default deskop&lt;br /&gt;
### END INIT INFO&lt;br /&gt;
&lt;br /&gt;
x11vnc -auth /var/run/lightdm/root/:0 -rfbauth /root/.vnc/passwd -no6 -noipv6 -reopen -forever -shared &amp;&lt;br /&gt;
&lt;br /&gt;
exit 0&lt;br /&gt;
&lt;br /&gt;
&lt;/code&gt;&lt;br /&gt;
Make the file executable: &lt;br /&gt;
&lt;br /&gt;
&lt;code&gt;sudo chmod +x /etc/init.d/x11vnc&lt;/code&gt;&lt;br /&gt;
Now register this file with runlevel 5 by running this command: &lt;br /&gt;
&lt;br /&gt;
&lt;code&gt;sudo update-rc.d x11vnc defaults&lt;/code&gt;&lt;br /&gt;
&lt;/li&gt;
&lt;/ol&gt;&lt;br /&gt;
&lt;p&gt;That&#39;s it! Reboot your RPi and x11vnc should be running automatically. From any other machine that is network reachable to the RPi, start a VNC client and connect to &amp;lt;IP address of RPi&amp;gt;:0. Enter the VNC password and you should see the RPi desktop. Multiple clients should be able to connect to the RPi.&lt;/p&gt;</content><link rel='replies' type='application/atom+xml' href='http://tech.element77.com/feeds/5066515912993387475/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/8026726330557031/5066515912993387475?isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8026726330557031/posts/default/5066515912993387475'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8026726330557031/posts/default/5066515912993387475'/><link rel='alternate' type='text/html' href='http://tech.element77.com/2013/05/remote-desktop-access-to-raspberry-pis.html' title='Remote Desktop Access to Raspberry Pi&#39;s Default Desktop'/><author><name>Anonymous</name><uri>http://www.blogger.com/profile/15007585885438453864</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-8026726330557031.post-2348981056639719624</id><published>2013-03-13T20:46:00.001-07:00</published><updated>2013-03-13T21:08:01.430-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="google"/><category scheme="http://www.blogger.com/atom/ns#" term="reader"/><category scheme="http://www.blogger.com/atom/ns#" term="rip"/><title type='text'>Eulogy to Google Reader</title><content type='html'>Google has &lt;a href=&quot;http://productforums.google.com/forum/#!category-topic/reader/share-your-stuff/qYAeiUEY8sg%5B1-25-false%5D&quot;&gt;announced today&lt;/a&gt; that they are shutting down &lt;a href=&quot;http://reader.google.com/&quot;&gt;Google Reader&lt;/a&gt; on July 1st 2013. Here&#39;s what they said on the &lt;a href=&quot;http://googleblog.blogspot.com.au/2013/03/a-second-spring-of-cleaning.html&quot;&gt;official Google blog&lt;/a&gt;:&lt;br /&gt;
&lt;blockquote class=&quot;tr_bq&quot;&gt;
&lt;span style=&quot;background-color: white; color: #444444; font-family: arial, sans-serif; font-size: 13px; line-height: 20px;&quot;&gt;We launched&amp;nbsp;&lt;/span&gt;&lt;b style=&quot;background-color: white; font-family: arial, sans-serif; font-size: 13px; line-height: 20px;&quot;&gt;Google Reader&lt;/b&gt;&lt;span style=&quot;background-color: white; color: #444444; font-family: arial, sans-serif; font-size: 13px; line-height: 20px;&quot;&gt;&amp;nbsp;in 2005 in an effort to make it easy for people to discover and keep tabs on their favorite websites. While the product has a loyal following, over the years usage has declined. So, on July 1, 2013, we will retire Google Reader. Users and developers interested in RSS alternatives can export their data, including their subscriptions, with&amp;nbsp;&lt;/span&gt;&lt;a href=&quot;http://www.dataliberation.org/google/reader&quot; style=&quot;background-color: white; color: #7759ae; font-family: arial, sans-serif; font-size: 13px; line-height: 20px; text-decoration: none;&quot;&gt;Google Takeout&lt;/a&gt;&lt;span style=&quot;background-color: white; color: #444444; font-family: arial, sans-serif; font-size: 13px; line-height: 20px;&quot;&gt;&amp;nbsp;over the course of the next four months.&lt;/span&gt;&lt;/blockquote&gt;
Google Reader is one of the apps that I have been relying on, every single day, almost since the time it showed up in &lt;a href=&quot;http://en.wikipedia.org/wiki/Google_Labs&quot;&gt;Google Labs&lt;/a&gt; (itself discontinued in July 2011). &amp;nbsp;I started using Reader with my @gmail.com account on Dec 7th 2005 and then migrated to my&amp;nbsp;@element77.com account with Google Apps For Your Domain when Reader started supporting it. I&#39;ve looked at 153,000 items in over 7 years from 200 feeds. That&#39;s an average of 60 items per day.&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/AVvXsEj-A61KIDo6XjVjKMiUUPUHJGRHLJLSDIH_ZCEPS85dTpbOK9z_tQR63mQZVbw8CKp-7H1fMqkmr-7iFXJ_jyP9mVwG2yLVKJ9WUzHBnkctvbE9jDS6yC1nNnqnB1xY1TDLKjVIbPUaLb0/s1600/Screen+Shot+2013-03-13+at+8.56.05+PM.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;135&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj-A61KIDo6XjVjKMiUUPUHJGRHLJLSDIH_ZCEPS85dTpbOK9z_tQR63mQZVbw8CKp-7H1fMqkmr-7iFXJ_jyP9mVwG2yLVKJ9WUzHBnkctvbE9jDS6yC1nNnqnB1xY1TDLKjVIbPUaLb0/s320/Screen+Shot+2013-03-13+at+8.56.05+PM.png&quot; width=&quot;320&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/AVvXsEjuOU1WQPBLieI4hBWnNZFbL6JiPjhphYv9ti4C25UUnl96TFfTFf6KUyD6tEf3KPaAujtiPL6GrvCuBPtvyTC4K0dRuSfebntkAoVnOXKOsXfftqSfQUNoVpCXuVEF2WjradmcixkjB_s/s1600/Screen+Shot+2013-03-13+at+8.56.36+PM.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;106&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjuOU1WQPBLieI4hBWnNZFbL6JiPjhphYv9ti4C25UUnl96TFfTFf6KUyD6tEf3KPaAujtiPL6GrvCuBPtvyTC4K0dRuSfebntkAoVnOXKOsXfftqSfQUNoVpCXuVEF2WjradmcixkjB_s/s320/Screen+Shot+2013-03-13+at+8.56.36+PM.png&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
I read all my news feeds using Reader on web browsers and also use Reader via &lt;a href=&quot;http://newsify.co/&quot;&gt;Newsify&lt;/a&gt; on my iOS devices. Newsify themselves are scrambling to figure out what this means for them. They have a one-line &lt;a href=&quot;http://newsify.co/faq/general/what-will-happen-when-google-reader-shuts-down.html&quot;&gt;reaction on their website&lt;/a&gt;:&lt;br /&gt;
&lt;blockquote class=&quot;tr_bq&quot;&gt;
&lt;span style=&quot;background-color: white; color: #686868; font-family: &#39;Open Sans&#39;, arial, sans-serif; font-size: 14px; line-height: 25.1875px;&quot;&gt;We&#39;re still investigating options, but our desire is to keep Newsify working after Google Reader shuts down.&lt;/span&gt;&lt;/blockquote&gt;
With Reader, having one account accessible on any computer made it very easy to keep track of what was read and unread. Coming from the days of &lt;a href=&quot;http://en.wikipedia.org/wiki/AvantGo&quot;&gt;AvantGo&lt;/a&gt; on my Palm IIIxe, this was a huge improvement. This &quot;cloud&quot; access combined with Google&#39;s search prowess, made Reader the best news reader.&lt;br /&gt;
&lt;br /&gt;
The one feature that I loved the most was Reader&#39;s keyboard shortcuts. It made it just a breeze to scan through feeds and speed read. Reader was the second best Google product I&#39;ve used (after search, of course).&lt;br /&gt;
&lt;table align=&quot;center&quot; cellpadding=&quot;0&quot; cellspacing=&quot;0&quot; class=&quot;tr-caption-container&quot; style=&quot;margin-left: auto; margin-right: auto; text-align: center;&quot;&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjjMueigsTn2OrlDYhYDY2e-qU9VDM1XDpYVcn5Sd__pLwS5iaJrPqvRAOxHNnb-cBmNJHAR_bcep7A68cAZ7U-gmTP6mvIzGYwCUtTBJqGW1HZZl5a-H0skPiZQp1r_nlttyjhhsi6u7k/s1600/Screen+Shot+2013-03-13+at+8.36.59+PM.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: auto; margin-right: auto;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;332&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjjMueigsTn2OrlDYhYDY2e-qU9VDM1XDpYVcn5Sd__pLwS5iaJrPqvRAOxHNnb-cBmNJHAR_bcep7A68cAZ7U-gmTP6mvIzGYwCUtTBJqGW1HZZl5a-H0skPiZQp1r_nlttyjhhsi6u7k/s400/Screen+Shot+2013-03-13+at+8.36.59+PM.png&quot; width=&quot;400&quot; /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;tr-caption&quot; style=&quot;text-align: center;&quot;&gt;Google Reader keyboard shortcuts&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
Feedback to Google&#39;s decision is &lt;a href=&quot;http://productforums.google.com/forum/#!category-topic/reader/share-your-stuff/qYAeiUEY8sg%5B1-25-false%5D&quot;&gt;universally negative&lt;/a&gt;. Mashable has an op-ed - &quot;&lt;a href=&quot;http://mashable.com/2013/03/13/save-google-reader/&quot;&gt;We Still Love Reader&lt;/a&gt;&quot;. There&#39;s a &lt;a href=&quot;https://www.change.org/petitions/google-keep-google-reader-running&quot;&gt;petition asking Google to reverse their decision&lt;/a&gt;. Lifehacker has already put out a &lt;a href=&quot;http://lifehacker.com/5990456/google-reader-is-getting-shut-down-here-are-the-best-alternatives?utm_campaign=socialflow_lifehacker_twitter&amp;amp;utm_source=lifehacker_twitter&amp;amp;utm_medium=socialflow&quot;&gt;list of alternatives to Reader&lt;/a&gt;. I&#39;ll have to see which one of the alternatives comes closest to Reader.&lt;br /&gt;
&lt;br /&gt;
My (futile) plea to Google - please don&#39;t kill Reader.</content><link rel='replies' type='application/atom+xml' href='http://tech.element77.com/feeds/2348981056639719624/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/8026726330557031/2348981056639719624?isPopup=true' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8026726330557031/posts/default/2348981056639719624'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8026726330557031/posts/default/2348981056639719624'/><link rel='alternate' type='text/html' href='http://tech.element77.com/2013/03/eulogy-to-google-reader.html' title='Eulogy to Google Reader'/><author><name>Anonymous</name><uri>http://www.blogger.com/profile/15007585885438453864</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/AVvXsEj-A61KIDo6XjVjKMiUUPUHJGRHLJLSDIH_ZCEPS85dTpbOK9z_tQR63mQZVbw8CKp-7H1fMqkmr-7iFXJ_jyP9mVwG2yLVKJ9WUzHBnkctvbE9jDS6yC1nNnqnB1xY1TDLKjVIbPUaLb0/s72-c/Screen+Shot+2013-03-13+at+8.56.05+PM.png" height="72" width="72"/><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8026726330557031.post-2951105725452555109</id><published>2012-11-23T12:40:00.000-08:00</published><updated>2012-11-23T16:39:13.965-08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="os x"/><category scheme="http://www.blogger.com/atom/ns#" term="productivity"/><category scheme="http://www.blogger.com/atom/ns#" term="window manager"/><title type='text'>Window Management Goodness for OS X</title><content type='html'>&lt;p&gt;Tristan Hume has an &lt;a href=&quot;http://thume.ca/howto/2012/11/19/using-slate/&quot;&gt;excellent article on improving window management&lt;/a&gt; in OS X, using &lt;a href=&quot;https://github.com/jigish/slate&quot;&gt;Slate&lt;/a&gt;. Well worth the time to read that and configure Slate to your liking. I&#39;m already feeling much more productive, all without spending on window management software - Slate is free!&lt;/p&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;http://thume.ca/assets/postassets/slate/windowhints.jpg&quot; imageanchor=&quot;1&quot; style=&quot;margin-left:1em; margin-right:1em&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;2163&quot; width=&quot;3820&quot; src=&quot;http://thume.ca/assets/postassets/slate/windowhints.jpg&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;p&gt;Here&#39;s &lt;a href=&quot;https://gist.github.com/4137835&quot;&gt;my .slate configuration file&lt;/a&gt;.&lt;/p&gt;</content><link rel='replies' type='application/atom+xml' href='http://tech.element77.com/feeds/2951105725452555109/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/8026726330557031/2951105725452555109?isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8026726330557031/posts/default/2951105725452555109'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8026726330557031/posts/default/2951105725452555109'/><link rel='alternate' type='text/html' href='http://tech.element77.com/2012/11/window-management-goodness-for-os-x.html' title='Window Management Goodness for OS X'/><author><name>Anonymous</name><uri>http://www.blogger.com/profile/15007585885438453864</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-8026726330557031.post-1795340273489539067</id><published>2012-11-09T06:16:00.000-08:00</published><updated>2012-11-09T06:17:38.761-08:00</updated><title type='text'>&quot;Is this just math that you do as a Republican to make yourself feel better or is this real?&quot;</title><content type='html'>&lt;div style=&quot;background-color:#000000;width:520px;&quot;&gt;&lt;div style=&quot;padding:4px;&quot;&gt;&lt;iframe src=&quot;http://media.mtvnservices.com/embed/mgid:cms:video:thedailyshow.com:420890&quot; width=&quot;512&quot; height=&quot;288&quot; frameborder=&quot;0&quot;&gt;&lt;/iframe&gt;&lt;p style=&quot;text-align:left;background-color:#FFFFFF;padding:4px;margin-top:4px;margin-bottom:0px;font-family:Arial, Helvetica, sans-serif;font-size:12px;&quot;&gt;&lt;b&gt;&lt;a href=&quot;http://www.thedailyshow.com/watch/wed-november-7-2012/post-democalypse-2012---america-takes-a-shower---karl-rove-s-math&quot;&gt;The Daily Show with Jon Stewart&lt;/a&gt;&lt;/b&gt;&lt;br/&gt;Get More: &lt;a href=&#39;http://www.thedailyshow.com/full-episodes/&#39;&gt;Daily Show Full Episodes&lt;/a&gt;,&lt;a href=&#39;http://www.indecisionforever.com/&#39;&gt;Political Humor &amp; Satire Blog&lt;/a&gt;,&lt;a href=&#39;http://www.facebook.com/thedailyshow&#39;&gt;The Daily Show on Facebook&lt;/a&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://tech.element77.com/feeds/1795340273489539067/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/8026726330557031/1795340273489539067?isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8026726330557031/posts/default/1795340273489539067'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8026726330557031/posts/default/1795340273489539067'/><link rel='alternate' type='text/html' href='http://tech.element77.com/2012/11/is-this-just-math-that-you-do-as.html' title='&quot;Is this just math that you do as a Republican to make yourself feel better or is this real?&quot;'/><author><name>Anonymous</name><uri>http://www.blogger.com/profile/15007585885438453864</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-8026726330557031.post-499215112812019748</id><published>2012-11-04T08:31:00.000-08:00</published><updated>2012-11-04T08:31:14.849-08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="magic"/><category scheme="http://www.blogger.com/atom/ns#" term="opencv"/><category scheme="http://www.blogger.com/atom/ns#" term="ted"/><title type='text'>Marco Tempest: A cyber-magic card trick</title><content type='html'>&lt;p&gt;Marco Tempest has an excellent TED talk where he shows off a cyber-magic card trick using sleight of hand combined with &lt;a href=&quot;http://opencv.org/&quot;&gt;OpenCV&lt;/a&gt;. Very cool! Check it out below.&lt;/p&gt;&lt;iframe src=&quot;http://embed.ted.com/talks/marco_tempest_a_cyber_magic_card_trick_like_no_other.html&quot; width=&quot;640&quot; height=&quot;360&quot; frameborder=&quot;0&quot; scrolling=&quot;no&quot; webkitAllowFullScreen mozallowfullscreen allowFullScreen&gt;&lt;/iframe&gt;</content><link rel='replies' type='application/atom+xml' href='http://tech.element77.com/feeds/499215112812019748/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/8026726330557031/499215112812019748?isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8026726330557031/posts/default/499215112812019748'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8026726330557031/posts/default/499215112812019748'/><link rel='alternate' type='text/html' href='http://tech.element77.com/2012/11/marco-tempest-cyber-magic-card-trick.html' title='Marco Tempest: A cyber-magic card trick'/><author><name>Anonymous</name><uri>http://www.blogger.com/profile/15007585885438453864</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-8026726330557031.post-5435139688744070673</id><published>2012-10-28T08:50:00.000-07:00</published><updated>2012-10-28T08:50:42.377-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="earthquake"/><category scheme="http://www.blogger.com/atom/ns#" term="google"/><category scheme="http://www.blogger.com/atom/ns#" term="heatmap"/><category scheme="http://www.blogger.com/atom/ns#" term="javascript"/><category scheme="http://www.blogger.com/atom/ns#" term="map"/><category scheme="http://www.blogger.com/atom/ns#" term="usgs"/><title type='text'>Google Maps, Heatmaps and Earthquakes</title><content type='html'>&lt;p&gt;The US Geological Survey makes available a small dataset containing the &lt;a href=&quot;https://explore.data.gov/d/7tag-iwnu&quot;&gt;M1+ earthquakes from around the world in the past 7 days&lt;/a&gt;. I used this data along with the heatmap visualization layer offered by the Google Maps API to present the earthquake data as a heatmap.&lt;/p&gt;&lt;p&gt;Check out &lt;a href=&quot;http://www.element77.com/maps/quake/quake.html&quot;&gt;Worldwide M1+ Earthquakes, Past 7 Days&lt;/a&gt;.&lt;/p&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;http://www.element77.com/maps/quake/quake.html&quot; imageanchor=&quot;1&quot; style=&quot;margin-left:1em; margin-right:1em&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;322&quot; width=&quot;480&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjUi-YlZ-XzfC2rhaXIwPUcP981Kgi5QVInr3Me6bLoX6jrLDGxM5DhU9E-EW_xLhBg0up93KZ6HHw-yxmI4nnpn9GM7zug0_NpSNiQNEC_Sayx4fKNToJaii6P9pCgX0Y1KWJSAaqu4IY/s320/Screen+Shot+2012-10-28+at+8.45.59+AM.png&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;p&gt;One caveat: due to cross origin issues, I am hosting a local copy of the data rather than getting it live from the USGS.&lt;/p&gt;&lt;br /&gt;
</content><link rel='replies' type='application/atom+xml' href='http://tech.element77.com/feeds/5435139688744070673/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/8026726330557031/5435139688744070673?isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8026726330557031/posts/default/5435139688744070673'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8026726330557031/posts/default/5435139688744070673'/><link rel='alternate' type='text/html' href='http://tech.element77.com/2012/10/google-maps-heatmaps-and-earthquakes.html' title='Google Maps, Heatmaps and Earthquakes'/><author><name>Anonymous</name><uri>http://www.blogger.com/profile/15007585885438453864</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/AVvXsEjUi-YlZ-XzfC2rhaXIwPUcP981Kgi5QVInr3Me6bLoX6jrLDGxM5DhU9E-EW_xLhBg0up93KZ6HHw-yxmI4nnpn9GM7zug0_NpSNiQNEC_Sayx4fKNToJaii6P9pCgX0Y1KWJSAaqu4IY/s72-c/Screen+Shot+2012-10-28+at+8.45.59+AM.png" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8026726330557031.post-1053800059465314213</id><published>2012-10-21T21:38:00.000-07:00</published><updated>2012-10-21T21:59:34.265-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="google"/><category scheme="http://www.blogger.com/atom/ns#" term="javascript"/><category scheme="http://www.blogger.com/atom/ns#" term="map"/><title type='text'>Fun With Google Maps</title><content type='html'>&lt;p&gt;Ever wondered what&#39;s on the opposite side of the world for any place? Then check out the &lt;a href=&quot;http://www.element77.com/maps/mirror/mirror.html&quot;&gt;Opposite Of The World&lt;/a&gt;. It&#39;s a &quot;Hello World&quot; exploration of the Google Maps JavaScript API that I wrote for fun. You can scroll and zoom through either map on the page and the other map will show you the opposite side of the world. It&#39;s quite basic now but I&#39;m going to add markers and other overlays to make it more fun.&lt;/p&gt;&lt;p&gt;PS: You might be surprised to know that Malaysia, is on the opposite side of Ecuador!&lt;/p&gt;</content><link rel='replies' type='application/atom+xml' href='http://tech.element77.com/feeds/1053800059465314213/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/8026726330557031/1053800059465314213?isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8026726330557031/posts/default/1053800059465314213'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8026726330557031/posts/default/1053800059465314213'/><link rel='alternate' type='text/html' href='http://tech.element77.com/2012/10/fun-with-google-maps.html' title='Fun With Google Maps'/><author><name>Anonymous</name><uri>http://www.blogger.com/profile/15007585885438453864</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-8026726330557031.post-3957661312459760959</id><published>2012-09-29T17:17:00.001-07:00</published><updated>2012-09-29T17:36:08.667-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="linux"/><category scheme="http://www.blogger.com/atom/ns#" term="power"/><category scheme="http://www.blogger.com/atom/ns#" term="raspberry pi"/><title type='text'>Raspberry Power</title><content type='html'>&lt;p&gt;After sitting on the sidelines of the &lt;a href=&quot;http://www.raspberrypi.org/&quot;&gt;Raspberry Pi&lt;/a&gt; revolution for a few months, I recently picked up a &lt;a href=&quot;http://www.newark.com/raspberry-pi/raspbrry-pcba/raspberry-pi-model-b-board-only/dp/83T1943&quot;&gt;model B from Newark&lt;/a&gt;. (There were a 100 units in stock a few days ago but as of this time, they are showing 0 in stock.) I wanted to complete the accessory setup with minimal wires and maximum portability. Newark offers a &lt;a href=&quot;http://www.newark.com/jsp/bespoke/bespoke7.jsp?bespokepage=newark/en_US/landing/raspberry-pi/rasp-pi-accessories.jsp&amp;ICID=HP-Raspberrypi-Accessories&quot;&gt;host of suggestions for each accessory&lt;/a&gt; but I decided to get parts separately.&lt;/p&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/AVvXsEhziVJ8wvmYkco48qCoS_vvIG8coL9IAjRpc39fU4cllQRtGYfk4Y5KlYd3GeDFfHjLv03ESkgHpxV2S0HtI-kY2q4LtjIOGf9UfKN7egEkKO-_bzWRwxVeWdQl4R6LwU7V9p_OU_82rE8/s1600/Raspberry+Pi+Accessories.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left:1em; margin-right:1em&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;353&quot; width=&quot;400&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhziVJ8wvmYkco48qCoS_vvIG8coL9IAjRpc39fU4cllQRtGYfk4Y5KlYd3GeDFfHjLv03ESkgHpxV2S0HtI-kY2q4LtjIOGf9UfKN7egEkKO-_bzWRwxVeWdQl4R6LwU7V9p_OU_82rE8/s400/Raspberry+Pi+Accessories.png&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;p&gt;Here&#39;s the setup I chose:&lt;br /&gt;
&lt;ol&gt;&lt;li&gt;SD Card: An old Patriot 4GB SDHC card but Fry&#39;s has a &lt;a href=&quot;http://www.frys.com/product/7312734?site=sr:SEARCH:MAIN_RSLT_PG&quot;&gt;Samsung 8GB micro SDHC card&lt;/a&gt; (with the SD adapter) for $4.99.&lt;/li&gt;
&lt;li&gt;OS: Raspbian “wheezy” available from the &lt;a href=&quot;http://www.raspberrypi.org/downloads&quot;&gt;Raspberry Pi downloads page&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;Keyboard/Mouse: The cheapest wireless keyboard/mouse combination at Fry&#39;s which happened to be an &lt;a href=&quot;http://www.frys.com/product/7190192?site=sr:SEARCH:MAIN_RSLT_PG&quot;&gt;iConcepts 2.4GHz Wireless Keyboard and Optical Mouse&lt;/a&gt; for $14.99. The dongle that connects to USB is tiny!&lt;/li&gt;
&lt;li&gt;Wi-Fi: I decided to skip the wired interface and instead got the &lt;a href=&quot;http://www.frys.com/product/7027881?site=sr:SEARCH:MAIN_RSLT_PG&quot;&gt;Patriot Mini Wireless-N&lt;/a&gt; USB Wi-Fi adapter for $14.99 at Fry&#39;s. The adapter is quite small (see picture of the full setup below).&lt;/li&gt;
&lt;li&gt;HDMI cable: Again, the cheapest at Fry&#39;s - a &lt;a href=&quot;http://www.frys.com/product/6686174?site=sr:SEARCH:MAIN_RSLT_PG&quot;&gt;6ft HDMI cable&lt;/a&gt; for $6.99.&lt;/li&gt;
&lt;li&gt;Power supply: This is one place where I didn&#39;t want anything that had to be connected to the mains. I want to use the Pi eventually for portable applications and the best alternative seemed to be the portable chargers for mobile phones. After some hunting, I settled on the &lt;a href=&quot;http://www.frys.com/product/7221673?site=sr:SEARCH:MAIN_RSLT_PG&quot;&gt;Concept Green CG2000-B&lt;/a&gt; portable charger. This one came with the micro USB connector (in addition to mini USB and iPod/iPhone) making it ideal for the Pi. The CG2000 charges via USB (mini USB to USB port on a computer) and discharges via USB to micro USB. This one was $19.99 at Fry&#39;s but is also available online for a little cheaper.&lt;/li&gt;
&lt;/ol&gt;&lt;/p&gt;&lt;p&gt;All-in-all, that added $62 to the base $35 price of the Pi. Here&#39;s the end result:&lt;/p&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/AVvXsEjHKL0BV62QtM3bBvnYt6ynLqCBJ3IEC4Chmj1_WcQVjR9F35_pVvHVln4p7-Kf1ziGuyde27FZDC_s0ag-NxM5tvIueL6rOwzPVlNI6GoJ3XsnMqgAr5NWQ-tusn4rWEaFdFj6npfXGMk/s1600/Raspberry+Pi+Powered.jpg&quot; imageanchor=&quot;1&quot; style=&quot;margin-left:1em; margin-right:1em&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;300&quot; width=&quot;400&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjHKL0BV62QtM3bBvnYt6ynLqCBJ3IEC4Chmj1_WcQVjR9F35_pVvHVln4p7-Kf1ziGuyde27FZDC_s0ag-NxM5tvIueL6rOwzPVlNI6GoJ3XsnMqgAr5NWQ-tusn4rWEaFdFj6npfXGMk/s400/Raspberry+Pi+Powered.jpg&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;p&gt;I&#39;m quite happy with the setup and now it&#39;s time to build something fun with it :-)&lt;/p&gt;</content><link rel='replies' type='application/atom+xml' href='http://tech.element77.com/feeds/3957661312459760959/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/8026726330557031/3957661312459760959?isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8026726330557031/posts/default/3957661312459760959'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8026726330557031/posts/default/3957661312459760959'/><link rel='alternate' type='text/html' href='http://tech.element77.com/2012/09/raspberry-power.html' title='Raspberry Power'/><author><name>Anonymous</name><uri>http://www.blogger.com/profile/15007585885438453864</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/AVvXsEhziVJ8wvmYkco48qCoS_vvIG8coL9IAjRpc39fU4cllQRtGYfk4Y5KlYd3GeDFfHjLv03ESkgHpxV2S0HtI-kY2q4LtjIOGf9UfKN7egEkKO-_bzWRwxVeWdQl4R6LwU7V9p_OU_82rE8/s72-c/Raspberry+Pi+Accessories.png" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8026726330557031.post-5499944015179140060</id><published>2012-07-29T11:58:00.000-07:00</published><updated>2012-07-29T11:58:47.822-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="finance"/><category scheme="http://www.blogger.com/atom/ns#" term="macports"/><category scheme="http://www.blogger.com/atom/ns#" term="mountain lion"/><category scheme="http://www.blogger.com/atom/ns#" term="os x"/><category scheme="http://www.blogger.com/atom/ns#" term="quantlib"/><title type='text'>Building QuantLib on OS X Mountain Lion</title><content type='html'>&lt;p&gt;Here are the steps to install &lt;a href=&quot;http://quantlib.org/index.shtml&quot;&gt;QuantLib&lt;/a&gt;, a free/open-source library for quantitative finance, on OS X Mountain Lion:&lt;/p&gt;&lt;p&gt;&lt;ol&gt;&lt;li&gt;Install &lt;a href=&quot;http://www.macports.org/install.php&quot;&gt;MacPorts&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;Install &lt;a href=&quot;http://www.boost.org/&quot;&gt;Boost&lt;/a&gt; using MacPorts by running this command:&lt;br /&gt;&lt;tt&gt;sudo port install boost&lt;/tt&gt;&lt;br /&gt;This will install Boost and its dependencies under &lt;tt&gt;/opt/local&lt;/tt&gt;.&lt;br /&gt;
&lt;li&gt;Download and extract the &lt;a href=&quot;http://quantlib.org/download.shtml&quot;&gt;QuantLib sources&lt;/a&gt;.&lt;/li&gt;&lt;br /&gt;
&lt;li&gt;Configure QuantLib by running:&lt;br /&gt;&lt;tt&gt;./configure --with-boost-include=/opt/local/include --with-boost-lib=/opt/local/lib/&lt;/tt&gt;&lt;br /&gt;
&lt;li&gt;Run &lt;tt&gt;make&lt;/tt&gt;, followed by &lt;tt&gt;sudo make install&lt;/tt&gt;.&lt;/li&gt;&lt;br /&gt;
&lt;/ol&gt;&lt;/p&gt;</content><link rel='replies' type='application/atom+xml' href='http://tech.element77.com/feeds/5499944015179140060/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/8026726330557031/5499944015179140060?isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8026726330557031/posts/default/5499944015179140060'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8026726330557031/posts/default/5499944015179140060'/><link rel='alternate' type='text/html' href='http://tech.element77.com/2012/07/building-quantlib-on-os-x-mountain-lion.html' title='Building QuantLib on OS X Mountain Lion'/><author><name>Anonymous</name><uri>http://www.blogger.com/profile/15007585885438453864</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-8026726330557031.post-8340040402715078415</id><published>2012-07-23T20:19:00.000-07:00</published><updated>2012-10-28T19:06:38.405-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="browser detection"/><category scheme="http://www.blogger.com/atom/ns#" term="ing"/><category scheme="http://www.blogger.com/atom/ns#" term="ios"/><category scheme="http://www.blogger.com/atom/ns#" term="safari"/><title type='text'>Future Proofing</title><content type='html'>&lt;p&gt;I am always disappointed to see web programmers code pages which display messages like the one below. &lt;a href=&quot;https://developer.apple.com/technologies/safari/whats-new.html&quot;&gt;Safari 6&lt;/a&gt; is the latest (beta) release. &lt;a href=&quot;http://www.ingdirect.com&quot;&gt;ING&lt;/a&gt; can do better, especially if they are the &quot;rebel with a cause&quot; - see &lt;a href=&#39;http://gan.doubleclick.net/gan_click?lid=41000000028007181&amp;amp;pid=UBM9780470538791&amp;amp;adurl=http%3A%2F%2Fwww.cdsbooksdvds.com%2Fproduct.jhtm%3Fsku%3DUBM9780470538791&amp;amp;usg=AFHzDLuy5FMjzlvubFrG0mo75LLZ8IdeZQ&amp;amp;pubid=590691&#39; rel=&#39;nofollow&#39;&gt;The Orange Code: How ING Direct Succeeded by Being a Rebel with a Cause&lt;/a&gt;.&lt;/p&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/AVvXsEhIpdv-AsmgVwQabWxS6vEAi-TS3o6xZK4aHBMqVQsp59k7gqHj1NwMLyoWkMeYvNtUp49D-fMMe2U4x-laM2E9ggkUdzO77Ff-ocMBx2lp2l4iaLG-x0AQ8Cqw7mFe70BL0K32s9cHsKo/s1600/IMG_3255.PNG&quot; imageanchor=&quot;1&quot; style=&quot;margin-left:1em; margin-right:1em&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;400&quot; width=&quot;600&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhIpdv-AsmgVwQabWxS6vEAi-TS3o6xZK4aHBMqVQsp59k7gqHj1NwMLyoWkMeYvNtUp49D-fMMe2U4x-laM2E9ggkUdzO77Ff-ocMBx2lp2l4iaLG-x0AQ8Cqw7mFe70BL0K32s9cHsKo/s400/IMG_3255.PNG&quot; /&gt;&lt;/a&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://tech.element77.com/feeds/8340040402715078415/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/8026726330557031/8340040402715078415?isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8026726330557031/posts/default/8340040402715078415'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8026726330557031/posts/default/8340040402715078415'/><link rel='alternate' type='text/html' href='http://tech.element77.com/2012/07/future-proofing.html' title='Future Proofing'/><author><name>Anonymous</name><uri>http://www.blogger.com/profile/15007585885438453864</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/AVvXsEhIpdv-AsmgVwQabWxS6vEAi-TS3o6xZK4aHBMqVQsp59k7gqHj1NwMLyoWkMeYvNtUp49D-fMMe2U4x-laM2E9ggkUdzO77Ff-ocMBx2lp2l4iaLG-x0AQ8Cqw7mFe70BL0K32s9cHsKo/s72-c/IMG_3255.PNG" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8026726330557031.post-8737394354248127252</id><published>2012-07-23T20:17:00.000-07:00</published><updated>2012-07-23T20:23:07.926-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="facebook"/><category scheme="http://www.blogger.com/atom/ns#" term="firefox"/><category scheme="http://www.blogger.com/atom/ns#" term="google"/><category scheme="http://www.blogger.com/atom/ns#" term="http"/><category scheme="http://www.blogger.com/atom/ns#" term="microsoft"/><category scheme="http://www.blogger.com/atom/ns#" term="mozilla"/><category scheme="http://www.blogger.com/atom/ns#" term="spdy"/><category scheme="http://www.blogger.com/atom/ns#" term="websocket"/><title type='text'>Battle lines for HTTP/2.0</title><content type='html'>&lt;p&gt;Over the past month, several interested parties have revealed their &lt;a href=&quot;http://lists.w3.org/Archives/Public/ietf-http-wg/2012JulSep/&quot;&gt;expressions of interest&lt;/a&gt; regarding the proposals for the HTTP/2.0 standard. Under consideration are primarily the SPDY and HTTP Speed+mobility proposals. The battle lines have been drawn, and as usual Microsoft wants to push their own agenda.&lt;/p&gt;&lt;p&gt;There&#39;s also an interesting debate about whether HTTP/2.0 should always use TLS.&lt;/p&gt;</content><link rel='replies' type='application/atom+xml' href='http://tech.element77.com/feeds/8737394354248127252/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/8026726330557031/8737394354248127252?isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8026726330557031/posts/default/8737394354248127252'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8026726330557031/posts/default/8737394354248127252'/><link rel='alternate' type='text/html' href='http://tech.element77.com/2012/07/battle-lines-for-http20.html' title='Battle lines for HTTP/2.0'/><author><name>Anonymous</name><uri>http://www.blogger.com/profile/15007585885438453864</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-8026726330557031.post-725341498168674520</id><published>2012-07-15T08:32:00.000-07:00</published><updated>2012-10-28T19:10:03.137-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="windows 8"/><title type='text'>Windows 8 - Delete Progress Dialog</title><content type='html'>&lt;p&gt;Windows 8 has a fancy delete progress dialog window for long-running delete operations. It shows:&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;the number of items being deleted,&lt;/li&gt;
&lt;li&gt;percentage complete,&lt;/li&gt;
&lt;li&gt;instantaneous speed of deletion (items/second),&lt;/li&gt;
&lt;li&gt;a graph of historical speed of deletion for this operation,&lt;/li&gt;
&lt;li&gt;estimated time remaining, and&lt;/li&gt;
&lt;li&gt;items remaining (count and size)&lt;/li&gt;
&lt;/ul&gt;&lt;/p&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/AVvXsEhN1Ebd6zadDicPMSYvO36gd6HfZ8IQq9Gd2EyAVK_omql1RvZd4wTVd11NeE4eujCP4ewM6tcIXbDc98p2qBUU8mr9LUs6W-GXuHgDiCUuTV1wHSfKJYLYNAGa6LLrU5MfGMVWcw3MmDk/s1600/delete_progress.PNG&quot; imageanchor=&quot;1&quot; style=&quot;margin-left:1em; margin-right:1em&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;254&quot; width=&quot;400&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhN1Ebd6zadDicPMSYvO36gd6HfZ8IQq9Gd2EyAVK_omql1RvZd4wTVd11NeE4eujCP4ewM6tcIXbDc98p2qBUU8mr9LUs6W-GXuHgDiCUuTV1wHSfKJYLYNAGa6LLrU5MfGMVWcw3MmDk/s400/delete_progress.PNG&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;p&gt;Get your copy of Windows 8 here: &lt;a href=&#39;http://gan.doubleclick.net/gan_click?lid=41000000005217789&amp;amp;pid=23507199&amp;amp;adurl=http%3A%2F%2Fwww.officemax.com%2Ftechnology%2Fsoftware%2Fwindows-8-software%2Fproduct-prod4260962%3Fcm_mmc%3DPerformics-_-Technology-_-Software-_-Windows%25208%2520Software%26ci_src%3D14110944%26ci_sku%3D23507199&amp;amp;usg=AFHzDLsfkRCldo5uq5JsRK9wNlE7k1q78g&amp;amp;pubid=590691&#39; rel=&#39;nofollow&#39;&gt;Microsoft Windows 8 Pro Pack 5VR-00001&lt;/a&gt;.&lt;/p&gt;&lt;br /&gt;
</content><link rel='replies' type='application/atom+xml' href='http://tech.element77.com/feeds/725341498168674520/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/8026726330557031/725341498168674520?isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8026726330557031/posts/default/725341498168674520'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8026726330557031/posts/default/725341498168674520'/><link rel='alternate' type='text/html' href='http://tech.element77.com/2012/07/windows-8-delete-progress-dialog.html' title='Windows 8 - Delete Progress Dialog'/><author><name>Anonymous</name><uri>http://www.blogger.com/profile/15007585885438453864</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/AVvXsEhN1Ebd6zadDicPMSYvO36gd6HfZ8IQq9Gd2EyAVK_omql1RvZd4wTVd11NeE4eujCP4ewM6tcIXbDc98p2qBUU8mr9LUs6W-GXuHgDiCUuTV1wHSfKJYLYNAGa6LLrU5MfGMVWcw3MmDk/s72-c/delete_progress.PNG" height="72" width="72"/><thr:total>0</thr:total></entry></feed>