<?xml version="1.0" encoding="UTF-8"?><rss version="2.0" xmlns:content="http://purl.org/rss/1.0/modules/content/">
  <channel>
    <title>dominicDS</title>
    <link>https://dominicds.com/</link>
    <description>always learning</description>
    <pubDate>Mon, 06 Apr 2026 20:54:48 +0000</pubDate>
    <item>
      <title>Network Scanner</title>
      <link>https://dominicds.com/network-scanner?pk_campaign=rss-feed</link>
      <description>&lt;![CDATA[A simple Raspberry Pi-based system that scans for networks in the local area and records their location.&#xA;&#xA;!--more--&#xA;&#xA;The build&#xA;I installed Kismet, a network analysis and monitoring package, on a Raspberry Pi 3 with a GPS receiver and external Wifi antenna, powered by a 20,000 mAh USB battery (it also has a long-range Bluetooth antenna, but that&#39;s not relevant for this project).&#xA;&#xA;I packaged it into a padded case for portability.&#xA;&#xA;The trip&#xA;&#xA;The scanner traveled a few hundred miles on I95 and recorded every network it saw. I ended up with a 6.3MB CSV file contiaining 57,604 total data points.&#xA;&#xA;During the trip, the scanner identified:&#xA;10,637 devices with unique MAC addresses&#xA;5,563 unique SSIDs (wireless network names)&#xA;2,956 devices broadcasting an empty SSID&#xA;&#xA;Network name analysis&#xA;&#xA;806 network names contained some form of &#39;Spectrum&#39;&#xA;229 &#39;Verizon&#39;&#39;&#xA;101 &#39;FiOS&#39;&#xA;63 networks with &#39;xfinity&#39; in their name&#xA;36 named &#39;myChevrolet&#39;&#xA;&#xA;Best names&#xA;Based on no metric other than my personal preference, these were the best wifi network names:&#xA;&#xA;Keep It On The Download&#xA;Everyday I&#39;m Buffering&#xA;The LAN Before Time&#xA;The WiFi That Never Was&#xA;Router? I hardly know her!&#xA;What is Dead May Never WIFI&#xA;I believe Wi can Fi&#xA;Wi Believe I Can Fi&#xA;My name is WiFigo Montoya&#xA;MUTT FACE&#xA;GoodWillHuntingforWifi - 2G&#xA;exactly what youre looking for&#xA;I identify as smart &#xA;I&#39;m not a witch I&#39;m your wifi&#xA;is this the krusty krab&#xA;&#xA;Most-repeated joke SSIDs&#xA;&#xA; Government network:&#xA;&#x9; CIA  surveillance team&#xA;&#x9; DEA Surveillance&#xA;&#x9; DefinitelyNotTheNSA&#xA;&#x9; Def Not a FBI Surveillance Van.&#xA;&#x9; FBI Mobile Van&#xA;&#x9; FBIsurrveillancevan1&#xA;&#x9; FBI Surveillance&#xA;&#x9; FBI Surveillance Van&#xA;&#x9; FBI\Surveillance\Van&#xA;&#x9; FBI Van&#xA;&#x9; FBI Van 33&#xA;&#x9; NSA Hub&#xA;&#x9; police surveillance van 2.5&#xA; This excellent pun&#xA;&#x9; Pretty Fly for a Wifi&#xA;&#x9; Pretty Fly for a WiFi&#xA;&#x9; PRETTY FLY FOR A WIFI&#xA;&#x9; PrettyFlyForAWifi&#xA;&#x9; prettyFlyForAWifi24&#xA; Jedi mind trick&#xA;&#x9; NotTheWiFiYouAreLookingFor&#xA;&#x9; Not your moms internet&#xA;&#x9; NotYourNetwork&#xA;&#x9; not your network 2.4&#xA;&#xA;Honorable mentions&#xA;&#xA; Dont Try Me&#xA; Eat a dick&#xA; eat me&#xA; eatmyshorts&#xA; FckThaPolice&#xA; FUCKBIDEN&#xA; Fuck You&#xA; Fuq around and find out&#xA; I miss Tito Francona&#xA; imkingofmycastle&#xA; LAN down under&#xA; networkname&#xA; networknotfound&#xA; ninetynineproblemsbutwifiaintone&#xA; No LAN for the wicked&#xA; PurWifi My Love&#xA; Rebellious Amish Family&#xA; Stop using free wifi&#xA; Taliban Headquarters &#xA;&#xA;Other Take-aways&#xA;&#xA; I guess lots of cars have their own Wifi hotspots these days (&#34;myChevrolet&#34;, &#34;myGMC&#34;, &#34;Audi_MMI&#34;, &#34;My VW&#34;, and others).&#xA; Kismet is very cool, I can&#39;t wait to use it more. This project only used a tiny bit of its functionality, but as a passive network monitor tool, Kismet is incredibly powerful.&#xA; My Raspberry Pi can run and collect data for more than 12 hours on a 20,000 mAh battery (should be no surprise).&#xA; Google Earth Pro absolutely cannot handle importing my wiglecsv data with 57.6k entries (including tons of duplicates when the tracker sat in the same place for a long time). The entire program grinds to a halt if I&#39;m too far zoomed out. QGIS, on the other hand, didn&#39;t really struggle with the data size, but it has a much less appealing default presentation.&#xA;&#xA;]]&gt;</description>
      <content:encoded><![CDATA[<p>A simple Raspberry Pi-based system that scans for networks in the local area and records their location.</p>

<p><img src="https://i.snap.as/YoJzKV62.jpg" alt=""/></p>



<p><img src="https://i.snap.as/rrRF6Jff.png" alt=""/></p>

<h2 id="the-build" id="the-build"><strong>The build</strong></h2>

<p>I installed <a href="https://www.kismetwireless.net/">Kismet</a>, a network analysis and monitoring package, on a Raspberry Pi 3 with a GPS receiver and external Wifi antenna, powered by a 20,000 mAh USB battery (it also has a long-range Bluetooth antenna, but that&#39;s not relevant for this project).
<img src="https://i.snap.as/KALO9eEJ.jpg" alt=""/></p>

<p>I packaged it into a padded case for portability.
<img src="https://i.snap.as/wWErPak1.jpg" alt=""/></p>

<h2 id="the-trip" id="the-trip"><strong>The trip</strong></h2>

<p>The scanner traveled a few hundred miles on I95 and recorded every network it saw. I ended up with a 6.3MB CSV file contiaining 57,604 total data points.
<img src="https://i.snap.as/qZpc4CBU.png" alt=""/></p>

<p>During the trip, the scanner identified:
– 10,637 devices with unique MAC addresses
– 5,563 unique SSIDs (wireless network names)
– 2,956 devices broadcasting an empty SSID</p>

<h2 id="network-name-analysis" id="network-name-analysis">Network name analysis</h2>

<p><img src="https://i.snap.as/btr2Ebvb.png" alt=""/></p>
<ul><li>806 network names contained some form of &#39;Spectrum&#39;</li>
<li>229 &#39;Verizon&#39;&#39;</li>
<li>101 &#39;FiOS&#39;</li>
<li>63 networks with &#39;xfinity&#39; in their name</li>
<li>36 named &#39;myChevrolet&#39;</li></ul>

<h3 id="best-names" id="best-names">Best names</h3>

<p>Based on no metric other than my personal preference, these were the best wifi network names:</p>
<ul><li><strong>Keep It On The Download</strong></li>
<li><strong>Everyday I&#39;m Buffering</strong></li>
<li><strong>The LAN Before Time</strong></li>
<li><strong>The WiFi That Never Was</strong></li>
<li><strong>Router? I hardly know her!</strong></li>
<li><strong>What is Dead May Never WIFI</strong></li>
<li><strong>I believe Wi can Fi</strong></li>
<li><strong>Wi Believe I Can Fi</strong></li>
<li><strong>My name is WiFigo Montoya</strong></li>
<li><strong>MUTT FACE</strong></li>
<li><strong>GoodWillHuntingforWifi – 2G</strong></li>
<li><strong>exactly what youre looking for</strong></li>
<li><strong>I identify as smart</strong></li>
<li><strong>I&#39;m not a witch I&#39;m your wifi</strong></li>
<li><strong>is this the krusty krab</strong></li></ul>

<h3 id="most-repeated-joke-ssids" id="most-repeated-joke-ssids">Most-repeated joke SSIDs</h3>
<ul><li><strong>Government network</strong>:
<ul><li>CIA  surveillance team</li>
<li>DEA Surveillance</li>
<li>DefinitelyNotTheNSA</li>
<li>Def Not a FBI Surveillance Van.</li>
<li>FBI Mobile Van</li>
<li>FBIsurrveillancevan1</li>
<li>FBI Surveillance</li>
<li>FBI Surveillance Van</li>
<li>FBI_Surveillance_Van</li>
<li>FBI Van</li>
<li>FBI Van 33</li>
<li>NSA Hub</li>
<li>police surveillance van 2.5</li></ul></li>
<li><strong>This excellent pun</strong>
<ul><li>Pretty Fly for a Wifi</li>
<li>Pretty Fly for a WiFi</li>
<li>PRETTY FLY FOR A WIFI</li>
<li>PrettyFlyForAWifi</li>
<li>prettyFlyForAWifi2_4</li></ul></li>
<li><strong>Jedi mind trick</strong>
<ul><li>NotTheWiFiYouAreLookingFor</li>
<li>Not your moms internet</li>
<li>NotYourNetwork</li>
<li>not your network 2.4</li></ul></li></ul>

<h3 id="honorable-mentions" id="honorable-mentions">Honorable mentions</h3>
<ul><li>Dont Try Me</li>
<li>Eat a dick</li>
<li>eat me</li>
<li>eatmyshorts</li>
<li>FckThaPolice</li>
<li>FUCK_BIDEN</li>
<li>Fuck You</li>
<li>Fuq around and find out</li>
<li>I miss Tito Francona</li>
<li>imkingofmycastle</li>
<li>LAN down under</li>
<li>networkname</li>
<li>networknotfound</li>
<li>ninetynineproblemsbutwifiaintone</li>
<li>No LAN for the wicked</li>
<li>PurWifi My Love</li>
<li>Rebellious Amish Family</li>
<li>Stop using free wifi</li>
<li>Taliban Headquarters</li></ul>

<p><img src="https://i.snap.as/jiEWJgx3.png" alt=""/></p>

<h2 id="other-take-aways" id="other-take-aways">Other Take-aways</h2>
<ul><li>I guess lots of cars have their own Wifi hotspots these days (“myChevrolet”, “myGMC”, “Audi_MMI”, “My VW”, and others).</li>
<li>Kismet is very cool, I can&#39;t wait to use it more. This project only used a tiny bit of its functionality, but as a passive network monitor tool, Kismet is incredibly powerful.</li>
<li>My Raspberry Pi can run and collect data for more than 12 hours on a 20,000 mAh battery (should be no surprise).</li>
<li>Google Earth Pro absolutely cannot handle importing my wiglecsv data with 57.6k entries (including tons of duplicates when the tracker sat in the same place for a long time). The entire program grinds to a halt if I&#39;m too far zoomed out. QGIS, on the other hand, didn&#39;t really struggle with the data size, but it has a much less appealing default presentation.</li></ul>
]]></content:encoded>
      <guid>https://dominicds.com/network-scanner</guid>
      <pubDate>Sat, 27 Jan 2024 00:57:16 +0000</pubDate>
    </item>
    <item>
      <title>Cheddar-Rosemary Sourdough</title>
      <link>https://dominicds.com/cheddar-rosemary-sourdough?pk_campaign=rss-feed</link>
      <description>&lt;![CDATA[---------&#xA;I created this loaf to celebrate my current bread starter&#39;s second birthday. The loaf is intended to be pulled apart by hand rather than sliced (although, once a bit stale it makes fantastic toast or grilled cheese). &#xA;&#xA;!--more--&#xA;&#xA;Ingredients&#xA;&#xA; 60 grams whole wheat four&#xA; 340 grams all-purpose flour &#xA; 240 grams warm water (80°-90° F)&#xA; 11 grams salt&#xA; 200 grams fed (within the past 6-12 hours) sourdough starter&#xA; 3 tablespoons olive oil&#xA; 1 tablespoon dry rosemary, chopped&#xA; 1 or 2 cups shredded cheddar cheese&#xA;&#xA;Method&#xA;Active time: About half an hour&#xA;Total time: If I start mixing the dough at 1PM, it&#39;s out of the oven at 8 or 9AM the next morning.&#xA;&#xA;Combine flours in a plastic tub or large mixing bowl&#xA;Add salt and whisk to combine&#xA;Add warm water and mix with a chopstick to combine. Set aside to autolyze while preparing the rest.&#xA;Heat oil in a tiny sauce pan over medium&#xA;Add rosemary and fry until fragrant (30-90 sec), remove from heat. Let it cool for a few minutes&#xA;Note on rosemary: This would probably be great with fresh rosemary, but all I had was dry. If you have fresh leaves, I suspect you can skip the oil step entirely. But it really is necessary to bring out the flavor from the dry rosemary.&#xA;In a medium mixing bowl containing a little warm water (maybe a tablespoon) to prevent sticking, add starter, oil mixture, and cheese. Mix with a chopstick&#xA;Add starter and cheese mixture to the flour and water mixture, mix with a chopstick until it comes together in a single mass, then continue to mix with a wooden spoon. When it combines enough to clean the bowl or tub, kneed with damp hands for a couple minutes&#xA;Cover the container and let bulk fermentation happen. The timing will depend on your conditions, but I let this one go for about six hours.&#xA;Use a bench scraper to divide the dough into a bunch (7-16?) of roughly-equal sized pieces&#xA;10. With lightly floured hands, roll each piece into a ball between your palms&#xA;11. Place all of the balls into a Banneton basket for final fermentation, cover with plastic to avoid drying out. Wait for final rise. Use the poke test to confirm. It took about 12 hours.&#xA;12. Place dutch oven with lid on into oven, preheat at 450° F for 45-60 minutes&#xA;13. Carefully remove loaf from basket and gently place into pre-heated dutch oven&#xA;14. Cover and bake for 30 minutes&#xA;15. Remove lid and bake for another 10-20 minutes, remove when the crust looks the way you want&#xA;&#xA;It&#39;s best to let it cool for an hour before tearing into it, but if you can&#39;t resist that&#39;s okay too. This bread is best when fresh. I recommend toasting it if it&#39;s more than a day or so old.&#xA;4 days old]]&gt;</description>
      <content:encoded><![CDATA[<hr/>

<p>I created this loaf to celebrate my current bread starter&#39;s second birthday. The loaf is intended to be pulled apart by hand rather than sliced (although, once a bit stale it makes fantastic toast or grilled cheese).</p>

<p><img src="https://i.snap.as/iy8X3piP.jpg" alt=""/></p>



<h2 id="ingredients" id="ingredients">Ingredients</h2>
<ul><li>60 grams whole wheat four</li>
<li>340 grams all-purpose flour</li>
<li>240 grams warm water (80°-90° F)</li>
<li>11 grams salt</li>
<li>200 grams fed (within the past 6-12 hours) sourdough starter</li>
<li>3 tablespoons olive oil</li>
<li>1 tablespoon dry rosemary, chopped</li>
<li>1 or 2 cups shredded cheddar cheese</li></ul>

<h2 id="method" id="method">Method</h2>

<p><strong>Active time</strong>: About half an hour
<strong>Total time</strong>: If I start mixing the dough at 1PM, it&#39;s out of the oven at 8 or 9AM the next morning.</p>
<ol><li>Combine flours in a plastic tub or large mixing bowl</li>
<li>Add salt and whisk to combine</li>
<li>Add warm water and mix with a chopstick to combine. Set aside to autolyze while preparing the rest.</li>
<li>Heat oil in a tiny sauce pan over medium</li>
<li>Add rosemary and fry until fragrant (30-90 sec), remove from heat. Let it cool for a few minutes
<strong>Note on rosemary</strong>: <em>This would probably be great with fresh rosemary, but all I had was dry. If you have fresh leaves, I suspect you can skip the oil step entirely. But it really is necessary to bring out the flavor from the dry rosemary.</em></li>
<li>In a medium mixing bowl containing a little warm water (maybe a tablespoon) to prevent sticking, add starter, oil mixture, and cheese. Mix with a chopstick</li>
<li>Add starter and cheese mixture to the flour and water mixture, mix with a chopstick until it comes together in a single mass, then continue to mix with a wooden spoon. When it combines enough to clean the bowl or tub, kneed with damp hands for a couple minutes</li>
<li>Cover the container and let bulk fermentation happen. The timing will depend on your conditions, but I let this one go for about six hours.</li>
<li>Use a bench scraper to divide the dough into a bunch (7-16?) of roughly-equal sized pieces</li>
<li>With lightly floured hands, roll each piece into a ball between your palms</li>
<li>Place all of the balls into a Banneton basket for final fermentation, cover with plastic to avoid drying out. Wait for final rise. Use the poke test to confirm. It took about 12 hours.</li>
<li>Place dutch oven with lid on into oven, preheat at 450° F for 45-60 minutes</li>
<li>Carefully remove loaf from basket and gently place into pre-heated dutch oven</li>
<li>Cover and bake for 30 minutes</li>
<li>Remove lid and bake for another 10-20 minutes, remove when the crust looks the way you want
<img src="https://i.snap.as/sOPzq769.jpg" alt=""/></li></ol>

<p>It&#39;s best to let it cool for an hour before tearing into it, but if you can&#39;t resist that&#39;s okay too. This bread is best when fresh. I recommend toasting it if it&#39;s more than a day or so old.
<img src="https://i.snap.as/Uw3pUdm5.jpg" alt="4 days old"/></p>
]]></content:encoded>
      <guid>https://dominicds.com/cheddar-rosemary-sourdough</guid>
      <pubDate>Sun, 25 Dec 2022 01:02:55 +0000</pubDate>
    </item>
    <item>
      <title>Tech pouch</title>
      <link>https://dominicds.com/tech-pouch?pk_campaign=rss-feed</link>
      <description>&lt;![CDATA[---------&#xA;I can&#39;t remember where I got this cheap little (roughly 2.5x4x7 inches) zippered organizer pouch. I use it to carry assorted tech-related junk that I thought might be useful. The pouch lives in my backpack so it&#39;s never far away.&#xA;&#xA;A small grey pouch with a zipper&#xA;&#xA;!--more--&#xA;&#xA;It&#39;s stuffed nearly to the breaking point, which isn&#39;t that much due to its small size. &#xA;&#xA;Current contents&#xA;&#xA;A few VELCRO® Brand One-Wrap Cable Ties. These are tiny, light, and very handy for managing extra cable slack&#xA;Camera privacy covers, both adhesive ones with a sliding cover and removable camera covers from the EFF, which I&#39;ve already used most of.&#xA;Alligator clips and jumper wires. Very useful when working with electronics.&#xA;A short Ethernet cable (Cat 5 I think?)&#xA;Various SIM card adapters and ejector tool. I don&#39;t use these very often, but they&#39;re tiny and nice to have.&#xA;New in-package extremely cheap USB flash drive. I purchased 10 or 20 of these in a pack. Sometimes it&#39;s useful to be able to give away a USB to someone. Keeping it in the original packaging greatly reduces the sketchiness of doing so.&#xA;128 GB general-purpose USB drive and 32 GB micro SD card for my own data.&#xA;&#xA;Unzipped, left side&#xA;Unzipped, right side&#xA;&#xA;A few charging accessories:&#xA;&#xA;A smallish 5000 mA battery&#xA;Cigarette lighter and American A/C USB chargers&#xA;Four port USB hub&#xA;Data blocking USB adapter for charging from untrusted ports&#xA;&#xA;Various USB adapters/dongles (I use a lot of legacy devices without USB-C):&#xA;&#xA;USB-A to Lightning/Micro USB/USB-C with retractable cable&#xA;USB-A to USB-C&#xA;USB-B to USB-C&#xA;USB C to USB A dongle&#xA;&#xA;Some audio adapters because I still use plugs and not Bluetooth:&#xA;&#xA; 3.5 mm to 6.35 mm jack&#xA; 3.5 mm splitter&#xA; Airline (2 prongs) to 3.5mm&#xA;&#xA;]]&gt;</description>
      <content:encoded><![CDATA[<hr/>

<p>I can&#39;t remember where I got this cheap little (roughly 2.5x4x7 inches) zippered organizer pouch. I use it to carry assorted tech-related junk that I thought might be useful. The pouch lives in my backpack so it&#39;s never far away.</p>

<p><img src="https://i.snap.as/nRKFsoym.jpg" alt="A small grey pouch with a zipper"/></p>



<p>It&#39;s stuffed nearly to the breaking point, which isn&#39;t that much due to its small size.</p>

<h2 id="current-contents" id="current-contents">Current contents</h2>
<ul><li>A few VELCRO® Brand One-Wrap Cable Ties. These are tiny, light, and very handy for managing extra cable slack</li>
<li>Camera privacy covers, both adhesive ones with a sliding cover and removable camera covers from <a href="https://supporters.eff.org/shop/laptop-camera-cover-set-ii">the EFF</a>, which I&#39;ve already used most of.</li>
<li>Alligator clips and jumper wires. Very useful when working with electronics.</li>
<li>A short Ethernet cable (Cat 5 I think?)</li>
<li>Various SIM card adapters and ejector tool. I don&#39;t use these very often, but they&#39;re tiny and nice to have.</li>
<li>New in-package extremely cheap USB flash drive. I purchased 10 or 20 of these in a pack. Sometimes it&#39;s useful to be able to give away a USB to someone. Keeping it in the original packaging greatly reduces the sketchiness of doing so.</li>
<li>128 GB general-purpose USB drive and 32 GB micro SD card for my own data.</li></ul>

<p><img src="https://i.snap.as/7nP1QFFZ.jpg" alt="Unzipped, left side"/>
<img src="https://i.snap.as/O3TWPuJ5.jpg" alt="Unzipped, right side"/></p>

<p>A few charging accessories:</p>
<ul><li>A smallish 5000 mA battery</li>
<li>Cigarette lighter and American A/C USB chargers</li>
<li>Four port USB hub</li>
<li><a href="https://portablepowersupplies.co.uk/">Data blocking USB adapter</a> for charging from untrusted ports</li></ul>

<p>Various USB adapters/dongles (I use a lot of legacy devices without USB-C):</p>
<ul><li>USB-A to Lightning/Micro USB/USB-C with retractable cable</li>
<li>USB-A to USB-C</li>
<li>USB-B to USB-C</li>
<li>USB C to USB A dongle</li></ul>

<p>Some audio adapters because I still use plugs and not Bluetooth:</p>
<ul><li>3.5 mm to 6.35 mm jack</li>
<li>3.5 mm splitter</li>
<li>Airline (2 prongs) to 3.5mm</li></ul>

<p><img src="https://i.snap.as/ERJygLoS.jpg" alt=""/></p>
]]></content:encoded>
      <guid>https://dominicds.com/tech-pouch</guid>
      <pubDate>Sun, 25 Dec 2022 00:11:22 +0000</pubDate>
    </item>
    <item>
      <title>AirTag safety </title>
      <link>https://dominicds.com/airtag-safety?pk_campaign=rss-feed</link>
      <description>&lt;![CDATA[---------&#xA;&#xA;In the AirTag, Apple has created an inexpensive and discreet tracking device with amazing capabilities. Because AirTags use the &#34;Find My&#34;-network, they can be used to track location globally. As privacy advocates immediately pointed out, this is a powerful tool in the hands of stalkers and abusers. &#xA;&#xA;!--more--&#xA;&#xA;By empowering anyone to track these tags anywhere in the world at a cost of only thirty dollars, Apple have essentially created an new threat for people who may find themselves targeted.&#xA;&#xA;If police wanted to use a tracking device like this, they would probably need a warrant.&#xA;&#xA;Apple, in response to the obvious problem, created a system for notifying people of a nearby unknown AirTag.&#xA;&#xA;!-- image here: notification --&#xA;&#xA;The initial system has some flaws. The most-obvious being that this notification system only works with Apple devices, so a targeted person with an Android (or no smart phone on them at all) would never receive these notifications. &#xA;&#xA;!-- image here: twitter thread --&#xA;&#xA;Some time after starting to sell AirTags, and after some (predictable) stories of the tags&#39; misuse for stalking behavior, Apple released an Android app called Tracker Detect which will notify users of nearby tags.&#xA;&#xA;Many flaws still remain. Targeted people may not be aware that they need to install detector software. They may not be able to locate or remove the tag after notification. The notification may arrive too late, after too much location information has been revealed. &#xA;&#xA;In my opinion, Apple&#39;s strategy here is philosophically flawed. By putting the onus on the victim_ to identify and respond to the threat of a powerful spying device, they are making it harder for stalking victims to stay safe. While it may be neat to be able to see your dog&#39;s real-time location or to find your lost keys, it feels like a poor trade-off.&#xA;&#xA;]]&gt;</description>
      <content:encoded><![CDATA[<hr/>

<p><img src="https://i.snap.as/ld2Nk5K3.jpeg" alt=""/></p>

<p>In the AirTag, Apple has created an inexpensive and discreet tracking device with amazing capabilities. Because AirTags use the <a href="https://www.youtube.com/watch?v=o2Q2x6lBteo">“Find My”-network</a>, they can be used to track location globally. As privacy advocates immediately pointed out, this is a powerful tool in the hands of stalkers and abusers.</p>



<p>By empowering anyone to track these tags anywhere in the world at a cost of only <a href="https://www.apple.com/shop/buy-airtag/airtag">thirty dollars</a>, Apple have essentially created an new threat for people who may find themselves targeted.</p>

<p>If police wanted to use a tracking device like this, they would <a href="https://billofrightsinstitute.org/e-lessons/supreme-court-gps-warrant-ruling">probably need a warrant</a>.</p>

<p>Apple, in response to the obvious problem, created a system for notifying people of a nearby unknown AirTag.</p>



<p>The initial system has some flaws. The most-obvious being that this notification system <em>only works with Apple devices</em>, so a targeted person with an Android (or no smart phone on them at all) would never receive these notifications.</p>



<p>Some time after starting to sell AirTags, and after some (predictable) stories of the tags&#39; misuse for stalking behavior, Apple released an Android app called <a href="https://play.google.com/store/apps/details?id=com.apple.trackerdetect&amp;hl=en_US&amp;gl=US">Tracker Detect</a> which will notify users of nearby tags.</p>

<p>Many flaws still remain. Targeted people may not be aware that they need to install detector software. They may not be able to locate or remove the tag after notification. The notification may arrive too late, after too much location information has been revealed.</p>

<p>In my opinion, Apple&#39;s strategy here is philosophically flawed. By putting the onus on the <em>victim</em> to identify and respond to the threat of a powerful spying device, they are making it harder for stalking victims to stay safe. While it may be neat to be able to see your dog&#39;s real-time location or to find your lost keys, it feels like a poor trade-off.</p>
]]></content:encoded>
      <guid>https://dominicds.com/airtag-safety</guid>
      <pubDate>Wed, 22 Dec 2021 15:39:26 +0000</pubDate>
    </item>
    <item>
      <title>App Highlight: Pinboard</title>
      <link>https://dominicds.com/app-highlight-pinboard?pk_campaign=rss-feed</link>
      <description>&lt;![CDATA[---------&#xA;Pinboard is one of the few apps that I don&#39;t mind paying a yearly fee to use. It&#39;s a simple, Easy to use cloud-based bookmarking service. Google Bookmarks without the data mining. &#xA;&#xA;!--more--&#xA;&#xA;Adding a bookmark with the Firefox browser plugin&#xA;&#xA;It features some interesting social features, including sharing links with your network, and a feed of what&#39;s popular. This alone could replace a good chunk of what we use social media for (if only all of our friends agreed to use it). &#xA;&#xA;The popular bookmarks&#xA;&#xA;Personally, I keep all of my bookmarks private. I don&#39;t have anyone in my networks. I never look at the popular bookmarks feed. I still find Pinboard to be a nice tool. I can use my own custom tags to organize links. &#xA;One of my tags, and some related one&#xA;&#xA;I can add bookmarks from any device. The website it fast, and I can even expand my search a to include cached version of the site contents in addition to the usual title+tag search. &#xA;&#xA;I&#39;ve been using it for years, and I&#39;m very pleased. The site has been stable and reliable. It&#39;s been compatible with many devices. Check it out https://pinboard.in&#xA;&#xA;#tech #recommendations]]&gt;</description>
      <content:encoded><![CDATA[<hr/>

<p><a href="https://pinboard.in">Pinboard</a> is one of the few apps that I don&#39;t mind paying a yearly fee to use. It&#39;s a simple, Easy to use cloud-based bookmarking service. Google Bookmarks without the data mining.</p>



<p><img src="https://i.snap.as/xL8P6NZ8.png" alt="Adding a bookmark with the Firefox browser plugin"/></p>

<p>It features some interesting social features, including sharing links with your network, and a feed of what&#39;s popular. This alone could replace a good chunk of what we use social media for (if only all of our friends agreed to use it).</p>

<p><img src="https://i.snap.as/KUnn3lNQ.png" alt="The popular bookmarks"/></p>

<p>Personally, I keep all of my bookmarks private. I don&#39;t have anyone in my networks. I never look at the popular bookmarks feed. I still find Pinboard to be a nice tool. I can use my own custom tags to organize links.
<img src="https://i.snap.as/E5Rvpcsf.png" alt="One of my tags, and some related one"/></p>

<p>I can add bookmarks from any device. The website it fast, and I can even expand my search a to include cached version of the site <strong>contents</strong> in addition to the usual title+tag search.</p>

<p>I&#39;ve been using it for years, and I&#39;m very pleased. The site has been stable and reliable. It&#39;s been compatible with many devices. Check it out <a href="https://pinboard.in">https://pinboard.in</a></p>

<p><a href="https://dominicds.com/tag:tech" class="hashtag"><span>#</span><span class="p-category">tech</span></a> <a href="https://dominicds.com/tag:recommendations" class="hashtag"><span>#</span><span class="p-category">recommendations</span></a></p>
]]></content:encoded>
      <guid>https://dominicds.com/app-highlight-pinboard</guid>
      <pubDate>Sat, 27 Nov 2021 19:33:41 +0000</pubDate>
    </item>
    <item>
      <title>Scooping the Loop Snooper</title>
      <link>https://dominicds.com/scooping-the-loop-snooper?pk_campaign=rss-feed</link>
      <description>&lt;![CDATA[---&#xA;In the following video, I read a rhyming poem about a popular part of computability theory, the Halting Problem.&#xA;&#xA;!--more--&#xA;&#xA;iframe width=&#34;560&#34; height=&#34;315&#34; src=&#34;https://www.youtube.com/embed/vBSqgsRSmk&#34; frameborder=&#34;0&#34; allow=&#34;accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture&#34; allowfullscreen/iframe&#xA;&#xA;Find the original poem here: http://www.lel.ed.ac.uk/~gpullum/loopsnoop.html&#xA;&#xA;The halting problem is an interesting part of computability theory. It tells us that there&#39;s no way, using a certain type of computer, to be able to always detect if a given program will eventually stop running. &#xA;&#xA;Although it&#39;s often attributed to computer science hero and queer icon Alan Turing, the problem was first stated in the 1950s by a mathematician named Martin Davis. &#xA;&#xA;It&#39;s an abstract idea, but it has real-world impact. &#xA;&#xA;Computing worked differently in the fifties. This was before time-sharing, so each (large, expensive, fragile) computer could essentially only run one program at a time. A program was fed into the machine, and it cranked away before producing a result.  Programs could potentially run for hours or days before successfully completing. During that time no other programs could be executed. Long-running programs can create a bottleneck, with many others waiting to run.&#xA;&#xA;As you can imagine, an infinite loop was an expensive problem, as the program could run for a long time without anyone realizing it&#39;s gone wrong. Eventually, either the machine breaks (very common in the era of vacuum tubes) or the operators manually halt the machine because they realize something&#39;s gone wrong.&#xA;&#xA;An effective and cost-saving way of avoiding this was manual review of the program&#39;s code before running it. An engineer looks at the code and tries to figure out what will happen as the computer executes it. A lot of time, this process can detect an error before the program starts to run, which is the best time to find a bug.&#xA;&#xA;But engineers are human, and they make mistakes. That&#39;s why we have these infinite loops to begin with. The manual review process occasionally overlooks bugs. So why not get a static analyzer to detect them for us, a machine that looks at the software and detects issues? Well, we have done just that. These are amazing tools and I love them.&#xA;&#xA;So the halting problem shows us that these analyzers can never be perfect. Due to the dynamic relationship between code and its input data, it&#39;s impossible to know (with total certainty) from the code alone whether an infinite loop won&#39;t occur. &#xA;&#xA;As a side note, because it&#39;s a work of computability theory and mathematics, none of this work tends to address many external factors that can cause a computer glitch to occur, such as hardware failures, environmental factors, and malicious actors.&#xA;&#xA;#video #computers&#xA;]]&gt;</description>
      <content:encoded><![CDATA[<hr/>

<p>In the following video, I read a rhyming poem about a popular part of computability theory, the Halting Problem.</p>



<iframe width="560" height="315" src="https://www.youtube.com/embed/vBS_qgsRSmk" frameborder="0" allowfullscreen=""></iframe>

<p>Find the original poem here: <a href="http://www.lel.ed.ac.uk/~gpullum/loopsnoop.html">http://www.lel.ed.ac.uk/~gpullum/loopsnoop.html</a></p>

<p>The <a href="https://en.wikipedia.org/wiki/Halting_problem"><em>halting problem</em></a> is an interesting part of computability theory. It tells us that there&#39;s no way, using a <a href="https://en.wikipedia.org/wiki/Turing_machine">certain type of computer</a>, to be able to always detect if a given program will eventually stop running.</p>

<p><a href="https://www.sciencedirect.com/science/article/pii/S235222082100050X">Although it&#39;s often attributed to computer science hero and queer icon Alan Turing, the problem was first stated in the 1950s by a mathematician named Martin Davis</a>.</p>

<p>It&#39;s an abstract idea, but it has real-world impact.</p>

<p>Computing worked differently in the fifties. This was before <a href="https://en.wikipedia.org/wiki/Time-sharing">time-sharing</a>, so each (large, expensive, fragile) computer could essentially only run one program at a time. A program was fed into the machine, and it cranked away before producing a result.  Programs could potentially run for hours or days before successfully completing. During that time no other programs could be executed. Long-running programs can create a bottleneck, with many others waiting to run.</p>

<p>As you can imagine, an <a href="https://en.wikipedia.org/wiki/Infinite_loop">infinite loop</a> was an expensive problem, as the program could run for a long time without anyone realizing it&#39;s gone wrong. Eventually, either the machine breaks (very common in the era of vacuum tubes) or the operators manually halt the machine because they realize something&#39;s gone wrong.</p>

<p>An effective and cost-saving way of avoiding this was manual review of the program&#39;s code before running it. An engineer looks at the code and tries to figure out what will happen as the computer executes it. A lot of time, this process can detect an error before the program starts to run, which is the best time to find a bug.</p>

<p>But engineers are human, and they make mistakes. <em>That&#39;s why we have these infinite loops to begin with.</em> The manual review process occasionally overlooks bugs. So why not get a static analyzer to detect them for us, a machine that looks at the software and detects issues? Well, we have done just that. These are amazing tools and I love them.</p>

<p><img src="https://i.snap.as/SrnwcMm8.png" alt=""/></p>

<p>So the halting problem shows us that these analyzers can never be perfect. Due to the dynamic relationship between code and its input data, it&#39;s impossible to know (with total certainty) from the <em>code alone</em> whether an infinite loop won&#39;t occur.</p>

<p>As a side note, because it&#39;s a work of computability theory and mathematics, none of this work tends to address many external factors that can cause a computer glitch to occur, such as hardware failures, environmental factors, and malicious actors.</p>

<p><a href="https://dominicds.com/tag:video" class="hashtag"><span>#</span><span class="p-category">video</span></a> <a href="https://dominicds.com/tag:computers" class="hashtag"><span>#</span><span class="p-category">computers</span></a></p>
]]></content:encoded>
      <guid>https://dominicds.com/scooping-the-loop-snooper</guid>
      <pubDate>Tue, 16 Nov 2021 22:10:08 +0000</pubDate>
    </item>
    <item>
      <title>Computer Setup - Software</title>
      <link>https://dominicds.com/computer-setup-software?pk_campaign=rss-feed</link>
      <description>&lt;![CDATA[---&#xA;I recently needed to re-configure my primary desktop from scratch.&#xA;&#xA;In hopes of maybe making the process a little easier next time, I decided to document the programs I installed, and how I went about doing so, in addition to any random notes I thought might be helpful next time I do this. &#xA;&#xA;!--more--&#xA;&#xA;Disclaimer: Although I&#39;ve been using Linux on-and-off for almost two decades, I&#39;ve never considered myself very proficient with the system. I&#39;m still learning new sysadmin tricks and practices every day. I suspect my decision-making about which packages to build from source, fetch binaries, or rely on package managers could appear very haphazard (no to mention the actual packages I choose to install).&#xA;&#xA;Applications Installed&#xA;&#xA;This isn&#39;t a list of all the programs I regularly use, it&#39;s just the first ones that I found myself installing, roughly in the order that they came to mind. Some programs (such as Firefox) are installed by default and I didn&#39;t even try to install them. Others (like git) are installed by default and I didn&#39;t realize until trying to install.&#xA;&#xA;I&#39;ve tried to note the official website for each program.&#xA;&#xA; git - Source control &#xA;    already installed&#xA;&#xA; GNU Privacy Guard (gpg) - Encryption toolkit&#xA; already installed&#xA;&#xA; Vim - Primary text editor&#xA;    https://www.vim.org/git.php&#xA;    note: make failed without libncurses-dev (sudo apt install libncurses-dev)&#xA;&#xA;Clone git repo and build from source:&#xA;git clone https://github.com/vim/vim.git&#xA;cd vim&#xA;git pull&#xA;cd src&#xA;make distclean  # if you build Vim before&#xA;make&#xA;sudo make install&#xA; Veracrypt - Manage encrypted volumes&#xA;https://www.veracrypt.fr/code/VeraCrypt/&#xA;Download, verify, and install&#xA;  cd ~/Downloads/&#xA;  wget https://www.idrix.fr/VeraCrypt/VeraCryptPGPpublickey.asc&#xA;  gpg --import VeraCryptPGPpublickey.asc &#xA;  wget https://launchpad.net/veracrypt/trunk/1.24-update7/+download/veracrypt-1.24-Update7-Ubuntu-21.04-amd64.deb.sig&#xA;  wget https://launchpad.net/veracrypt/trunk/1.24-update7/+download/veracrypt-1.24-Update7-Ubuntu-21.04-amd64.deb&#xA;  gpg --verify veracrypt-1.24-Update7-Ubuntu-21.04-amd64.deb.sig veracrypt-1.24-Update7-Ubuntu-21.04-amd64.deb&#xA;  sudo dpkg --install veracrypt-1.24-Update7-Ubuntu-21.04-amd64.deb&#xA;&#xA; KeepassXC - Password manager&#xA;https://keepassxc.org/download/&#xA; sudo apt install keepassxc &#xA; Syncthing - Cross-device file syncing&#xA;https://syncthing.net/downloads/&#xA;https://github.com/syncthing/syncthing/releases/download/v1.18.4/syncthing-linux-amd64-v1.18.4.tar.gz&#xA;use systemd user config&#xA;Didn&#39;t work at first. Used systemctl -l status syncthing.service to determine the issue (which was that syncthing hadn&#39;t been moved to /usr/bin).&#xA;wget https://github.com/syncthing/syncthing/releases/download/v1.18.4/syncthing-linux-amd64-v1.18.4.tar.gz&#xA;gunzip syncthing-linux-amd64-v1.18.4.tar.gz &#xA;ls -ltra&#xA;tar -xvf syncthing-linux-amd64-v1.18.4.tar &#xA;cd syncthing-linux-amd64-v1.18.4/&#xA;mkdir -p ~/.config/systemd/user&#xA;sudo mv syncthing /usr/bin&#xA;cp syncthing.service ~/.config/systemd/user/&#xA;systemctl --user enable syncthing.service&#xA;systemctl --user start syncthing.service&#xA;Web interface at: http://127.0.0.1:8384/&#xA;&#xA; Flameshot - Screenshot capture tool&#xA;https://flameshot.org/guide/installation/installation-linux/&#xA;sudo apt install flameshot&#xA; Tor Browser - Darkweb browser&#xA;    https://www.torproject.org/download/&#xA;&#xA;wget https://dist.torproject.org/torbrowser/10.5.10/tor-browser-linux64-10.5.10en-US.tar.xz.asc&#xA;wget https://www.torproject.org/dist/torbrowser/10.5.10/tor-browser-linux64-10.5.10en-US.tar.xz&#xA;https://support.torproject.org/tbb/how-to-verify-signature/&#xA;gpg --auto-key-locate nodefault,wkd --locate-keys torbrowser@torproject.org&#xA;gpg --output ./tor.keyring --export 0xEF6E286DDA85EA2A4BA7DE684E2C6E8793298290&#xA;gpgv --keyring ./tor.keyring tor-browser-linux64-10.5.10en-US.tar.xz.asc tor-browser-linux64-10.5.10en-US.tar.xz&#xA;gpgv: Signature made Mon 25 Oct 2021 03:17:07 PM EDT&#xA;gpgv:                using RSA key EB774491D9FF06E2&#xA;gpgv: Good signature from &#34;Tor Browser Developers (signing key) torbrowser@torproject.org&#34;&#xA;&#xA;https://tb-manual.torproject.org/installation/&#xA;./start-tor-browser.desktop --register-app --verbose --detach&#xA; Pandoc - Document conversion tool (I use this for making PDFs from markdown files)&#xA;https://pandoc.org/installing.html&#xA;wget https://github.com/jgm/pandoc/releases/download/2.16.1/pandoc-2.16.1-1-amd64.deb&#xA;sudo dpkg -i pandoc-2.16.1-1-amd64.deb &#xA;&#xA; Inkscape - Vector graphics (SVG) editor&#xA;   https://inkscape.org/release/inkscape-1.1.1/&#xA;&#xA;sudo add-apt-repository ppa:inkscape.dev/stable&#xA;sudo apt update&#xA;sudo apt install inkscape&#xA;&#xA; glances - A  top/Task Manager/Activity Monitor tool&#xA;https://nicolargo.github.io/glances/&#xA;sudo apt install python3-pip # Pip is the Python package manager, I&#39;m surprised I didn&#39;t need it up until here&#xA;pip install glances&#xA;&#xA; youtube-dl - Easily download streaming videos&#xA;&#xA;sudo apt install python&#xA;  wget https://github.com/ytdl-org/youtube-dl/releases/download/2021.06.06/youtube-dl-2021.06.06.tar.gz&#xA;  wget https://github.com/ytdl-org/youtube-dl/releases/download/2021.06.06/youtube-dl-2021.06.06.tar.gz.sig&#xA;  gpg --verify youtube-dl-2021.06.06.tar.gz.sig youtube-dl-2021.06.06.tar.gz # this didnt work&#xA;tar -xvf youtube-dl-2021.06.06.tar.gz &#xA;cd youtube-dl/&#xA;make &amp;&amp; sudo make install&#xA; VLC Media Player - A video player&#xA;    https://www.videolan.org/vlc/#download&#xA;&#xA;sudo apt install vlc&#xA;&#xA; OpenShot - Video editor&#xA;    https://www.openshot.org/&#xA;&#xA;sudo add-apt-repository ppa:openshot.developers/ppa&#xA;sudo apt update&#xA;sudo apt install openshot-qt python3-openshot &#xA;&#xA; clang - C/C++ compiler suite&#xA;    https://clang.llvm.org/getstarted.html&#xA;&#xA;sudo apt install clang&#xA;&#xA;wget https://github.com/llvm/llvm-project/releases/download/llvmorg-13.0.0/clang+llvm-13.0.0-x8664-linux-gnu-ubuntu-20.04.tar.xz.sha256&#xA;wget https://github.com/llvm/llvm-project/releases/download/llvmorg-13.0.0/clang+llvm-13.0.0-x86_64-linux-gnu-ubuntu-20.04.tar.xz&#xA;&#xA; mlocate - Indexed local search&#xA;    https://wiki.gentoo.org/wiki/Mlocate&#xA;    &#xA; midnight commander (mc) - File browser&#xA;    https://midnight-commander.org/&#xA;&#xA; Rust - The only good programming language&#xA;    https://www.rust-lang.org/learn/get-started&#xA;&#xA;curl --proto &#39;=https&#39; --tlsv1.2 -sSf https://sh.rustup.rs | sh&#xA;git clone https://github.com/rust-lang/rust.vim ~/.vim/pack/plugins/start/rust.vim&#xA;&#xA; TOR - The Onion Router and accompanying tools&#xA; OBS - Streaming/recording, a powerful broadcasting suite&#xA;https://obsproject.com/download&#xA;sudo apt install ffmpeg&#xA;sudo add-apt-repository ppa:obsproject/obs-studio&#xA;sudo apt install obs-studio&#xA;and virtual cam (so I can use OBS output as the input for Zoom):&#xA;sudo apt install linux-headers-$(uname -r) v4l2loopback-dkms # v4l = &#34;Video 4 Linux?&#34;&#xA;&#xA; nmap - Network scanner/mapper&#xA;  https://nmap.org/&#xA;  &#xA; ImageMagick - Powerful image conversion and batch editing&#xA;    https://imagemagick.org/&#xA;    Already installed&#xA;&#xA; mplayer - Another media player&#xA;    https://mplayerhq.hu/design7/news.html&#xA;&#xA;  svn checkout svn://svn.mplayerhq.hu/mplayer/trunk mplayer&#xA;  cd mplayer &amp;&amp; ./configure # Failed first time --needed to install yasm&#xA;  make &amp;&amp; sudo make install&#xA;&#xA; Wireshark - Network capture and analysis&#xA;    https://www.wireshark.org/download.html&#xA;&#xA;sudo apt install wireshark&#xA;&#xA; Jupyter notebook - It&#39;s like if a python program and a markdown file had a baby&#xA;&#xA;https://jupyter.org/install&#xA;&#xA; Zoom - Video conferencing&#xA;    https://zoom.us/download&#xA;&#xA; Subversion (svn) - Source control&#xA;https://subversion.apache.org/&#xA;&#xA;sudo apt install subversion&#xA;&#xA;Firefox plugins:&#xA;These are my must-have plugins:&#xA;&#xA;  uBlock Origin - Ad blocker&#xA;    https://addons.mozilla.org/en-US/firefox/addon/ublock-origin/&#xA;&#xA;  Script blocker - Selectively enable Javascript&#xA;    https://addons.mozilla.org/en-US/firefox/addon/noscript&#xA;&#xA;  Privacy Badger - Reduce tracking &#xA;    https://addons.mozilla.org/en-US/firefox/addon/privacy-badger17&#xA;&#xA;  Facebook Container - Reduce tracking (by sandboxing Facebook login)&#xA;    https://addons.mozilla.org/en-US/firefox/addon/facebook-container&#xA;&#xA;  Pinboard - Cloud bookmarks (https://pinboard.in)&#xA;    https://addons.mozilla.org/en-US/firefox/addon/pinboard-extension/&#xA;&#xA;    #### Firefox configuration&#xA;    These are the firefox config settings that I changed.&#xA;&#xA;    Default browser&#xA;    Default search -  Duckduckgo&#xA;    fingerprint protection&#xA;    block requests for location&#xA;    tracking protection&#xA;    do not track&#xA;    don&#39;t save passwords/credit cards/addresses&#xA;    disable suggestions&#xA;    disable analytics&#xA;    enable https-only mode in all windows&#xA;&#xA;Not yet installed (but probably will soon)&#xA;&#xA; gimp - Raster image editor&#xA; signal - Online chat&#xA; discord - Online chat&#xA; chromium - Web browser&#xA;&#xA;#software #applications&#xA;&#xA;]]&gt;</description>
      <content:encoded><![CDATA[<hr/>

<p>I recently needed to re-configure my primary desktop from scratch.</p>

<p>In hopes of maybe making the process a little easier next time, I decided to document the programs I installed, and how I went about doing so, in addition to any random notes I thought might be helpful next time I do this.</p>

<p><img src="https://i.snap.as/racCwCIM.png" alt=""/></p>



<p>Disclaimer: Although I&#39;ve been using Linux on-and-off for almost two decades, I&#39;ve never considered myself very proficient with the system. I&#39;m still learning new sysadmin tricks and practices every day. I suspect my decision-making about which packages to build from source, fetch binaries, or rely on package managers could appear very haphazard (no to mention the actual packages I choose to install).</p>

<h2 id="applications-installed" id="applications-installed">Applications Installed</h2>

<p>This isn&#39;t a list of all the programs I regularly use, it&#39;s just the first ones that I found myself installing, roughly in the order that they came to mind. Some programs (such as Firefox) are installed by default and I didn&#39;t even try to install them. Others (like <code>git</code>) are installed by default and I didn&#39;t realize until trying to install.</p>

<p><img src="https://i.snap.as/PVoqeEih.png" alt=""/></p>

<p>I&#39;ve tried to note the official website for each program.</p>
<ul><li><p><strong>git</strong> – Source control
already installed</p></li>

<li><p><strong>GNU Privacy Guard</strong> (gpg) – Encryption toolkit
already installed</p></li>

<li><p><strong>Vim</strong> – Primary text editor
<a href="https://www.vim.org/git.php">https://www.vim.org/git.php</a>
note: make failed without libncurses-dev (<code>sudo apt install libncurses-dev</code>)</p></li></ul>

<p>Clone git repo and build from source:</p>

<pre><code class="language-bash">git clone https://github.com/vim/vim.git
cd vim
git pull
cd src
make distclean  # if you build Vim before
make
sudo make install
</code></pre>
<ul><li><p><strong>Veracrypt</strong> – Manage encrypted volumes
<a href="https://www.veracrypt.fr/code/VeraCrypt/">https://www.veracrypt.fr/code/VeraCrypt/</a>
Download, verify, and install</p>

<pre><code class="language-bash">cd ~/Downloads/
wget https://www.idrix.fr/VeraCrypt/VeraCrypt_PGP_public_key.asc
gpg --import VeraCrypt_PGP_public_key.asc 
wget https://launchpad.net/veracrypt/trunk/1.24-update7/+download/veracrypt-1.24-Update7-Ubuntu-21.04-amd64.deb.sig
wget https://launchpad.net/veracrypt/trunk/1.24-update7/+download/veracrypt-1.24-Update7-Ubuntu-21.04-amd64.deb
gpg --verify veracrypt-1.24-Update7-Ubuntu-21.04-amd64.deb.sig veracrypt-1.24-Update7-Ubuntu-21.04-amd64.deb
sudo dpkg --install veracrypt-1.24-Update7-Ubuntu-21.04-amd64.deb
</code></pre></li>

<li><p><strong>KeepassXC</strong> – Password manager
<a href="https://keepassxc.org/download/">https://keepassxc.org/download/</a></p>

<pre><code class="language-bash">sudo apt install keepassxc 
</code></pre></li>

<li><p><strong>Syncthing</strong> – Cross-device file syncing
<a href="https://syncthing.net/downloads/">https://syncthing.net/downloads/</a>
<a href="https://github.com/syncthing/syncthing/releases/download/v1.18.4/syncthing-linux-amd64-v1.18.4.tar.gz">https://github.com/syncthing/syncthing/releases/download/v1.18.4/syncthing-linux-amd64-v1.18.4.tar.gz</a>
use systemd user config
Didn&#39;t work at first. Used <code>systemctl -l status syncthing.service</code> to determine the issue (which was that <code>syncthing</code> hadn&#39;t been moved to <code>/usr/bin</code>).</p>

<pre><code class="language-bash">wget https://github.com/syncthing/syncthing/releases/download/v1.18.4/syncthing-linux-amd64-v1.18.4.tar.gz
gunzip syncthing-linux-amd64-v1.18.4.tar.gz 
ls -ltra
tar -xvf syncthing-linux-amd64-v1.18.4.tar 
cd syncthing-linux-amd64-v1.18.4/
mkdir -p ~/.config/systemd/user
sudo mv syncthing /usr/bin
cp syncthing.service ~/.config/systemd/user/
systemctl --user enable syncthing.service
systemctl --user start syncthing.service
</code></pre>

<p>Web interface at: <a href="http://127.0.0.1:8384/">http://127.0.0.1:8384/</a></p></li>

<li><p><strong>Flameshot</strong> – Screenshot capture tool
<a href="https://flameshot.org/guide/installation/installation-linux/">https://flameshot.org/guide/installation/installation-linux/</a></p>

<pre><code class="language-bash">sudo apt install flameshot
</code></pre></li>

<li><p><strong>Tor Browser</strong> – Darkweb browser
<a href="https://www.torproject.org/download/">https://www.torproject.org/download/</a></p></li></ul>

<pre><code class="language-bash">wget https://dist.torproject.org/torbrowser/10.5.10/tor-browser-linux64-10.5.10_en-US.tar.xz.asc
wget https://www.torproject.org/dist/torbrowser/10.5.10/tor-browser-linux64-10.5.10_en-US.tar.xz
</code></pre>

<p><a href="https://support.torproject.org/tbb/how-to-verify-signature/">https://support.torproject.org/tbb/how-to-verify-signature/</a></p>

<pre><code class="language-bash">gpg --auto-key-locate nodefault,wkd --locate-keys torbrowser@torproject.org
gpg --output ./tor.keyring --export 0xEF6E286DDA85EA2A4BA7DE684E2C6E8793298290
gpgv --keyring ./tor.keyring tor-browser-linux64-10.5.10_en-US.tar.xz.asc tor-browser-linux64-10.5.10_en-US.tar.xz
</code></pre>

<pre><code class="language-bash">gpgv: Signature made Mon 25 Oct 2021 03:17:07 PM EDT
gpgv:                using RSA key EB774491D9FF06E2
gpgv: Good signature from &#34;Tor Browser Developers (signing key) &lt;torbrowser@torproject.org&gt;&#34;

</code></pre>

<p><a href="https://tb-manual.torproject.org/installation/">https://tb-manual.torproject.org/installation/</a></p>

<pre><code class="language-bash">./start-tor-browser.desktop --register-app --verbose --detach
</code></pre>
<ul><li><p><strong>Pandoc</strong> – Document conversion tool (I use this for making PDFs from markdown files)
<a href="https://pandoc.org/installing.html">https://pandoc.org/installing.html</a></p>

<pre><code class="language-bash">wget https://github.com/jgm/pandoc/releases/download/2.16.1/pandoc-2.16.1-1-amd64.deb
sudo dpkg -i pandoc-2.16.1-1-amd64.deb 
</code></pre></li>

<li><p><strong>Inkscape</strong> – Vector graphics (SVG) editor
<a href="https://inkscape.org/release/inkscape-1.1.1/">https://inkscape.org/release/inkscape-1.1.1/</a></p></li></ul>

<pre><code class="language-bash">sudo add-apt-repository ppa:inkscape.dev/stable
sudo apt update
sudo apt install inkscape
</code></pre>
<ul><li><p><strong>glances</strong> – A  <code>top</code>/Task Manager/Activity Monitor tool
<a href="https://nicolargo.github.io/glances/">https://nicolargo.github.io/glances/</a></p>

<pre><code class="language-bash">sudo apt install python3-pip # Pip is the Python package manager, I&#39;m surprised I didn&#39;t need it up until here
pip install glances
</code></pre></li>

<li><p><strong>youtube-dl</strong> – Easily download streaming videos</p></li></ul>

<pre><code>sudo apt install python
  wget https://github.com/ytdl-org/youtube-dl/releases/download/2021.06.06/youtube-dl-2021.06.06.tar.gz
  wget https://github.com/ytdl-org/youtube-dl/releases/download/2021.06.06/youtube-dl-2021.06.06.tar.gz.sig
  gpg --verify youtube-dl-2021.06.06.tar.gz.sig youtube-dl-2021.06.06.tar.gz # this didnt work
tar -xvf youtube-dl-2021.06.06.tar.gz 
cd youtube-dl/
make &amp;&amp; sudo make install
</code></pre>
<ul><li><strong>VLC Media Player</strong> – A video player
<a href="https://www.videolan.org/vlc/#download">https://www.videolan.org/vlc/#download</a></li></ul>

<pre><code>sudo apt install vlc
</code></pre>
<ul><li><strong>OpenShot</strong> – Video editor
<a href="https://www.openshot.org/">https://www.openshot.org/</a></li></ul>

<pre><code>sudo add-apt-repository ppa:openshot.developers/ppa
sudo apt update
sudo apt install openshot-qt python3-openshot 
</code></pre>
<ul><li><strong>clang</strong> – C/C++ compiler suite
<a href="https://clang.llvm.org/get_started.html">https://clang.llvm.org/get_started.html</a></li></ul>

<pre><code>sudo apt install clang
</code></pre>

<pre><code>wget https://github.com/llvm/llvm-project/releases/download/llvmorg-13.0.0/clang+llvm-13.0.0-x86_64-linux-gnu-ubuntu-20.04.tar.xz.sha256
wget https://github.com/llvm/llvm-project/releases/download/llvmorg-13.0.0/clang+llvm-13.0.0-x86_64-linux-gnu-ubuntu-20.04.tar.xz
</code></pre>
<ul><li><p><strong>mlocate</strong> – Indexed local search
<a href="https://wiki.gentoo.org/wiki/Mlocate">https://wiki.gentoo.org/wiki/Mlocate</a>
<code>sudo apt install mlocate</code></p></li>

<li><p><strong>midnight commander</strong> (mc) – File browser
<a href="https://midnight-commander.org/">https://midnight-commander.org/</a></p></li>

<li><p><strong>Rust</strong> – The only good programming language
<a href="https://www.rust-lang.org/learn/get-started">https://www.rust-lang.org/learn/get-started</a></p></li></ul>

<pre><code>curl --proto &#39;=https&#39; --tlsv1.2 -sSf https://sh.rustup.rs | sh
</code></pre>

<pre><code>git clone https://github.com/rust-lang/rust.vim ~/.vim/pack/plugins/start/rust.vim
</code></pre>
<ul><li><strong>TOR</strong> – The Onion Router and accompanying tools
<code>sudo apt install tor
</code></li>

<li><p><strong>OBS</strong> – Streaming/recording, a powerful broadcasting suite
<a href="https://obsproject.com/download">https://obsproject.com/download</a></p>

<pre><code class="language-bash">sudo apt install ffmpeg
sudo add-apt-repository ppa:obsproject/obs-studio
sudo apt install obs-studio
</code></pre>

<p>and virtual cam (so I can use OBS output as the input for Zoom):</p>

<pre><code class="language-bash">sudo apt install linux-headers-$(uname -r) v4l2loopback-dkms # v4l = &#34;Video 4 Linux?&#34;
</code></pre></li>

<li><p><strong>nmap</strong> – Network scanner/mapper
<a href="https://nmap.org/">https://nmap.org/</a>
<code>sudo apt install nmap</code> gives version from last Oct (not the latest)</p></li>

<li><p><strong>ImageMagick</strong> – Powerful image conversion and batch editing
<a href="https://imagemagick.org/">https://imagemagick.org/</a>
Already installed</p></li>

<li><p><strong>mplayer</strong> – Another media player
<a href="https://mplayerhq.hu/design7/news.html">https://mplayerhq.hu/design7/news.html</a></p></li></ul>

<pre><code>  svn checkout svn://svn.mplayerhq.hu/mplayer/trunk mplayer
  cd mplayer &amp;&amp; ./configure # Failed first time --needed to install yasm
  make &amp;&amp; sudo make install
</code></pre>
<ul><li><strong>Wireshark</strong> – Network capture and analysis
<a href="https://www.wireshark.org/download.html">https://www.wireshark.org/download.html</a></li></ul>

<pre><code>sudo apt install wireshark
</code></pre>
<ul><li><strong>Jupyter notebook</strong> – It&#39;s like if a python program and a markdown file had a baby</li></ul>

<pre><code>https://jupyter.org/install
</code></pre>
<ul><li><p><strong>Zoom</strong> – Video conferencing
<a href="https://zoom.us/download">https://zoom.us/download</a></p></li>

<li><p><strong>Subversion</strong> (svn) – Source control
<a href="https://subversion.apache.org/">https://subversion.apache.org/</a></p></li></ul>

<pre><code>sudo apt install subversion
</code></pre>

<h3 id="firefox-plugins" id="firefox-plugins">Firefox plugins:</h3>

<p>These are my must-have plugins:</p>
<ul><li><p>uBlock Origin – Ad blocker
<a href="https://addons.mozilla.org/en-US/firefox/addon/ublock-origin/">https://addons.mozilla.org/en-US/firefox/addon/ublock-origin/</a></p></li>

<li><p>Script blocker – Selectively enable Javascript
<a href="https://addons.mozilla.org/en-US/firefox/addon/noscript">https://addons.mozilla.org/en-US/firefox/addon/noscript</a></p></li>

<li><p>Privacy Badger – Reduce tracking
<a href="https://addons.mozilla.org/en-US/firefox/addon/privacy-badger17">https://addons.mozilla.org/en-US/firefox/addon/privacy-badger17</a></p></li>

<li><p>Facebook Container – Reduce tracking (by sandboxing Facebook login)
<a href="https://addons.mozilla.org/en-US/firefox/addon/facebook-container">https://addons.mozilla.org/en-US/firefox/addon/facebook-container</a></p></li>

<li><p>Pinboard – Cloud bookmarks (<a href="https://pinboard.in">https://pinboard.in</a>)
<a href="https://addons.mozilla.org/en-US/firefox/addon/pinboard-extension/">https://addons.mozilla.org/en-US/firefox/addon/pinboard-extension/</a></p>

<h4 id="firefox-configuration" id="firefox-configuration">Firefox configuration</h4>

<p>These are the firefox config settings that I changed.</p>
<ul><li>Default browser</li>
<li>Default search –&gt; Duckduckgo</li>
<li>fingerprint protection</li>
<li>block requests for location</li>
<li>tracking protection</li>
<li>do not track</li>
<li>don&#39;t save passwords/credit cards/addresses</li>
<li>disable suggestions</li>
<li>disable analytics</li>
<li>enable https-only mode in all windows</li></ul></li></ul>

<h3 id="not-yet-installed-but-probably-will-soon" id="not-yet-installed-but-probably-will-soon">Not yet installed (but probably will soon)</h3>
<ul><li><strong>gimp</strong> – Raster image editor</li>
<li><strong>signal</strong> – Online chat</li>
<li><strong>discord</strong> – Online chat</li>
<li><strong>chromium</strong> – Web browser</li></ul>

<p><a href="https://dominicds.com/tag:software" class="hashtag"><span>#</span><span class="p-category">software</span></a> <a href="https://dominicds.com/tag:applications" class="hashtag"><span>#</span><span class="p-category">applications</span></a></p>
]]></content:encoded>
      <guid>https://dominicds.com/computer-setup-software</guid>
      <pubDate>Wed, 10 Nov 2021 14:52:53 +0000</pubDate>
    </item>
    <item>
      <title>App Highlight: Ventoy</title>
      <link>https://dominicds.com/app-highlight-ventoy?pk_campaign=rss-feed</link>
      <description>&lt;![CDATA[---&#xA;A &#34;live USB&#34; is a term used by computer people to describe a USB flash drive that&#39;s been configured to contain a full operating system that can be run directly from the drive. This is neat because it lets any compatible computer run the operating system without first needing to install anything.&#xA;&#xA;There are a lot of cool purpose-built operating systems that wouldn&#39;t really make sense for general usage, but work great from a live USB, such as:&#xA;&#xA; DBAN - A tool for securely erasing disks&#xA; System Resuce - A toolkit for repairing or salvaging data from damaged or unbootable computers&#xA; Clonezilla - A tool for imagining drives&#xA; Tails - A security-hardened OS that doesn&#39;t store anything&#xA;&#xA;However, carrying around a dozen flash drives is annoying, and the process of keeping all of them up-to-date quickly becomes cumbersome.&#xA;&#xA;On an episode of the Linux Unplugged podcast, I learned about a neat tool called Ventoy. &#xA;&#xA;!--more--&#xA;&#xA;Ventoy is really great. It sets up a USB thumb drive so it looks like a mass storage device when I insert it into my running computer. I can then drop .iso (or .img, .vhd, .efi and others) files into the drive. &#xA;&#xA;OS .iso files in a directory&#xA;&#xA;After that&#39;s done, if I tell a computer to boot from that thumb drive, I am presented with a menu listing all of those disk images. &#xA;&#xA;Boot menu listing OS .iso files&#xA;&#xA;Half a dozen live USBs are combined into one, and updating any of .isos is as simple as copying a new file over. &#xA;&#xA;The thumb drive is still usable as a basic data storage device for stashin or sharing files. It&#39;s been a great tool, check it out.&#xA;&#xA;#tech #recommendations&#xA;]]&gt;</description>
      <content:encoded><![CDATA[<hr/>

<p>A “live USB” is a term used by computer people to describe a USB flash drive that&#39;s been configured to contain a full operating system that can be run directly from the drive. This is neat because it lets any compatible computer run the operating system without first needing to install anything.</p>

<p>There are a lot of cool purpose-built operating systems that wouldn&#39;t really make sense for general usage, but work great from a live USB, such as:</p>
<ul><li><a href="https://dban.org/">DBAN</a> – A tool for securely erasing disks</li>
<li><a href="https://www.system-rescue.org/">System Resuce</a> – A toolkit for repairing or salvaging data from damaged or unbootable computers</li>
<li><a href="https://clonezilla.org/">Clonezilla</a> – A tool for imagining drives</li>
<li><a href="https://tails.boum.org/">Tails</a> – A security-hardened OS that doesn&#39;t store anything</li></ul>

<p>However, carrying around a dozen flash drives is annoying, and the process of keeping all of them up-to-date quickly becomes cumbersome.</p>

<p>On an <a href="https://linuxunplugged.com/389">episode</a> of the Linux Unplugged podcast, I learned about a neat tool called <a href="https://github.com/ventoy/Ventoy">Ventoy</a>.</p>



<p>Ventoy is really great. It sets up a USB thumb drive so it looks like a mass storage device when I insert it into my running computer. I can then drop .iso (or .img, .vhd, .efi and others) files into the drive.</p>

<p><img src="https://i.snap.as/qqPeKK5X.png" alt="OS .iso files in a directory"/></p>

<p>After that&#39;s done, if I tell a computer to boot from that thumb drive, I am presented with a menu listing all of those disk images.</p>

<p><img src="https://i.snap.as/3Q75EJFm.png" alt="Boot menu listing OS .iso files"/></p>

<p>Half a dozen live USBs are combined into one, and updating any of .isos is as simple as copying a new file over.</p>

<p>The thumb drive is still usable as a basic data storage device for stashin or sharing files. It&#39;s been a great tool, <a href="https://www.ventoy.net">check it out</a>.</p>

<p><a href="https://dominicds.com/tag:tech" class="hashtag"><span>#</span><span class="p-category">tech</span></a> <a href="https://dominicds.com/tag:recommendations" class="hashtag"><span>#</span><span class="p-category">recommendations</span></a></p>
]]></content:encoded>
      <guid>https://dominicds.com/app-highlight-ventoy</guid>
      <pubDate>Fri, 22 Oct 2021 14:00:27 +0000</pubDate>
    </item>
    <item>
      <title>Gear I keep in my vehicle </title>
      <link>https://dominicds.com/gear-i-keep-in-my-vehicle?pk_campaign=rss-feed</link>
      <description>&lt;![CDATA[---&#xA;&#xA;This is my primary vehicle. It&#39;s a ten year old GMC Canyon and I&#39;ve found it to be great. This post outlines the gear I&#39;ve accumulated that ends up living permanently inside the truck. &#xA;&#xA;!--more--&#xA;In the Cab&#xA;The passenger cabin isn&#39;t very packed, but there are a few essentials.&#xA;  &#xA; gallon jug of drinking water_ - I keep this only half full so it doesn&#39;t burst when it freezes solid in the winter&#xA; blankets - In addition to warmth, these protect the seats from my dog&#xA; The Maine Atlas &amp; Gazetteer - Big, detailed road maps of the whole state, indispensable especially since I often don&#39;t have a mobile data connection&#xA; additional drinking water in bottles &#xA; first aid kit - Normally I avoid pre-assembled first aid kits, but this one is very robust and I&#39;ve added some additional stuff&#xA; power inverter - This lets me plug normal household electronics into the truck&#39;s power. I&#39;ve literally never used this but it still seems like a good idea.&#xA; flashlight - I think this one is USB rechargeable&#xA; window breaker/seat belt cutter tool - Someone was kind enough to give this to me and it seems like it could come in handy someday&#xA; notepad and pencil/sharpie - To leave a note, record information (e.g.insurance info after an accident), and so on&#xA; hand sani -&#xA; small umbrella - Very nice for unexpected rain&#xA; phone charger - USB C, iPhone (lightning), and micro USB. Plugs into cigarette lighter.&#xA; hands free phone cradle - &#xA; built-in jack and spare tire access tool - These are under the rear seats&#xA; tissues, spare eyeglasses - &#xA; Bluetooth speaker - My vehicle&#39;s stereo doesn&#39;t have Bluetooth or AUX input, so I use this.&#xA; work gloves - Useful for tons of stuff, from moving roadkill and debris to doing repairs&#xA; ice scraper and telescoping snow brush - &#xA;&#xA; &#xA;&#xA;In the Bed&#xA;&#xA;I keep a couple plastic totes in the truck bed. &#xA;&#xA;Towing Kit&#xA;This container holds all of the gear I need for hauling/towing&#xA;&#xA;ball hitch (6000lbs)&#xA;towing plug&#xA;tow strap (5000 lbs)&#xA;ratchet straps (1x 500lb 4x 1000lb)&#xA;rope and bungees (including a short brightly-colored rope for tying on end of long objects)&#xA;&#xA;Breakdown Kit&#xA;&#xA;Inside this tote is mostly tools for handling basic breakdowns, including if I need to help someone else. I&#39;m often in rural areas without a nearby service station, having the basics on hand gives me some additional confidence.&#xA;Haynes repair manual&#xA;multi-size lug wrench - Pretty much every type of lug nut can be removed with this, and it&#39;s nice and big for good leverage&#xA;spare windshield wipers - A broken wiper can be a major safety issue&#xA;jumper cables&#xA;electric tire pump - This plugs into the cigarette lighter&#xA;USB power bank with jumper attachment - I&#39;ve successfully jumped my own dead battery with this, and it can also charge your phone&#xA;socket set&#xA;ratcheting screwdriver set (with additional hex &amp; socket drivers)&#xA;glow sticks &amp; reflective triangles (3x) - To warn other drivers about hazards on the road&#xA;jack - I can&#39;t really explain why I have two jacks&#xA;dead-blow hammer &#xA;tire pressure gauge &#xA;]]&gt;</description>
      <content:encoded><![CDATA[<hr/>

<p>This is my primary vehicle. It&#39;s a ten year old GMC Canyon and I&#39;ve found it to be great. This post outlines the gear I&#39;ve accumulated that ends up living permanently inside the truck.</p>

<p><img src="https://i.snap.as/2GYO2r4H.png" alt=""/>
</p>

<h2 id="in-the-cab" id="in-the-cab">In the Cab</h2>

<p>The passenger cabin isn&#39;t very packed, but there are a few essentials.
 <img src="https://i.snap.as/FY8wFLPT.jpg" alt=""/>
 – <strong>gallon jug of drinking water_</strong> – I keep this only half full so it doesn&#39;t burst when it freezes solid in the winter
 – <strong>blankets</strong> – In addition to warmth, these protect the seats from my dog
 – <strong>The Maine Atlas &amp; Gazetteer</strong> – Big, detailed road maps of the whole state, indispensable especially since I often don&#39;t have a mobile data connection
 – additional <strong>drinking water in bottles</strong>
 – <strong>first aid kit</strong> – Normally I avoid pre-assembled first aid kits, but this one is very robust and I&#39;ve added some additional stuff
 – <strong>power inverter</strong> – This lets me plug normal household electronics into the truck&#39;s power. I&#39;ve literally never used this but it still seems like a good idea.
 – <strong>flashlight</strong> – I think this one is USB rechargeable
 – <strong>window breaker/seat belt cutter tool</strong> – Someone was kind enough to give this to me and it seems like it could come in handy someday
 – <strong>notepad and pencil/sharpie</strong> – To leave a note, record information (e.g.insurance info after an accident), and so on
 – <strong>hand sani</strong> -
 – <strong>small umbrella</strong> – Very nice for unexpected rain
 – <strong>phone charger</strong> – USB C, iPhone (lightning), and micro USB. Plugs into cigarette lighter.
 – <strong>hands free phone cradle</strong> –
 – <strong>built-in jack and spare tire access tool</strong> – These are under the rear seats
 – <strong>tissues, spare eyeglasses</strong> –
 – <strong>Bluetooth speaker</strong> – My vehicle&#39;s stereo doesn&#39;t have Bluetooth or AUX input, so I use this.
 – <strong>work gloves</strong> – Useful for tons of stuff, from moving roadkill and debris to doing repairs
 – <strong>ice scraper and telescoping snow brush</strong> -</p>

<h2 id="in-the-bed" id="in-the-bed">In the Bed</h2>

<p><img src="https://i.snap.as/J7budZeW.png" alt=""/>
I keep a couple plastic totes in the truck bed.</p>

<h3 id="towing-kit" id="towing-kit">Towing Kit</h3>

<p>This container holds all of the gear I need for hauling/towing
<img src="https://i.snap.as/ViRaSuPt.png" alt=""/>
– <strong>ball hitch (6000lbs)</strong>
– <strong>towing plug</strong>
– <strong>tow strap (5000 lbs)</strong>
– <strong>ratchet straps (1x 500lb 4x 1000lb)</strong>
– <strong>rope and bungees (including a short brightly-colored rope for tying on end of long objects)</strong></p>

<h3 id="breakdown-kit" id="breakdown-kit">Breakdown Kit</h3>

<p><img src="https://i.snap.as/N0l6DbW6.png" alt=""/>
Inside this tote is mostly tools for handling basic breakdowns, including if I need to help someone else. I&#39;m often in rural areas without a nearby service station, having the basics on hand gives me some additional confidence.
– <strong>Haynes repair manual</strong>
– <strong>multi-size lug wrench</strong> – Pretty much every type of lug nut can be removed with this, and it&#39;s nice and big for good leverage
– <strong>spare windshield wipers</strong> – A broken wiper can be a major safety issue
– <strong>jumper cables</strong>
– <strong>electric tire pump</strong> – This plugs into the cigarette lighter
– <strong>USB power bank with jumper attachment</strong> – I&#39;ve successfully jumped my own dead battery with this, and it can also charge your phone
– <strong>socket set</strong>
– <strong>ratcheting screwdriver set (with additional hex &amp; socket drivers)</strong>
– <strong>glow sticks &amp; reflective triangles (3x)</strong> – To warn other drivers about hazards on the road
– <strong>jack</strong> – I can&#39;t really explain why I have two jacks
– <strong>dead-blow hammer</strong>
– <strong>tire pressure gauge</strong></p>
]]></content:encoded>
      <guid>https://dominicds.com/gear-i-keep-in-my-vehicle</guid>
      <pubDate>Thu, 08 Jul 2021 15:23:36 +0000</pubDate>
    </item>
    <item>
      <title>Weather Station Conclusion</title>
      <link>https://dominicds.com/weather-station-conclusion?pk_campaign=rss-feed</link>
      <description>&lt;![CDATA[---&#xA;This is a follow-up to the previous weather station post.&#xA;&#xA;I made a small device that uses WiFi to record weather metrics where I live. &#xA;&#xA;!--more--&#xA;&#xA;Components&#xA;Adafruit Feather HUZZAH &#xA;This tiny computer, based on the amazing ESP8266 chip, is the heart of the system. It runs a full TCP/IP stack and has a small wireless antenna. Its Deep Sleep functionality lets me run the device for (at least) weeks on a single battery charge.&#xA;&#xA;AM2302 temperature-humidity sensor)&#xA;This is a low-cost digital sensor based on the DHT22. Adafruit tutorials and libraries made this a piece of cake to use, and the wiring is simple.&#xA;&#xA;Pelican 1010 Micro case&#xA;I acquired this case a year or two ago. It turned out to be perfect for the project: it&#39;s small, waterproof, and the padded interior easily protects everything inside from banging around when dropped. &#xA;&#xA;Finalization Process&#xA;&#xA;After an extended period of testing on breadboard, I transfered all of the components to an Adafruit Perma-Proto board. This is a neat little prototype board with traces exactly matching the layout of a breadboard.&#xA;&#xA;This required me to carefully document the existing connections and (hopefully) replicate the exact same layout on the protoboard, where everything was to be permanently soldered in place.&#xA;&#xA;This required a lot of delicate and precise work. I am NOT skilled at soldering!&#xA;&#xA;I somewhat screwed this up, and ended up having to do a pretty large amount of rework. Not surprising. The mistakes helped me understand the value of testing with a multimeter as I go.&#xA;&#xA;After resolving my mistakes, I verified that everything was working properly.&#xA;&#xA;The case required a small modification to allow passage of the temp sensor&#39;s wires, which I encased in heat-shrink tubing. I also painted the sensor black, to match the case&#xA;&#xA;Other than addressing a few easy TODOs, the client and server code hasn&#39;t really needed to change from the first prototype. I am still using Grafana to visualize the data stored in MySQL.&#xA;&#xA;Low battery notification is handled on the server--it assumes that the battery is probably dead if a message hasn&#39;t been received for a while.&#xA;&#xA;Conclusion&#xA;&#xA;This was a great opportunity to learn. As I mentioned in my previous post, this was my first time touching this technology. My skills and confidence have expanded greatly, and I&#39;m excited to start another microcontroller project in the future.&#xA;&#xA;The most valuable learning resource for this project was Adafruit&#39;s Learning System. Having access to detailed pinouts, tutorials, and documentation is increbily helpful as a beginner. Adafruit is a really rad organization and their contribution to the community is immeasurable.&#xA;&#xA;I&#39;m very happy to have finished the project. I ran into a number of major issues which could have aborted the whole thing, especially soldering mistakes which left things permanently attached in the wrong places. Pushing through and getting the project to a state I&#39;m happy with was very satisfying.&#xA;&#xA;]]&gt;</description>
      <content:encoded><![CDATA[<hr/>

<p><em>This is a follow-up to the <a href="https://dominicds.com/weather-station-project">previous</a> weather station post.</em></p>

<p>I made a small device that uses WiFi to record weather metrics where I live.</p>

<p><img src="https://i.snap.as/s8Bv7aHf.jpg" alt=""/>
</p>

<h2 id="components" id="components">Components</h2>

<p><a href="https://www.adafruit.com/product/2821">Adafruit Feather HUZZAH</a>
This tiny computer, based on the amazing ESP8266 chip, is the heart of the system. It runs a full TCP/IP stack and has a small wireless antenna. Its Deep Sleep functionality lets me run the device for (at least) weeks on a single <a href="https://www.adafruit.com/product/258">battery</a> charge.</p>

<p><a href="https://www.adafruit.com/product/393]">AM2302 temperature-humidity sensor</a>
This is a low-cost digital sensor based on the <a href="https://www.espruino.com/DHT22">DHT22</a>. Adafruit tutorials and libraries made this a piece of cake to use, and the wiring is simple.</p>

<p><a href="https://www.pelican.com/us/en/product/cases/micro/1010">Pelican 1010 Micro case</a>
I acquired this case a year or two ago. It turned out to be perfect for the project: it&#39;s small, waterproof, and the padded interior easily protects everything inside from banging around when dropped.</p>

<p><img src="https://i.snap.as/B5Vt1Nhl.jpg" alt=""/></p>

<h2 id="finalization-process" id="finalization-process">Finalization Process</h2>

<p><img src="https://i.snap.as/vpDPlF0x.jpg" alt=""/>
After an extended period of testing on breadboard, I transfered all of the components to an <a href="https://www.adafruit.com/product/1609">Adafruit Perma-Proto board</a>. This is a neat little prototype board with traces exactly matching the layout of a breadboard.</p>

<p>This required me to carefully document the existing connections and (hopefully) replicate the exact same layout on the protoboard, where everything was to be <strong>permanently</strong> soldered in place.</p>

<p><img src="https://i.snap.as/cftdXXFY.jpg" alt=""/></p>

<p>This required a lot of delicate and precise work. I am NOT skilled at soldering!</p>

<p><img src="https://i.snap.as/rrDkiVxY.jpg" alt=""/></p>

<p>I somewhat screwed this up, and ended up having to do a pretty large amount of rework. Not surprising. The mistakes helped me understand the value of testing with a multimeter as I go.</p>

<p>After resolving my mistakes, I verified that everything was working properly.</p>

<p>The case required a small modification to allow passage of the temp sensor&#39;s wires, which I encased in heat-shrink tubing. I also painted the sensor black, to match the case</p>

<p><img src="https://i.snap.as/wdBQM5N2.jpg" alt=""/></p>

<p>Other than addressing a few easy TODOs, the client and server code hasn&#39;t really needed to change from the first prototype. I am still using Grafana to visualize the data stored in MySQL.</p>

<p><img src="https://i.snap.as/lhhKsCbq.png" alt=""/></p>

<p>Low battery notification is handled on the server—it assumes that the battery is probably dead if a message hasn&#39;t been received for a while.</p>

<h1 id="conclusion" id="conclusion">Conclusion</h1>

<p>This was a great opportunity to learn. As I mentioned in my previous post, this was my first time touching this technology. My skills and confidence have expanded greatly, and I&#39;m excited to start another microcontroller project in the future.</p>

<p>The most valuable learning resource for this project was <a href="https://learn.adafruit.com/">Adafruit&#39;s Learning System</a>. Having access to detailed pinouts, tutorials, and documentation is increbily helpful as a beginner. Adafruit is a really rad organization and their contribution to the community is immeasurable.</p>

<p>I&#39;m very happy to have finished the project. I ran into a number of major issues which could have aborted the whole thing, especially soldering mistakes which left things permanently attached in the wrong places. Pushing through and getting the project to a state I&#39;m happy with was very satisfying.</p>
]]></content:encoded>
      <guid>https://dominicds.com/weather-station-conclusion</guid>
      <pubDate>Mon, 03 May 2021 19:43:10 +0000</pubDate>
    </item>
  </channel>
</rss>