pig-monkey.com - telephonehttps://pig-monkey.com/2022-11-15T18:41:01-08:00Telephone Armor2022-11-15T00:00:00-08:002022-11-15T18:41:01-08:00Pig Monkeytag:pig-monkey.com,2022-11-15:/2022/11/telephone-armor/<p>I&rsquo;ve never cracked the screen on one of my phones, and I&rsquo;ve always used a screen protector and case. I don&rsquo;t know if those facts are related, or what magic pixie dust gets sprinkled on phone glass these days, but I always feel better after up-armoring my …</p><p>I&rsquo;ve never cracked the screen on one of my phones, and I&rsquo;ve always used a screen protector and case. I don&rsquo;t know if those facts are related, or what magic pixie dust gets sprinkled on phone glass these days, but I always feel better after up-armoring my telephone.</p> <p>For my most recent phone, I landed on <a href="https://www.armorsuit.com/">Armorsuit MilitaryShield</a>. The product name is silly, but somewhere in their marketing I saw a reference to the material being used on helicopter blades. &ldquo;Oh,&rdquo; I thought. &ldquo;It&rsquo;s just helicopter tape for your phone.&rdquo; Now that I was aware that was an option, I couldn&rsquo;t think of a single reason I would not want it. Helicopter tape &ndash; or more specifically <a href="https://en.wikipedia.org/wiki/Paint_protection_film">paint protective film</a> &ndash; is so called because it was developed to prevent abrasion on helicopter blades from small flying debris. I use it on my bike frame. I am told it is often used on racing automobiles. The idea is that it protects whatever surface it is covering from being chipped by debris travelling at high velocity, thus protecting the aerodynamic properties (or stylish paint job) of the smooth surface underneath. When applied to the screen of a telephone, the takeaway is that it is pretty tough.</p> <p>Armorsuit MilitaryShield is offered in matte and clear versions. I bought both. I installed the matte version first because I was curious what that would look like. I find it to be excellent. It diffuses glare, making the screen easier to see outdoors, and doesn&rsquo;t show fingerprints. I think it makes reading text on the screen more comfortable. It makes it look vaguely like an E Ink display.</p> <p>After running the matte protector for about five months, I peeled it off and installed the clear version. Having become accustomed to the matte display, the clear version seemed to be designed specifically to amplify glare and attract greasy fingerprints and cheek marks. I removed it after a couple weeks and reinstalled the same matte protector I had previously removed. It went on just as perfectly the second time as it did the first time.</p> <p>If you do a lot of multimedia editing on your pocket computer, you might not like the diffusion of the matte protector. It makes photos less sharp. But I think it&rsquo;s great.</p> <p>In the subsequent two years after I installed the matte protector for the second time, the upper right hand corner of the protector has unpeeled itself slightly. This happened after I dropped the phone on this corner. The edge of the case absorbed the shock but forced up that bit of the screen protector. I could probably remove the case and try to spray a little soapy water into that corner to reactivate the adhesive, but I haven&rsquo;t bothered. The phone was dropped over a year ago and the corner hasn&rsquo;t peeled back any more in that time.</p> <p><a href="https://www.flickr.com/photos/pigmonkey/52503106969/in/photostream/" title="Telephone Armor"><img src="https://live.staticflickr.com/65535/52503106969_08f537fab2_c.jpg" width="800" height="533" alt="Telephone Armor"></a></p> <p>The case I use for my phone is the unfortunately named <a href="https://www.supcase.com/collections/ub-pro">SUPCASE Unicorn Beetle Pro Case</a>. I dislike its chunkiness. But I like that it has port covers, which were builtin to my previous phone. Port covers keep sand out of the charging port (it&rsquo;s coarse and rough and irritating and it gets everywhere). The Beetle, so-called, consists of two parts. The upper part comes with a terrible glossy screen cover. I addressed this oversight by <a href="https://www.youtube.com/watch?v=ZWdL0Z3VdWE">dropping that part of the case into a pot of not-quite-boiling-water for a minute or so</a>. This softens the glue holding the screen cover to the frame, allowing it to be peeled away cleanly and easily. The result is a pretty alright case, and a great screen cover.</p> <p>The matte protector is approaching its third birthday now. But for the aforementioned slight peeling on one corner, the protector looks like new. There are no scratches or other marks. The screen underneath it is pristine. I pay no mind to tossing the phone into a pocket or bag with keys, knives, or other sharp and scratchy objects. I <a href="/2022/02/tackform-enduro/">expose it to road debris</a> without concern. All is as it should be.</p>A Better Phone Mount2022-02-21T00:00:00-08:002022-11-15T18:23:09-08:00Pig Monkeytag:pig-monkey.com,2022-02-21:/2022/02/tackform-enduro/<p>When I purchased my first smart phone in 2013, I was motivated primarily by the promise of using Open Street Map for bicycle navigation. This does not require, but is greatly assisted by, a mounting system of some sort. I&rsquo;ve tried a few over the years. Since 2015 I …</p><p>When I purchased my first smart phone in 2013, I was motivated primarily by the promise of using Open Street Map for bicycle navigation. This does not require, but is greatly assisted by, a mounting system of some sort. I&rsquo;ve tried a few over the years. Since 2015 I&rsquo;ve used the <a href="https://www.aduroproducts.com/products/u-grip-plus-bike-mount">Aduro U-Grip Plus Universal Bike Mount</a>, which I think is an excellent design. It uses a ball and socket to provide complete adjustability. It secures the phone with a spring-loaded cradle and silicon band. Between the two, there&rsquo;s no way the phone is falling out, unless the mount breaks. Unfortunately the whole thing is cheaply made of plastic. Earlier this month, mine finally broke.</p> <ul class="thumbs"> <li> <a href="https://www.flickr.com/photos/pigmonkey/51897193640/in/dateposted/" title="Aduro U-Grip Plus Universal Bike Mount: Failure"><img src="https://live.staticflickr.com/65535/51897193640_970675f633_n.jpg" width="320" height="240" alt="Aduro U-Grip Plus Universal Bike Mount: Failure"></a> </li> <li> <a href="https://www.flickr.com/photos/pigmonkey/51896542061/in/dateposted/" title="Aduro U-Grip Plus Universal Bike Mount"><img src="https://live.staticflickr.com/65535/51896542061_6159a9f7c6_n.jpg" width="320" height="240" alt="Aduro U-Grip Plus Universal Bike Mount"></a> </li> </ul> <p>After seven years, I feel I got my money&rsquo;s worth out of the Aduro U-Grip, but when a tool like this fails I want to replace it with something better. Purchasing another of the same just resets the countdown to the next failure. Unfortunately, the bicycle phone mount market seems to be flooded with shit. Either they provide limited adjustability, or they require a special phone case. I have no interest in either. I was disappointed, and about to just order another Aduro U-Grip, until I happened upon <a href="https://www.tackform.com/">Tackform</a>. Their <a href="https://www.tackform.com/products/motorcycle-phone-mount">Enduro Mount</a> was advertised for motorcycles, but I figured it ought to work on a real bike.</p> <p><a href="https://www.flickr.com/photos/pigmonkey/51896547601/in/dateposted/" title="Cockpit"><img src="https://live.staticflickr.com/65535/51896547601_fa04bcc8c4_c.jpg" width="800" height="533" alt="Cockpit"></a></p> <p>Tackform&rsquo;s offering is similar in concept to Aduro&rsquo;s, with a ball and socket providing complete adjustability, and phone security provided by a spring-loaded cradle and silicon band. But it raises durability to the extreme. I&rsquo;ve had mine for just a few days. I am impressed.</p> <p>The only plastic component is the wingnut used to lock the position of the cradle. Everything else is metal. The spring that operates the cradle is no joke. It is capable of operating as an improvised finger guillotine. Yet it is quick and easy to operate one-handed. Tackform includes a silicon band for further security, but in the packaging material they say that you really don&rsquo;t need it. I believe they are correct. When it is installed in the cradle, I can lift the bike with the phone. The phone doesn&rsquo;t move at all. It is difficult to imagine a scenario where the phone would escape.</p> <p>The top of the cradle has a lip to prevent the phone from being pulled out straight up. The sides and bottom of the cradle are lined with a thin rubber to provide some protection to the phone. The outer edges of the cradle are quite sharp, which makes me somewhat nervous about a crash. I have no doubt that the mount would come through, and that the phone would still be secured in it, but my face might not fare so well if it comes into contact with the cradle. But, hey, that&rsquo;s what <a href="/2018/11/laser-red/">eye pro</a> is for.</p> <p>The primary disadvantage to the Tackform Enduro is that the arm which connects the cradle to the bar mount is tightened with a single wingnut. To rotate the cradle from portrait to landscape mode, you have to loosen this wingnut, which also loosens the connection to the bar mount. So while the ball and socket connection gives you complete freedom to position the phone as you like, it&rsquo;s the sort of thing where you need to figure out what position you want and then tighten the wingnut to lock it in. You won&rsquo;t leave the wingnut loose enough to allow for adjustments while riding. With the Aduro U-Grip, the socket is part of the cradle, the ball is part of the bar mount, and I was always able to leave the nut which secures the two just loose enough that I could make minor in-flight positioning adjustments without compromising the security of the system. In practice, I have yet to find this limitation with the Tackform to be something I really care about. But if you want to be able to rotate between portrait and landscape modes without stopping and using two hands, look elsewhere.</p> <p>The other disadvantage that some riders will identify is weight. I didn&rsquo;t weigh the components, but what you&rsquo;re dealing with here is basically just a chunk of aluminum. I imagine the whole system is somewhere around 6 oz, which is significantly more than the plastic competitors. If you have much spandex in your wardrobe, you won&rsquo;t be happy with Tackform. But my bike is carefully built for what I see as the ideal compromise between performance and durability, and the Tackform mount makes the cut.</p> <p>Beyond the durability of the system, what endures me to Tackform is that their products really are systems. They are not just selling a few application-specific packages, but have <a href="https://www.tackform.com/collections/enduro-components-20mm">whole series of components</a>. It&rsquo;s like a grown-up Lego set. I appreciate knowing that I could replace an individual component, or buy just the piece I need to expand the mount&rsquo;s applicability to different vehicles or environments.</p> <p>None of Tackform&rsquo;s products are cheap, but they claim that their products are designed to last a lifetime. After the first 100 miles on this mount, I believe that statement will prove accurate. I suspect that the slab-format pocket terminal will be phased out and become irrelevant well before the Tackform Enduro will fail.</p> <p><a href="https://www.flickr.com/photos/pigmonkey/51896893559/in/dateposted/" title="Tackform Enduro Mount"><img src="https://live.staticflickr.com/65535/51896893559_73cda03542_c.jpg" width="800" height="533" alt="Tackform Enduro Mount"></a></p> <p>The mount is manufactured in the country of Taiwan, so get yours before China expands its beachfront property.</p>I find it frustrating that no Android phone seems to ship with a decent file manager.2021-01-04T00:00:00-08:002021-01-04T18:31:01-08:00Pig Monkeytag:pig-monkey.com,2021-01-04:/2021/01/amaze-file-manager/<p>I&rsquo;m not sure how one is expected to use a computer without the ability to view and manipulate the file system. For the past few years I&rsquo;ve solved this problem with <a href="https://github.com/TeamAmaze/AmazeFileManager">Amaze File Manager</a> which is a simple, open source file manager that in a world of sane …</p><p>I&rsquo;m not sure how one is expected to use a computer without the ability to view and manipulate the file system. For the past few years I&rsquo;ve solved this problem with <a href="https://github.com/TeamAmaze/AmazeFileManager">Amaze File Manager</a> which is a simple, open source file manager that in a world of sane defaults would be entirely unremarkable.</p>Managing Android Wifi with Tasker2020-12-27T00:00:00-08:002020-12-27T17:55:27-08:00Pig Monkeytag:pig-monkey.com,2020-12-27:/2020/12/tasker-wifi/<p>One of the earliest programs I installed when I bought my first smartphone in 2013 was <a href="https://web.archive.org/web/20160304051134/https://kismetwireless.net/android-swm/">Kismet&rsquo;s Smarter Wi-Fi Manager</a>. It kept the phone&rsquo;s wireless radio disabled unless I explicitly enabled it and connected to a network. When that happened, it would store the location by identifying nearby …</p><p>One of the earliest programs I installed when I bought my first smartphone in 2013 was <a href="https://web.archive.org/web/20160304051134/https://kismetwireless.net/android-swm/">Kismet&rsquo;s Smarter Wi-Fi Manager</a>. It kept the phone&rsquo;s wireless radio disabled unless I explicitly enabled it and connected to a network. When that happened, it would store the location by identifying nearby cell towers. Whenever it saw those towers again, it would turn the wireless radio on. In all other cases it would keep the radio off. This was a simple solution to the problem of only wanting wifi turned on at known locations, like home and work. It helped save battery, and prevented information leaks when wandering around meatspace.</p> <p>Recently, when setting up a new phone, I discovered that Smarter Wi-Fi Manager had been abandoned. I thought I had heard something about the behaviour being integrated into the latest version of Android, but it seems that is not the case. Fortunately I found that <a href="https://tasker.joaoapps.com/">Tasker</a> can be configured to replicate the behaviour.</p> <p>In Tasker, a profile can be created to recognize a location using <a href="https://tasker.joaoapps.com/userguide/en/loctears.html">a few different means</a>. I setup one profile for home and one for work, both using the &ldquo;cell near&rdquo; context state. Like the Smarter Wi-Fi Manager of old, this just stores the identities of nearby cell towers. Then I created two tasks: one to turn wifi on and one to turn it off. The first task is added to both profiles as the main task. The latter is added to the profiles as the exit task. The result is that when the phone sees the cell towers near my trusted locations, the wireless radio turns on. When I leave, the wireless radio turns off.</p> <div class="highlight"><pre><span></span><code><span class="n">Profile</span><span class="o">:</span><span class="w"> </span><span class="n">Home</span><span class="w"> </span><span class="o">(</span><span class="mi">1</span><span class="o">)</span><span class="w"></span> <span class="w"> </span><span class="n">Restore</span><span class="o">:</span><span class="w"> </span><span class="n">no</span><span class="w"></span> <span class="w"> </span><span class="n">State</span><span class="o">:</span><span class="w"> </span><span class="n">Cell</span><span class="w"> </span><span class="n">Near</span><span class="w"> </span><span class="o">[</span><span class="w"> </span><span class="o">...</span><span class="w"> </span><span class="n">bunch</span><span class="w"> </span><span class="n">o</span><span class="s1">&#39; towers here ... ]</span> <span class="s1"> Enter: Wifi On (4)</span> <span class="s1"> A1: WiFi [ Set:On ]</span> <span class="s1"> Exit: Wifi Off (9)</span> <span class="s1"> A1: WiFi [ Set:Off ]</span> <span class="s1">Profile: Work (2)</span> <span class="s1"> Restore: no</span> <span class="s1"> State: Cell Near [ ... bunch o&#39;</span><span class="w"> </span><span class="n">towers</span><span class="w"> </span><span class="n">here</span><span class="w"> </span><span class="o">...</span><span class="w"> </span><span class="o">]</span><span class="w"></span> <span class="w"> </span><span class="n">Enter</span><span class="o">:</span><span class="w"> </span><span class="n">Wifi</span><span class="w"> </span><span class="n">On</span><span class="w"> </span><span class="o">(</span><span class="mi">4</span><span class="o">)</span><span class="w"></span> <span class="w"> </span><span class="n">A1</span><span class="o">:</span><span class="w"> </span><span class="n">WiFi</span><span class="w"> </span><span class="o">[</span><span class="w"> </span><span class="n">Set</span><span class="o">:</span><span class="n">On</span><span class="w"> </span><span class="o">]</span><span class="w"></span> <span class="w"> </span><span class="n">Exit</span><span class="o">:</span><span class="w"> </span><span class="n">Wifi</span><span class="w"> </span><span class="n">Off</span><span class="w"> </span><span class="o">(</span><span class="mi">9</span><span class="o">)</span><span class="w"></span> <span class="w"> </span><span class="n">A1</span><span class="o">:</span><span class="w"> </span><span class="n">WiFi</span><span class="w"> </span><span class="o">[</span><span class="w"> </span><span class="n">Set</span><span class="o">:</span><span class="n">Off</span><span class="w"> </span><span class="o">]</span><span class="w"></span> </code></pre></div> <p>The task to turn the wireless off is only triggered when I leave the location, which means I can still manually turn the radio on when I am somewhere unknown without Tasker immediately turning it back off. That new location will not automatically be stored as a trusted location, but if I want it to be remembered it only takes a minute to create a new profile and hook it up to my two wifi tasks.</p> <p>I found the Tasker interface to be somewhat confusing. It took me a while to figure out how to achieve my desired behaviour. This is probably because <a href="https://tasker.joaoapps.com/exampleuses.html">Tasker can do a lot of other things</a>. I don&rsquo;t think my phone is integrated enough into my life to make its other capabilities relevant to me (though I might set it up to <a href="https://forum.joaoapps.com/index.php?resources/turn-gps-on-when-in-google-maps-turn-it-off-otherwise-no-root.179/">only enable GPS when mapping applications are open</a>), but I was happy to pay the low price to retake control of my wireless radio.</p>Tracking My Phone Bill with Ledger2020-08-12T00:00:00-07:002020-08-12T20:30:26-07:00Pig Monkeytag:pig-monkey.com,2020-08-12:/2020/08/phone-ledger/<p>Back in 2013 I bought my first smartphone and signed up for a T-Mobile prepaid plan, referred to at the time as the <a href="https://blog.bn.ee/posts/ice-cream-sandwich-for-30month">&ldquo;Walmart Plan&rdquo;</a>. The plan cost $30 per month, was intended for new customers only, and was supposed to only be available to those who purchased the SIM …</p><p>Back in 2013 I bought my first smartphone and signed up for a T-Mobile prepaid plan, referred to at the time as the <a href="https://blog.bn.ee/posts/ice-cream-sandwich-for-30month">&ldquo;Walmart Plan&rdquo;</a>. The plan cost $30 per month, was intended for new customers only, and was supposed to only be available to those who purchased the SIM card at a Walmart. It offered a small amount of voice minutes and a large amount of data, which struck me as what one would want with one of these newfangled computer-phones. I bought a SIM card, figured out how to get T-Mobile to sign me up on the plan despite not stepping foot into a Walmart, and haven&rsquo;t looked back since.</p> <p>One of the things that appeals to me about the setup is the level of separation it gives me from the service provider. I purchased the phone from the manufacturer and the SIM card I bought with cash. I fund the plan by purchasing refill cards from third-party vendors. I have never provided T-Mobile with any financial information. They have no ability to take any money from me, except what I give them when trading in the refill cards. Obviously, the primary business of any mobile communications provider is location tracking, so I can&rsquo;t refer to my relationship with them as &ldquo;privacy preserving&rdquo;, but I like to think it does allow me to retain some level of agency that is lost in a more traditional relationship.</p> <p>If there is a downside to this setup, it is that it can be difficult to understand what I actually pay per month. The plan costs $30. There is some limit to the number of SMS messages, but I have no idea what it is. Data is &ldquo;unlimited&rdquo;, which means throttled over 4GB, but I don&rsquo;t think I&rsquo;ve ever approached even half that limit. Minutes are limited, and if I go over the allotment I&rsquo;m charged a higher rate, but the service continues as long as the balance of the account remains positive.</p> <p>I always want to keep more than $30 in the account, in case I do go over the allotted minutes. So I buy $50 refill cards. They have $50 of value, and are supposed to cost me $50. But the vendor I tend to by them from charges a $1 service fee, offers a points program that sometimes results in a discount being applied, and frequently has sales that offer a couple dollars off. So I end up paying something like $48-51. If I do exceed the limits of the plan, I may end up buying a $50 card one month and the next. More often, I buy a $50 card one month and have enough left over in the account that I do not need to refill it the following month. My plan renews on the 5th of the month, so some months I may end up spending $100 by buying one refill card on the first day of the month and another on the last in anticipation of the following month&rsquo;s renewal.</p> <p>All of that is to say that it is difficult to have an intuitive feel for what my average monthly phone expense is, but it&rsquo;s important that I can get that number so that I can determine if the plan is still working or if I should look for a better offer. Fortunately, this is a thing that <a href="https://www.ledger-cli.org/">Ledger</a> makes extremely simple.</p> <p>Whenever I purchase a refill card, I log the transaction in the <code>Expenses:Utilities:Phone</code> account. With that done, I can ask Ledger to report on all transactions in that account, grouped by month, with a running average in the final column.</p> <div class="highlight"><pre><span></span><code>$ ledger register utilities:phone --monthly --average --begin <span class="m">2019</span>-08 <span class="m">2019</span>-09-01 - <span class="m">2019</span>-09-30 Expenses:Utilities:Phone <span class="nv">$48</span>.50 <span class="nv">$48</span>.50 <span class="m">2019</span>-10-01 - <span class="m">2019</span>-10-31 &lt;None&gt; <span class="m">0</span> <span class="nv">$24</span>.25 <span class="m">2019</span>-11-01 - <span class="m">2019</span>-11-30 Expenses:Utilities:Phone <span class="nv">$46</span>.50 <span class="nv">$31</span>.67 <span class="m">2019</span>-12-01 - <span class="m">2019</span>-12-31 &lt;None&gt; <span class="m">0</span> <span class="nv">$23</span>.75 <span class="m">2020</span>-01-01 - <span class="m">2020</span>-01-31 Expenses:Utilities:Phone <span class="nv">$51</span>.00 <span class="nv">$29</span>.20 <span class="m">2020</span>-02-01 - <span class="m">2020</span>-02-29 &lt;None&gt; <span class="m">0</span> <span class="nv">$24</span>.33 <span class="m">2020</span>-03-01 - <span class="m">2020</span>-03-31 Expenses:Utilities:Phone <span class="nv">$48</span>.50 <span class="nv">$27</span>.79 <span class="m">2020</span>-04-01 - <span class="m">2020</span>-04-30 &lt;None&gt; <span class="m">0</span> <span class="nv">$24</span>.31 <span class="m">2020</span>-05-01 - <span class="m">2020</span>-05-31 Expenses:Utilities:Phone <span class="nv">$48</span>.50 <span class="nv">$27</span>.00 <span class="m">2020</span>-06-01 - <span class="m">2020</span>-06-30 Expenses:Utilities:Phone <span class="nv">$46</span>.50 <span class="nv">$28</span>.95 <span class="m">2020</span>-07-01 - <span class="m">2020</span>-07-31 &lt;None&gt; <span class="m">0</span> <span class="nv">$26</span>.32 <span class="m">2020</span>-08-01 - <span class="m">2020</span>-08-31 Expenses:Utilities:Phone <span class="nv">$51</span>.00 <span class="nv">$28</span>.38 </code></pre></div> <p>Over the past 12 months, I have spent an average of $28.38 per month on phone service. I&rsquo;m ok with that.</p>I use Blokada to reduce the amount of advertisements on my telephone.2019-11-04T00:00:00-08:002019-11-04T19:01:31-08:00Pig Monkeytag:pig-monkey.com,2019-11-04:/2019/11/blokada/<p><a href="https://blokada.org/">Blokada</a> registers itself as a VPN service on the phone so that it can intercept all network traffic. It then downloads filter lists to route the domains of known advertisers, trackers, etc to a black hole, exactly like what I do on my real computer with <a href="https://github.com/pigmonkey/hostsctl">hostsctl</a>. For me it …</p><p><a href="https://blokada.org/">Blokada</a> registers itself as a VPN service on the phone so that it can intercept all network traffic. It then downloads filter lists to route the domains of known advertisers, trackers, etc to a black hole, exactly like what I do on my real computer with <a href="https://github.com/pigmonkey/hostsctl">hostsctl</a>. For me it has had no noticeable impact on battery life. I have found it especially useful when travelling internationally and purchasing cellular plans with small data caps. The only disadvantage I have found is that Blokada must be disabled when I want to connect to a real VPN via WireGuard or OpenVPN.</p> <p>Blokada must be installed <a href="https://f-droid.org/en/packages/org.blokada.alarm/">via F-Droid</a> (or directly through the APK) because Google frowns upon blocking advertisements (but at least Google allows you to install software on your telephone outside of their walled garden, <a href="https://en.wikipedia.org/wiki/HKmap.live#iOS_app">unlike their competitor</a>).</p>I published the repository for my mobile weather solution.2019-07-03T00:00:00-07:002019-11-04T19:01:49-08:00Pig Monkeytag:pig-monkey.com,2019-07-03:/2019/07/geoweather/<p>Find it at <a href="https://github.com/pigmonkey/geoweather">geoweather</a>. I&rsquo;ve added support for <a href="https://www.windy.com">Windy</a>, but otherwise it is <a href="/2019/01/mobile-weather/">the same as it was back in January</a>.</p>Mobile Weather2019-01-09T00:00:00-08:002019-07-03T00:00:00-07:00Pig Monkeytag:pig-monkey.com,2019-01-09:/2019/01/mobile-weather/<p><a href="https://www.nytimes.com/2019/01/03/technology/weather-channel-app-lawsuit.html">Los Angeles is suing The Weather Channel for selling the data of mobile users</a>. This behaviour shouldn&rsquo;t be surprising. Most mobile software, from the operating system on up, seems to exist primarily to provide some base modicum of functionality in exchange for the privilege of fucking you in new …</p><p><a href="https://www.nytimes.com/2019/01/03/technology/weather-channel-app-lawsuit.html">Los Angeles is suing The Weather Channel for selling the data of mobile users</a>. This behaviour shouldn&rsquo;t be surprising. Most mobile software, from the operating system on up, seems to exist primarily to provide some base modicum of functionality in exchange for the privilege of fucking you in new and exciting ways.</p> <p>There are exceptions to the rule. I starting using <a href="http://www.arcusweather.com">Arcus</a> for mobile weather in 2014, and it seems pretty respectable. But it exists solely to display data from the <a href="https://darksky.net/dev">Dark Sky API</a>, which is something that a web browser is also capable of doing, thus raising the question: why install anything?</p> <p>About a month ago I simply bookmarked <a href="https://darksky.net/">Dark Sky</a>&lsquo;s website and had <a href="https://www.mozilla.org/en-US/firefox/mobile/">Firefox</a> add a shortcut to that bookmark on my home screen. Dark Sky&rsquo;s website is responsive, so it works fine in any viewport size. I bookmarked the URL for my home location, allowing me to see weather at home in a single tap. Elsewhere, it required two taps: one tap to open the bookmark, and one tap on their geolocation icon to get the correct forecast for my current location.</p> <p>I find Dark Sky&rsquo;s data to be great for reporting on the hyper-local now. For reports that are wider in scope &ndash; either in terms of time or space &ndash; nothing beats the <a href="https://www.weather.gov/">National Weather Service</a>. They provide a <a href="https://mobile.weather.gov/">mobile specific site</a> that is perfectly usable on small viewports. Annoyingly, they don&rsquo;t make use of the <a href="https://developer.mozilla.org/en-US/docs/Web/API/Geolocation_API">web geolocation API</a>, instead requiring users to manually enter a location. When travelling I may not know what zip code I&rsquo;m in or have a nearby address. To work around this I created a shim with a few lines of Javascript that geolocates the user, uses the resulting coordinates to build the proper NWS URL, and redirects the user to that URL. I also added support for building a Dark Sky URL so that I could avoid that second tap when not at home. The resulting HTML page <a href="https://github.com/pigmonkey/geoweather/">is available on GitHub</a>.</p> <p>Now I have two URLs bookmarked on my home screen that accomplish everything I need: <a href="https://havenaut.net/weather/">one for NWS</a> and <a href="https://havenaut.net/weather/?darksky">one for Dark Sky</a>.</p> <p>Shortly after creating this shim I discovered that the NWS has a <a href="https://forecast-v3.weather.gov/">beta website</a> that is intended to replace both the current mobile and standard sites with a consistent interface. This site does make use of the geolocation API, requiring the user to click an icon to get the current location. It is unclear why they have yet to deploy this to their main domain. It&rsquo;s been <a href="http://www.nws.noaa.gov/os/notification/scn16-55forecast_govaae.htm">available since August 2017</a> and the <a href="https://forecast-v3.weather.gov/point/37.7602,-122.3941">data on the beta site</a> seems to be the same as the <a href="https://forecast.weather.gov/MapClick.php?lat=37.76022&amp;lon=-122.3941">data on the standard site</a> and the <a href="https://mobile.weather.gov/index.php?lat=37.76022&amp;lon=-122.3941">data on the mobile site</a>. For now I&rsquo;m sticking with the officially supported domains in my shim.</p> <p>A locally installed weather program is useful if your requirements include lock screen widgets or notifications of hazardous conditions. Mine do not. These two bookmarks provide all the weather information I need on my telephone, and do so in a way that does not expand my attack surface in the way installing software does. They are indicative of the usefulness of this <a href="https://en.wikipedia.org/wiki/World_Wide_Web">World Wide Web</a> thing &ndash; an emerging technology that I intend to watch with great interest. I think it&rsquo;ll go places.</p>I track disasters via RSOE EDIS.2018-12-01T00:00:00-08:002019-11-04T19:02:10-08:00Pig Monkeytag:pig-monkey.com,2018-12-01:/2018/12/rsoe-edis/<p>Operated by the <a href="http://www.rsoe.hu">Hungarian National Association of Radio Distress-Signalling and Infocommunications</a> (RSOE), the <a href="http://hisz.rsoe.hu/">Emergency and Disaster Information Service</a> (EDIS) collects disaster information from around the globe, and disseminates it using the <a href="https://en.wikipedia.org/wiki/Common_Alerting_Protocol">Common Alerting Protocol</a>. They offer the data via <a href="http://hisz.rsoe.hu/alertmap/index2.php">web map</a>, <a href="http://hisz.rsoe.hu/alertmap/database/?pageid=about_email">email</a>, <a href="http://hisz.rsoe.hu/alertmap/database/?pageid=about_rss">RSS</a>, and <a href="https://play.google.com/store/apps/details?id=org.rsoe.android.edis_pms">Android application</a> (an <a href="https://hisz.rsoe.hu/">API</a> is also …</p><p>Operated by the <a href="http://www.rsoe.hu">Hungarian National Association of Radio Distress-Signalling and Infocommunications</a> (RSOE), the <a href="http://hisz.rsoe.hu/">Emergency and Disaster Information Service</a> (EDIS) collects disaster information from around the globe, and disseminates it using the <a href="https://en.wikipedia.org/wiki/Common_Alerting_Protocol">Common Alerting Protocol</a>. They offer the data via <a href="http://hisz.rsoe.hu/alertmap/index2.php">web map</a>, <a href="http://hisz.rsoe.hu/alertmap/database/?pageid=about_email">email</a>, <a href="http://hisz.rsoe.hu/alertmap/database/?pageid=about_rss">RSS</a>, and <a href="https://play.google.com/store/apps/details?id=org.rsoe.android.edis_pms">Android application</a> (an <a href="https://hisz.rsoe.hu/">API</a> is also available, though keys are apparently restricted to government organizations). There is a <a href="http://hisz.rsoe.hu/alertmap/database/?pageid=about_icons">wide range of &ldquo;disasters&rdquo;</a> included, but the normalized protocol supports filtering the events based on criteria such as scope, severity, and urgency. I use the Android application, configured to only show emergency-level alerts.</p> <p>For earthquakes, I supplement RSOE EDIS with the <a href="https://earthquake.usgs.gov/ens/">USGS Earthquake Notification Service</a>, which provides regional-based subscriptions. I subscribe to email alerts for earthquakes greater than 6.0 for all of the US, and greater than 4.0 for my local area.</p>Breaking News2016-07-22T00:00:00-07:002019-11-04T19:02:24-08:00Pig Monkeytag:pig-monkey.com,2016-07-22:/2016/07/breaking/<p>In the past I&rsquo;ve struggled to find a way to be alerted to breaking news, were &ldquo;breaking news&rdquo; is defined as things that matter<sup class="footnote-ref" id="fnref:matter"><a rel="footnote" href="#fn:matter" title="see footnote">1</a></sup>.</p> <p>For some time, <a href="https://play.google.com/store/apps/details?id=com.scannerradio_pro&amp;hl=en">Scanner Radio Pro</a> was my preferred solution. The Android application uses <a href="http://www.broadcastify.com/">Broadcastify</a> to stream feeds of police and EMS radio (among …</p><p>In the past I&rsquo;ve struggled to find a way to be alerted to breaking news, were &ldquo;breaking news&rdquo; is defined as things that matter<sup class="footnote-ref" id="fnref:matter"><a rel="footnote" href="#fn:matter" title="see footnote">1</a></sup>.</p> <p>For some time, <a href="https://play.google.com/store/apps/details?id=com.scannerradio_pro&amp;hl=en">Scanner Radio Pro</a> was my preferred solution. The Android application uses <a href="http://www.broadcastify.com/">Broadcastify</a> to stream feeds of police and EMS radio (among other sources). While a police scanner is always a good thing to have, the application is relevant here because of its notification support. It will push notifications when a channel has a certain number of users listening to it. The application default threshold is 3500 listeners for all channels, but it also allows you to configure per-channel thresholds. I set the threshold to 200 listeners for San Francisco police and EMS channels. I also have the threshold set to 200 for any station within 50 miles of my current location. Those two are redundant when I&rsquo;m in San Francisco, but it means that if I&rsquo;m travelling I&rsquo;ll receive alerts for wherever I am, and I&rsquo;ll be able to stay up to date on what&rsquo;s happening back in the city.</p> <p>The alerts simply tell me that a large number of people are listening to a certain channel, which indicates that something is probably going on in that location. It doesn&rsquo;t tell me what is happening, but prompts me to figure that out for myself. When <a href="https://en.wikipedia.org/wiki/2016_shooting_of_Dallas_police_officers">the shooting started in Dallas a couple weeks ago</a>, I was alerted immediately that something was happening due to the unusually high number of people listening to the Dallas PD channel. When I saw that, I performed a quick search for Dallas news and discovered the reason.</p> <p>I&rsquo;ve had good success with these alerts. It has worked well for shootings like in Dallas. The alerts kept me informed of disruptions in the area this past winter when the Super Bowl was in town. Unfortunately, most of the Broadcastify feeds and listeners are US-focused, so it tends not to help with events outside of the country. There were no alerts for <a href="https://en.wikipedia.org/wiki/2016_Nice_attack">the attack in Nice, France</a>.</p> <p>More recently I&rsquo;ve begun supplementing Scanner Radio Pro with the conveniently named <a href="http://www.breakingnews.com/">Breaking News</a>. They are basically a modern wire service, collating data from traditional news sources, social media channels like Twitter, and direct user submissions. Human editors manage the service, which does seem to take care of some of the cruft. Events are grouped into topics, and topics can be muted or subscribed to. Their mobile application supports push notifications for global major stories, as well as stories based on geographic proximity to the device&rsquo;s current location.</p> <p>I&rsquo;ve noticed that the application does have an impact on my battery (even with the &ldquo;battery saver&rdquo; option enabled), but I think it&rsquo;s worth it for the service provided. They provide alerts for a wider breadth of topics than the police scanner, and provide immediate context for the alert. If they provide an alert for an event that I don&rsquo;t care about, I can mute the topic and never hear about it again. It&rsquo;s rare that I need to do this, as they seem judicious in their use of push notifications.</p> <p>Scanner Radio Pro and the Breaking News application live on the home screen of my phone in a directory labelled &ldquo;Intelligence&rdquo;. Along with applications like <a href="/2016/02/radar/">Flightradar24</a> and <a href="http://www.marinetraffic.com/">Marine Traffic</a> (like Flightradar24 but for boats), they help provide context for and build awareness of the world around me.</p> <div id="footnotes"> <h2>Notes</h2> <ol> <li id="fn:matter"><a rev="footnote" href="#fnref:matter" class="footnote-return" title="return to article">&crarr;</a> Not celebrities. Not sports.</li> </ol> </div>I use BRouter for offline bicycle navigation.2016-02-07T00:00:00-08:002019-11-04T19:02:36-08:00Pig Monkeytag:pig-monkey.com,2016-02-07:/2016/02/brouter/<p><a href="http://brouter.de/brouter/">BRouter</a> is <a href="https://github.com/abrensch/brouter">open source</a> navigation software built on <a href="http://www.openstreetmap.org/">OpenStreetMap</a>, intended primarily for bicycle routing. It offers both <a href="http://brouter.de/brouter-web/">web</a> and <a href="https://play.google.com/store/apps/details?id=btools.routingapp">Android</a> versions. The Android version calculates routes as GPX tracks, which are then fed into a mapping application. My preferred OpenStreetMap application, <a href="http://osmand.net/">OsmAnd</a>, supports BRouter as its navigation back-end. OsmAnd allows …</p><p><a href="http://brouter.de/brouter/">BRouter</a> is <a href="https://github.com/abrensch/brouter">open source</a> navigation software built on <a href="http://www.openstreetmap.org/">OpenStreetMap</a>, intended primarily for bicycle routing. It offers both <a href="http://brouter.de/brouter-web/">web</a> and <a href="https://play.google.com/store/apps/details?id=btools.routingapp">Android</a> versions. The Android version calculates routes as GPX tracks, which are then fed into a mapping application. My preferred OpenStreetMap application, <a href="http://osmand.net/">OsmAnd</a>, supports BRouter as its navigation back-end. OsmAnd allows me to configure the frequency, repetition and units of instructions. I use <a href="https://play.google.com/store/apps/details?id=com.ivona.tts">Ivona TTS</a> with the <a href="https://play.google.com/store/apps/details?id=com.ivona.tts.voicebeta.eng.gbr.amy">UK voice</a>, which I think sounds more natural than either the Ivona US voice or Google&rsquo;s TTS offerings. In sum, this gives me accurate, offline navigation, tuned to my method of travel, anywhere on the planet, with superior maps to traditional commercial offerings.</p> <p><a data-flickr-embed="true" href="https://www.flickr.com/photos/pigmonkey/24857347606/in/dateposted/" title="OsmAnd / BRouter"><img src="https://farm2.staticflickr.com/1607/24857347606_564b29bd05_c.jpg" width="800" height="534" alt="OsmAnd / BRouter"></a></p> <p>Carry a towel and don&rsquo;t panic.</p>Watch the Sky2016-02-04T00:00:00-08:002019-11-04T19:02:53-08:00Pig Monkeytag:pig-monkey.com,2016-02-04:/2016/02/radar/<p>I learned about <a href="https://www.flightradar24.com">Flighradar24</a> last year. They offer a live flight radar, using <a href="https://www.flightradar24.com/how-it-works">data provided by ADS-B on top of Google Maps</a>.</p> <p>Immediately after the <a href="https://en.wikipedia.org/wiki/2015_San_Bernardino_attack">San Bernadino shooting</a> in December, a Cessna 182 with the registration number <a href="http://www.flightradar24.com/data/airplanes/n404kr/">N404KR</a> flew circles around the area for hours. This plane is <a href="http://www.aviationdb.com/Aviation/Aircraft/4/N404KR.shtm">registered to …</a></p><p>I learned about <a href="https://www.flightradar24.com">Flighradar24</a> last year. They offer a live flight radar, using <a href="https://www.flightradar24.com/how-it-works">data provided by ADS-B on top of Google Maps</a>.</p> <p>Immediately after the <a href="https://en.wikipedia.org/wiki/2015_San_Bernardino_attack">San Bernadino shooting</a> in December, a Cessna 182 with the registration number <a href="http://www.flightradar24.com/data/airplanes/n404kr/">N404KR</a> flew circles around the area for hours. This plane is <a href="http://www.aviationdb.com/Aviation/Aircraft/4/N404KR.shtm">registered to OBR Leasing</a>, which is <a href="https://www.techdirt.com/articles/20150602/10125531189/ap-uncovers-more-than-100-fbi-spy-plane-flights-originating-shell-companies-located-virginia.shtml">one of the shell companies the FBI uses for surveillance</a>. The ability to observe these types of flights is interesting, and sometimes useful.</p> <p>The airspace above San Francisco is usually fairly dead. From what I&rsquo;ve seen, most commercial jets heading in and out of SFO or OAK avoid flying directly over the city. This week I&rsquo;ve been watching the radar more frequently than usual. With the Super Bowl in town, I assumed there would be more interesting traffic. I use the radar to look for suspicious flights, which to me means smaller craft with circular paths.</p> <p><img src="https://i.imgur.com/644jXAK.png" width="800" alt="N2462G flight path"></p> <p><a href="https://www.flightradar24.com/data/airplanes/n2462g">N2462G</a> has what must be a mind-numbingly boring job. Every day, the Cessna 206 takes off from the Concord area (possibly <a href="https://en.wikipedia.org/wiki/Buchanan_Field_Airport">Buchanan</a>) and flies circles around the Embarcadero and Treasure Island. The aircraft is <a href="http://www.aviationdb.com/Aviation/Aircraft/2/N2462G.shtm">registered</a> to an <a href="http://wingedvision.com">aerial sports broadcasting company</a>, so I assume they&rsquo;re just shooting footage of <a href="http://www.sfbaysuperbowl.com/super-bowl-city">Super Bowl City</a>.</p> <p>More interesting are the government flights. Today during lunch I watched <a href="https://www.flightradar24.com/data/airplanes/n6241l/#8b9f200">N6241L</a>. The Beech Super King took off from Mountain View, flew up the coast, and made circles around the Golden Gate. A quick search showed this to be <a href="http://www.aviationdb.com/Aviation/Aircraft/6/N6241L.shtm">registered to the Department of Homeland Security</a>. The radar isn&rsquo;t limited to fixed wing craft. <a href="https://www.flightradar24.com/data/airplanes/n3933a/#8ba0ed3">N3933A</a>, a Eurocopter Squirrel also <a href="http://www.aviationdb.com/Aviation/Aircraft/3/N3933A.shtm">registered to DHS</a>, was flying down the coast at about the same time.</p> <p><img src="https://i.imgur.com/lMGqrfF.png" width="800" alt="N6241L flight path"></p> <p>There are of course flights that don&rsquo;t show up on the radar, but the service provides an idea of what&rsquo;s going on in the sky. I think the <a href="https://play.google.com/store/apps/details?id=com.flightradar24pro&amp;hl=en">Android application</a> is a good buy. Combined with a <a href="https://play.google.com/store/apps/details?id=com.scannerradio_pro&amp;hl=en">police scanner</a>, you can begin to turn a smartphone into a mobile intelligence gathering toolkit. It is useful for locating excitement, whether you&rsquo;re trying to avoid it, get into it, or just be aware of it.</p>Antisocial Activity Tracking2015-08-04T00:00:00-07:002019-11-04T19:03:06-08:00Pig Monkeytag:pig-monkey.com,2015-08-04:/2015/08/gpx/<p>A GPS track provides useful a useful log of physical activities. Beyond simply recording a route, the series of coordinate and time mappings allow statistics like distance, speed, elevation, and time to be calculated. I recently decided that I wanted to start recording this information, but I was not interested …</p><p>A GPS track provides useful a useful log of physical activities. Beyond simply recording a route, the series of coordinate and time mappings allow statistics like distance, speed, elevation, and time to be calculated. I recently decided that I wanted to start recording this information, but I was not interested in any of the plethora of social, cloud-based services that are hip these days. A simple <a href="https://en.wikipedia.org/wiki/GPS_eXchange_Format">GPX track</a> gives me all the information I care about, and I don&rsquo;t have a strong desire to share them with a third party provider or a social network.</p> <h2>Recording Tracks</h2> <p>The discovery of <a href="http://code.mendhak.com/gpslogger/">GPSLogger</a> is what made me excited to start this project. A simple but powerful Android application, GPSLogger will log to a number of different formats and, when a track is complete, automatically distribute it. This can be done by uploading the file to a storage provider, emailing it, or posting it to a custom URL. It always logs in metric units but optionally displays in Imperial.</p> <p>What makes GPSLogger really stand out are its performance features. It allows very fine-grained control over GPS use, which allows tracks to be recorded for extended periods of times (such as days) with a negligible impact on battery usage.</p> <p>For activities like running, shorter hikes and bicycle rides I tend to err on the side of accuracy. I set GPSLogger to log a coordinate every 10 seconds, with a minimum distance of 5 meters between points and a minimum accuracy of 10 meters. It will try to get a fix for 120 seconds before timing out, and attempt to meet the accuracy requirement for 60 seconds before giving up.</p> <p>For a longer day-hike, the time between points could be increased to something in the neighborhood of 60 seconds. For a multi-day backpacking trip, a setting of 10 minutes or more would still provide great enough accuracy to make for a useful record of the route. I&rsquo;ve found that being able to control these settings really opens up a lot of tracking possibilities that I would otherwise not consider for fear of battery drain.</p> <p><a data-flickr-embed="true" href="https://www.flickr.com/photos/pigmonkey/20116407608/in/dateposted/" title="GPSLogger"><img src="https://farm1.staticflickr.com/549/20116407608_bafd5c9a3a_c.jpg" width="800" height="534" alt="GPSLogger"></a></p> <h2>Storing Tracks</h2> <p>After a track has been recorded, I transfer it to my computer and store it with <a href="https://git-annex.branchable.com/">git-annex</a>.</p> <p>Everything in my home directory that is not a temporary file is stored either in git or git-annex. By keeping my tracks in an annex rather than directly in git, I can take advantage of git-annex&rsquo;s powerful <a href="https://git-annex.branchable.com/metadata/">metadata</a> support. GPSLogger automatically names tracks with a time stamp, but the annex for my tracks is also configured to <a href="https://git-annex.branchable.com/tips/automatically_adding_metadata/">automatically set the year and month when adding files</a>.</p> <div class="highlight"><pre><span></span><code>$ <span class="nb">cd</span> ~/tracks $ git config annex.genmetadata <span class="nb">true</span> </code></pre></div> <p>After moving a track into the annex, I&rsquo;ll tag it with a custom <code>activity</code> field, with values like <code>run</code>, <code>hike</code>, or <code>bike</code>.</p> <div class="highlight"><pre><span></span><code>$ git annex metadata --set <span class="nv">activity</span><span class="o">=</span>bike <span class="m">20150725110839</span>.gpx </code></pre></div> <p>I also find it useful to tag tracks with a gross location value so that I can get an idea of where they were recorded without loading them on a map. Counties tend to work well for this.</p> <div class="highlight"><pre><span></span><code>$ git annex metadata --set <span class="nv">county</span><span class="o">=</span>sanfrancisco <span class="m">20150725110839</span>.gpx </code></pre></div> <p>Of course, a track may span multiple counties. This is easily handled by git-annex.</p> <div class="highlight"><pre><span></span><code>$ git annex metadata --set <span class="nv">county</span><span class="o">+=</span>marin <span class="m">20150725110839</span>.gpx </code></pre></div> <p>One could also use fields to store location values such as National Park, National Forest or Wilderness Area.</p> <h3>Metadata Views</h3> <p>The reason for storing metadata is the ability to use <a href="https://git-annex.branchable.com/tips/metadata_driven_views/">metadata driven views</a>. This allows me to alter the directory structure of the annex based on the metadata. For instance, I can tell git-annex to show me all tracks grouped by year followed by activity.</p> <div class="highlight"><pre><span></span><code>$ git annex view <span class="s2">&quot;year=*&quot;</span> <span class="s2">&quot;activity=*&quot;</span> $ tree -d . └── <span class="m">2015</span> ├── bike ├── hike └── run </code></pre></div> <p>Or, I could ask to see all the runs I went on this July.</p> <div class="highlight"><pre><span></span><code>$ git annex view <span class="nv">year</span><span class="o">=</span><span class="m">2015</span> <span class="nv">month</span><span class="o">=</span><span class="m">07</span> <span class="nv">activity</span><span class="o">=</span>run </code></pre></div> <p>I&rsquo;ve found this to be a super powerful tool. It gives me the simplicity and flexibility of storing the tracks as plain-text on the filesystem, with some of the querying possibilities of a database. Its usefulness is only limited by the metadata stored.</p> <h2>Viewing Tracks</h2> <p>For simple statistics, I&rsquo;ll use the <code>gpxinfo</code> command provided by <a href="https://github.com/tkrajina/gpxpy">gpxpy</a>. This gives me the basics of time, distance and speed, which is generally all I care about for something like a weekly run.</p> <div class="highlight"><pre><span></span><code>$ gpxinfo <span class="m">20150725110839</span>.gpx File: <span class="m">20150725110839</span>.gpx Length 2D: <span class="m">6</span>.081km Length 3D: <span class="m">6</span>.123km Moving time: <span class="m">00</span>:35:05 Stopped time: n/a Max speed: <span class="m">3</span>.54m/s <span class="o">=</span> <span class="m">12</span>.74km/h Total uphill: <span class="m">96</span>.50m Total downhill: <span class="m">130</span>.50m Started: <span class="m">2015</span>-07-25 <span class="m">18</span>:08:45 Ended: <span class="m">2015</span>-07-25 <span class="m">18</span>:43:50 Points: <span class="m">188</span> Avg distance between points: <span class="m">32</span>.35m Track <span class="c1">#0, Segment #0</span> Length 2D: <span class="m">6</span>.081km Length 3D: <span class="m">6</span>.123km Moving time: <span class="m">00</span>:35:05 Stopped time: n/a Max speed: <span class="m">3</span>.54m/s <span class="o">=</span> <span class="m">12</span>.74km/h Total uphill: <span class="m">96</span>.50m Total downhill: <span class="m">130</span>.50m Started: <span class="m">2015</span>-07-25 <span class="m">18</span>:08:45 Ended: <span class="m">2015</span>-07-25 <span class="m">18</span>:43:50 Points: <span class="m">188</span> Avg distance between points: <span class="m">32</span>.35m </code></pre></div> <p>For a more detailed inspection of the tracks, I opt for <a href="http://sourceforge.net/projects/viking/">Viking</a>. This allows me to load the tracks and view the route on a OpenStreetMap map (or any number of other map layers, such as USGS quads or Bing aerial photography). It includes all the detailed statistics you could care about extracting from a GPX track, including pretty charts of elevation, distance, time and speed.</p> <p>If I want to view the track on my phone before I&rsquo;ve transferred it to my computer, I&rsquo;ll load it in either <a href="http://backcountrynavigator.com/">BackCountry Navigator</a> or <a href="http://osmand.net/">OsmAnd</a>, depending on what kind of map layers I am interested in seeing. For simply viewing the statistics of a track on the phone, I go with <a href="https://play.google.com/store/apps/details?id=com.mendhak.gpsvisualizer">GPS Visualizer</a> (by the same author as GPSLogger).</p>