iN8sWoRLd Mon, 20 Aug 2018 21:48:56 -0700 Mon, 20 Aug 2018 21:48:56 -0700 Pico Deactivated my twitter account <p>When I first set up a twitter account sometime in 2007 I did it just because it was the new thing and I wanted to ensure that I secured my &quot;twitter handle&quot;. I never posted anything on it, and then forgot about it. Sometime in 2011 I was having a discussion with my office mate about the service and what, if anything, it was good for. At the time it seemed to be not much more than a way to quickly post a picture of your dinner on the web. I had already been on the web and posting what I thought was more interesting content than that for many years so I had sort of dismissed twitter entirely. My ex-Marine office buddy brought up a couple interesting points though - it was a great way for companies to announce things to their customers, or for famous folks to announce they were going to be in town. It had an immediacy which &quot;blogging&quot; didn't have - and at the time facebook was just a way to post pictures of your friends doing embarrassing things - it wasn't a real time platform. Twitter was real time, we started to see its use at emergencies or uprisings to coordinate &quot;flash mobs&quot; or avoid police barricades. I started to think that maybe it was more useful than I originally thought and decided to start using the service.</p> <p>Thats when I hit a snag. I had set up my account those years ago using an email address which I no longer controlled. I had set it up with an email account I used to use for work and we had cancelled AT&amp;T when we got cable. I had taken care of all the important accounts but this twitter account wasn't really something I even thought about. Sure, I could just create a new account - but I had taken care to sign up with my domain name and I was damned if I wasn't going to be able to use it now. I contacted twitter even though my quick research suggested they never released accounts unless you had control of the original email address and yep, they denied me saying there was no way for them to prove who I was. As it turned out, I have been using GPG since about 2003 and that old email address was one of the email addresses I had used with it. I had since revoked the email address, but it was still listed in my current key and lived up on a bunch of key servers obviously signed and listed as one of the email addresses associated with my current email address. I decided to try again. This time I signed my email with GPG and asked them to have a higher level tech confirm that while I no longer had that email address, my GPG key was proof that I controlled it at the time the account was set up and to please change the email address to my current one. It took some time, but eventually I got an email from twitter that they had released the account to me under my current email address.</p> <p>I think if there was one thing that made me continue using twitter it was that someone at twitter had taken the time to actually read what I wrote, understood it, saw that I controlled the domain name and was cool enough to release the account to me. I didn't use it all that much, but I did post stuff from time to time. Usually just text, occassionally a retweet of something cool I saw and rarely a picture. At first I used it as I did other social media platforms like Google+ to just post links back to my blog, as a sort of announcement email to a bunch of people who would probably not appreciate my spamming them in email but have no problem scrolling through hundreds of pages of crap looking for some image that will catch their temporary attention. Twitter obviously became a bigger deal very recently as Trump elevated it to political prominence, but before that it was just a very niche platform where some of the stranger people I know hang out.</p> <p>The rise of bots changed everything on twitter for me. I could no longer tell if commenters were real people or just a really good automated system. I would read threads and see fights develop over comments that may not have been made by people at all, or people that were possibly being paid to pick fights. Then the nonsense - &quot;Fake News&quot; as it were. So much of what I liked about twitter disappeared as &quot;promoted ads&quot; appeared, and thousands of fake accounts caused mayhem. High profile people with thousands of followers conducting verbal warfare on competitors or the truth itself. But the final straw for twitter (for me) was when I realized that their &quot;terms of service&quot; were being used to shut down certain people while they gave others a total pass for even worse behavior. Twitter is not the public square - the right to free speech on someone else's servers is not among those enumerated in the Constitution, but conversely I do not owe Twitter my patronage or my time. I choose to stop using their platform and have deactivated my account.</p> <img align="right" src="" alt="Twitter_Archive" /> <p>I do want to mention that Twitter made it nice and easy to export all of my content and provided it in a nicely formatted archive which I can review easily enough in a browser and it seems to work just as well in Chrome and Firefox. I will miss seeing posts by interesting folks I followed on twitter, but the gems to junk ratio was just too low.</p> Sun, 19 Aug 2018 20:13:00 -0700 social twitter Roto-tilling <p><a href=""></p> <img align="right" src="" alt="Rototiller" /> <p></a></p> <p>It had rained so much in May that we didn't have a chance to get all the plants in the ground but finally after a break in the weather on Sunday the 20th there was an opportunity to get outside. The area we have cordoned off with chicken wire to keep out the bunnies and groundhogs is pretty small but my back was in bad shape for some weeks and there was just no way the ground was getting turned over with a shovel. I pulled out the old rototiller, a late '70s Troy-Built, and got it ready.</p> <p>If you've ever been in Troy, NY where these were made you might wonder how a business making roto-tillers could possibly survive on local sales as it seems there is very little soil on top of the Taconic shales and slates that seem to be everywhere at least out where most of the farms are east of the city. </p> <img align="right" src="" alt="Rototiller_Catalog" /> <p>I still have all the original documentation (and bill of sale) from when my dad bought it. I know my mom was absolutely sure he was going to kill himself with it and I don't really blame her - this thing is a beast and if you don't know what you're doing it can easily get away from you. </p> <p>Last year I noticed the shear pin on one of the wheel shafts was missing when the wheel nearly walked off the shaft so I replaced that this year with a 1/4-20 smooth shaft bolt. I checked the oil and it still looked fresh and was at the full line. I put in a little gas - the last bit of last year's gas which I know is a bad idea. Some years ago I had replaced the original metal gas tank with a plastic one from a wood chipper that I had wisely given away. The original had varnished up completely. A neighbor and I tried to salvage it with the iron / battery electrolysis trick but it was too far gone. The plastic tank is always nice and clean, although a little Stabl tossed in after using it probably helps.</p> <p>I removed the air filter (not sure how necessary this really is but it helped last year), unscrewed the spark plug, shot a little starter fluid into the spark plug hole, quick put the spark plug back in, flipped the throttle to ON position, pulled and it started on the 2nd pull!</p> <p>I put the air filter back on and rototilled a bunch of spots in the yard where we wanted to put flowers in addition to the garden without killing myself. A couple shelf-wood ramps kept in the shed ensure it gets back in there easily. I keep a pan under the engine just in case it leaks (and I'm pretty sure the seals do leak) but there hasn't been much accumulating in that.</p> <p>I've had a bunch of trees taken out over the last few years so there is a lot more sun in the yard now. I hope to open up some more areas for a bigger garden someday.</p> Mon, 21 May 2018 00:00:00 -0700 garden machines Got My Amateur Radio License <img align="right" src="" alt="Ham Radio" /> <h1>Why Amateur Radio?</h1> <p>I've been listening to scanners since I was a young teen, first at my grandfather's house outside of Philadelphia (which was a lot busier than where I lived) and later at my own home where the scanner is now non-stop police calls 24 hours a day. In High School and for at least 10 years afterward I had a CB as did most of my friends and we used the radio to coordinate to meet up at the parks or out in the woods. We all had ridiculous handles and our range was terrible even with a sweet K40 antenna none of us ever really bothered to actually learn anything about radio. If we had, we could certainly have made them much more useful.</p> <p>Back when my parents first got their Amateur radio licenses sometime in the late 90s I started studying to get mine as well. CB had become a wasteland and no one I knew was using it anymore anyway. I had taken some classes at the local community college in basic electronics and was already working in the fire industry so radio was definitely interesting to me but for some reason I just never scheduled myself to take the test and eventually lost interest. Recently I decided to pursue it again, and now with the internet the resources are just everywhere. There really is no excuse to not learn as much as you want about anything. Hams with YouTube channels will mentor you for free and there are web sites which offer free study and practice exams you can do right in the browser with instant feedback.</p> <p>Beyond the interest that I have in scanning and radio in general, I'm also curious about some of the possibilities in digital radio networking. While a lot of older Amateurs seem to have gotten into the hobby mainly for voice communications, contesting (how many contacts can you make and how far away), and emergency preparedness (radio can still function even in a grid down situation), a lot of younger Amateurs (and this includes anyone who grew up in the early days of computing and BBS) seem to have an additional interest in radio for purposes of networking for multiple media types.</p> <h1>How I Prepared for my Technician and General test</h1> <p><img align="right" src="" alt="Ham Radio" />To prepare for the exam I used <a href=""></a> which is provided by IComm (a radio manufacturer). The site is nice because you can authenticate with Google without having to set up yet another account and its interface was slick and easy to use and understand. It keeps track of which questions you've seen and the percentage of those you've gotten correct. You can review the questions by section and take practice exams. It worked so well that I passed for Technician within about a week of study. The math was really just a few simple formulas (V=IR, P=EI, and a rule of thumb: 300/Freq in MHz = wavelength in meters), the rest is really just memorization. The General exam had a lot more information to become familiar with, but I managed to prepare for that over a couple weeks and passed on Apr 28, 2018. I've already started studying for the Amateur Extra exam!</p> <h1>Notes</h1> <p>The rest of this post is really just my reference notes which I will definitely be updating as I investigate (and learn) more.</p> <h2>Links to Interesting Amateur Radio Related Topics</h2> <ul> <li><a href="">Amateur Frequency Chart</a></li> <li><a href="">Simple 2 Meter Antenna</a></li> <li><a href="">Ham networking</a></li> <li><a href="">Ham Priviledges</a></li> <li><a href="">DX Maps</a> - a tool for mapping contacts you make.</li> <li><a href="">Q Codes</a></li> <li><a href="">Amateur Auxilliary</a> is a group which performs self policing activities including direction finding (triangulating) and reporting non-compliant transmitters.</li> </ul> <h3>Networking</h3> <ul> <li><a href="">WinLink</a></li> <li><a href="">AREDN mesh networking</a> - also see <a href="">AREDN network map</a></li> <li><a href="">AX.25 on Raspberry Pi</a></li> <li><a href="">Terminal Node Controller for Raspberry Pi</a></li> <li><a href="">Tigertronic Signalink</a> - a soundcard interface which means you don't need a TNC</li> <li><a href="">APRS on-line mapping</a></li> <li><a href="">Pi-gate</a></li> </ul> <h3>Resources for Digital</h3> <ul> <li><a href="">Good article</a> on getting started in digital</li> <li><a href="">WebSDR</a> - software defined radio receiver connected to the internet</li> <li><a href=""></a> - website where you can access and control internet connected SDR Radios</li> </ul> <h3>Digital Modes</h3> <ul> <li><a href="">RTTY</a> is a very old digital mode. RTTY started out as teletype. Still being used for maritime weather alerts.</li> <li><a href="">PSK31</a> is supposed to be the most popular. Have some built in noise correction which allows it to work over worse noise than RTTY.</li> <li><a href="">PACTOR</a> radio modulation mode for digital information on HF - from a German company, only PACTOR I is open, other modes are proprietary and encrypted requiring a PACTOR-made modem.</li> <li><a href="">JT</a> - a software used for weak signal communications. <ul> <li><a href="">JT65</a> - use software to send text of 13 characters for weak contacts</li> <li>JT9 - same as JT65 but modulates to a 9 FSK</li> </ul></li> <li> <p><a href="">FT-8</a> - article about the great new shiny digital mode which is luring folks away from JT?</p> </li> <li> <p><a href="">D-Star</a> - I'm not quite where to file this link. Great article discussing D-Star, a digital standard which links repeaters over the globe and can do 128Kbps (enough to load webpages) in DD mode and provides digital voice (DV) communication (with simultaneous slow mode digital data). Less noise than FM.</p> <ul> <li>no antenna? use a DV dongle to connect to the network over your internet connection.</li> </ul> </li> <li><a href="">D-Star vs DMR vs Fusion</a> - nice article (updated from his original post in 2016) about the differences between these three digital modes</li> </ul> <h3>Software:</h3> <ul> <li><a href="">MixW</a></li> <li><a href="">FLDigi</a></li> <li><a href="">Digital Master 780</a> - another software to decode digital signals</li> <li><a href="">CHIRP</a> - open source / free radio programming tool</li> <li><a href="">Log4OM</a> was suggested in one of W6LG's videos, but that is for Windows only. However, understanding what this software can do should inform as I look for something that runs on a decent OS.</li> <li><a href="">XLog</a> - linux logging software with simple text file backend</li> <li><a href="">CQRLog</a> - another linux logging software but this one uses mySQL backend</li> <li><a href="">Great article</a> on using a chromebook in a shack! Mentions running the following under ChromeOS: <ul> <li><a href="">FLDigi</a></li> <li><a href="">WSJT-X</a></li> <li><a href="">CQRLog</a></li> </ul></li> <li><a href="">APRS Messenger</a> - written for Windows but a post in Apr 2018 CrossCountryWireless claims it is working in Ubuntu under wine. Great little utility to send and receive digital text over APRS.</li> </ul> <h2>What's needed for a complete system?</h2> <ul> <li><strong>Power Supply</strong> (transformer type), 25-30A (the resgulated power supply I have already is only rated to 2.5A) <a href="">Jetstream JTPS45</a> (40A cont) $139</li> <li><strong>Transciever</strong> (this is the radio - see separate section)</li> <li><strong>Linear Amplifier</strong> - not required to start out, but once I have a General license I'll have the right to transmit with a lot more power so it might be something I'd want to do someday.</li> <li><strong>Microphone</strong> - keep it under $100. Shure 444, Heil HC55. Can I use any of my mics? Shure SM7B ($350) 160 Ohms is 1/4 the typical Ham mic. Why not an SM58?</li> <li><strong>Microphone stand / boom</strong> - Northcomm Technologies SM7B boom arm ($300)</li> <li><strong>Antenna</strong> - this huge issue will have to be dealt with in another section</li> <li><strong>Logging program</strong> - need a machine set up on the desk to log contacts</li> <li><strong>Shack Furniture</strong> a friend suggested that I be careful to not leave this off the list. For a good experience, remember to budget for a good chair and desk dedicated to the hobby.</li> </ul> <h3>Meters I should probably have</h3> <ul> <li><strong>Antenna Tuner</strong> - most people say you will use this all the time where you only use an analyzer when you've made a new antenna. It seems like you should be able to to get one of these with an SWR meter in it?</li> <li><strong>Field strength meter and calibrated antenna</strong> - for indoor antennas one of the questions on the General exam says: &quot;You should use testing equipment (calibrated field-strength meter and calibrated antenna) to make sure that the maximum permissible exposure (MPE) limits are not exceeded.&quot;</li> <li><strong>Antenna Analyzer</strong> - in many cases better than an SWR meter and doesn't require an external RF source.</li> <li><strong>Wattmeter / SWR meter</strong></li> <li><strong>Multi-meter</strong> - this is something I already have</li> </ul> <h2>Transcievers (radios) I'm interested in</h2> <h3>Kenwood</h3> <ul> <li><a href="">Kenwood 281a</a> mobile - 144MHz really cheap and suggested as a good entry level mobile, this radio only does FM but its MIL SPEC so it can take a beating. About $150\</li> <li><a href="">Kenwood TM-V71A</a> mobile - 144/440MHz dual band. saw on K8ZUK ARES Youtube channel used with a Tigertronic Signalink, about $350 <ul> <li>annoying separate head unit designed for mounting in dash with 10 ft cable</li> </ul></li> <li><a href="">Kenwood TM-D710GA</a> mobile - about $560</li> <li><a href="">Kenwood TS-480SAT/HX</a> base station - $850, the faceplate can not attach to the rig itself</li> <li>[Kenwood TS-2000] base station - HF/50/144/440 MHz $1,500</li> </ul> <h3>Yaesu (Japanese)</h3> <ul> <li><a href="">Yaesu FT-8900R</a> - quad band, does transmit on SSB but will receive. $380</li> <li><a href=";ProdCatID=106&amp;encProdID=2804F70E1A8F3C4B638CB8E0F201158C">Yaesu FT-7900R</a> - Amateur Radio Dual-Band 144/440 MHz Transceiver 50/45 Watts, does not have cross band repeat. Remote mountable faceplate. $304</li> <li><a href="">Yaesu FT-857D</a> - mobile radio that seems more like a base station. will do HF/VHF/UHF bands but can scan more, xmit 100W at 2 meters. Best used with a screwdriver antenna. $920</li> <li><a href="">Radios compared</a></li> </ul> <h3>Icom</h3> <ul> <li><a href="">Icom IC-7100</a> HF/50/144/440 MHz D-Star capable, touch screen <ul> <li>$1,100</li> <li>really needs a better hand mic, suggestion: Icom HM-151</li> <li>I like the separate desk stand VFO screen</li> </ul></li> <li><a href="">Icom IC-2730A</a> dual band 118-174MHz &amp; 375-550MHz <ul> <li>$320</li> </ul></li> <li><a href="">Icom IC-4100A</a> D-Star capable dual band 50W 118-174, 230-550MHz <ul> <li>$389</li> </ul></li> <li><a href="">Icom IC-880H</a> dual band 144–148, 430–450 MHz, 50W <ul> <li>older than the 4100A</li> <li>D-Star purported to work well</li> <li>Supplied mic is crap</li> </ul></li> </ul> <h3>Features I may want</h3> <ul> <li><em>Cross band repeat</em> - if I get a mobile or base station with this, I'll be able to use an HT to talk &quot;through&quot; it (this might be handy for hanging outside with an HT but having the power of the mobile / base station. This is an added complication in setup which might not be worth the extra effort. I really need to evaluate how I want to operate. </li> <li><em>Remote mountable faceplate</em> - this might be useful in a vehicle so you can mount the radio portion somewhere and run the faceplate up to the dashboard for operation. Or, it might even be useful if using the mobile unit as a base station to have the controls nearer to hand and have the radio on a shelf.</li> <li><em>D-Star</em> or <em>DMR</em> - competing digital modes. Have to evaluate, but suffers the same problems digital TV does as it is an all or nothing transmission. At least you won't be hearing a lot of static.</li> <li><em>Settle on Bands</em> - so far with my HT I've only operated on 2 meter and 70 cm and mostly 2 meter. At least near me 2 meter seems most common. I've heard some New Englanders say that HF is more popular up there which makes sense since folks are farther apart and there are hills and such. </li> </ul> <h3>PoFeng (Baofeng) handi-talkies</h3> <p>While I consider my options for a good base station, part of my plan is to have an HT (handi-talkie) which can be used to communicate while on the road or camping.</p> <ul> <li><a href="">Baofeng BF-F8HP</a> radio</li> <li><a href="">Baofeng USB Cable</a></li> <li><a href="">Nagoya NA-771</a> Antenna</li> </ul> <h2>Antennas</h2> <pre><code>HF (High Frequency) - 3 to 30 MHz (100 to 10 meters) VHF (Very High Freq) - 30 to 300 MHz (10 to 1 meters) UHF (Ultra High Freq) - 300 to 3000 MHz (1 to 10 centimeters)</code></pre> <h3>Fixed installation</h3> <p>Low horizontal antennas, such as dipoles between 1/8 and 1/4 wavelength above the ground work best for daytime skip communications on low frequencies.</p> <ul> <li>Ground mounted or Attic? Indoor antennas will limit the amount of power you can run safely to about 100W</li> <li><a href="">Beam (uni-directional)</a> ARRL, 1972. - antennas for HF <ul> <li>Yagi - a half wave dipole plus parasitic elements</li> <li>Rotatable Dipole</li> </ul></li> <li>Dipole antennas generate high voltages at the ends</li> <li><a href="">Magloop</a> - again, high voltages</li> <li><a href="">Ventenna</a> for 2M (144 MHz)</li> <li><a href="">M2 Eggbeater</a> for 2M (135 to 150 MHz), note the balun</li> <li>Simple DIY <a href="">J-Pole</a> antenna</li> <li>Copper pipe DIY <a href="">J-pole</a> antenna - I wouldn't personally mount it on the back of the car as shown here, but for a sort of stealth install this could be good.</li> </ul> <h3>Mobile Antennas</h3> <p>Most folks stress how important it is that the antenna be solidly grounded - good grounding straps to the frame if you're mounted on a trunk lid for example. The idea of &quot;grounding&quot; something to a vehicle is funny to me given that the whole thing is insulated from the actual ground by big rubber tires.</p> <ul> <li>Ham Stick - bottom loaded inductor with standard whip. &quot;Hamstick&quot; was a trade name of Lakeview Co. and their products were reported to be very good. Their domain,, is not working as of May, 2018. Hamstick has become a sort of generic term for anything like the original Lakeview Ham Stick. MFJ now makes a &quot;Hamstick style&quot; antenna and there are mixed reviews. I do like the mounting and how easy it is to switch them out for various bands. Some folks use them in a dipole configuration, but most agree that while performance is acceptable for 10 to 20 meters, on 40 to 80 meters Hamstick style dipole performance is atrocious.</li> <li><a href="">The Hustler</a> - from NewTronics which is fairly large robust build. <a href="">Model SF-2</a> is a 5/8 wave (51&quot;), 3.4 dB gain 2 meter (144 to 148 MHz) mobile antenna</li> <li><a href="">Diamond M285</a> - mobile 2 meter, single band antenna with NMO mounting.</li> <li><a href="">Browning BR-180</a> was highly rated by folks on eHam.</li> </ul> <p>I think I like the NMO mounting method more than the UHF type, and I've read that its easy to convert from NMO to UHF but not the other way around.</p> <p>That leads to the next investigation, what is the best way to mount it on the vehicle.</p> <h2>Meters</h2> <ul> <li>The <a href="">S-meter and the R-S-T scale</a></li> <li>Directional wattmeter - measures SWR</li> <li>SWR meter</li> <li>Field strength meter - measures the radiation pattern of an antenna and to monitor the relative RF output while making adjustments to antenna or transmitter</li> <li>Antenna analyzer - measure SWR of an antenna system and determine impedence of an unknown coax cable</li> <li>Osciliscope - to see complex wave patterns</li> <li>Voltmeter (multi-meter)</li> </ul> <h2>Great Mentors</h2> <ul> <li><a href="">Jim W6LG on Youtube</a> in Northern CA</li> <li><a href="">TelescopeMan on YouTube</a> - Joe Lalumia</li> <li><a href="">The Old Tech Guy KB9RLW on YouTube</a></li> </ul> <h2>Vanity Call Sign ideas</h2> <p>When you get your Amateur license you are assigned a call sign from the next available call sign by the FCC. This might not be a desirable call sign to you, but you are allowed to request a &quot;vanity&quot; call sign. Since you're going to end up using the sign alot this is definitely something I'm interested in. I'd love it to match my domain name, but <strong>N8WRL</strong> is already taken. I started a list of signs I might want and ended up finding a bunch of joke signs which I neither want nor probably could get. Not sure what I'll do yet, I might just keep whatever I'm assigned.</p> <ul> <li>Read about call signs at <a href="">FCC</a></li> <li>Search for call signs at <a href="">ARRL</a></li> <li>Search for call signs at <a href="">AE7Q</a></li> <li>Search for call signs at <a href="">FCC</a></li> </ul> <h3>Vanity Call Sign</h3> <p>After getting a horrible FCC auto-issued call sign I started to research &quot;vanity&quot; call signs which I'd be happier using. I was surprised that most of the signs I came up with were actually already in use. I've left off a bunch of joke signs like K9SEX which, while hilarious, would probably eventually embarrass me. It took exactly 18 days for it to come through, but I'm much happier now.</p> <h2>Repeaters</h2> <p>The call sign of the repeater is either the call sign of the owner or the call sign of the club that owns / operates the repeater.</p> <p>When programming a repeater into the radio, you need to enter not only the frequency, but usually a tone frequency to which the repeater will respond.</p> <ul> <li><a href="">NY Repeater list</a></li> <li><a href="">Repeaterbook</a></li> <li><a href="">Motorola Quantar</a> - nice write up for identifying models of Motorola repeater. These repeaters were designed for public safety use and would make excellent Ham repeaters if you can find one in the desired band.</li> </ul> <h2>Local Amateur Clubs</h2> <ul> <li><a href="">Suffolk County Radio Club</a> <ul> <li>They meet at South Country Ambulance Facility; 32 Seeley Street Brookhaven, NY.</li> </ul></li> </ul> <pre><code> Primary 2 Meter Repeater: 145.210 MHz – PL 136.5 Hz Backup 2 Meter Repeater: 145.210 MHz – PL 110.9 Hz 1.25 Meter Repeater: 224.680 MHz – PL 103.5 Hz 70 CM Repeater: 446.625 MHz – PL 110.9 Hz EchoLink Node: N2QPD-L Node ID: 158428</code></pre> <ul> <li><a href="">Radio Central Amateur Radio Club</a> - W2RC <ul> <li>Meetings at Middle Country Public Library in Centereach at 6:30pm</li> <li>101 Eastwood Blvd Centereach, NY 11720</li> <li>Tues 8pm net</li> </ul></li> </ul> <pre><code>Grid Square Locator: FN30LW Band Receive freq. Input PL Transmit freq. Output PL --------- ------------ -------- ------------- --------- 2 mtr: 144.550 MHz 136.5 Hz (4Z) 145.150 MHz 136.5 Hz (4Z) 70 cm: 444.525 MHz 114.8 Hz (2A) 449.525 MHz 114.8Hz (2A)</code></pre> <ul> <li><a href="">Brookhaven National Lab ARC</a> - K2BNL <ul> <li>employer sponsored</li> <li>K2BNL</li> </ul></li> </ul> <pre><code>442.4 MHz PL 114.8</code></pre> <ul> <li><a href="">LIMARC</a> - Long Island Mobile Amateur Radio Club (Levitown, Nassau County) <ul> <li>maintains 5 repeaters with one in Selden in Suffolk</li> <li>very active group near to Levitown, NY</li> <li>two supporting websites by members:</li> <li><a href=""></a></li> <li><a href=""></a></li> </ul></li> </ul> <pre><code>Callsign Output Frequency Shift PL Location W2VL 146.850 – 136.5 Glen Oaks W2KPQ 147.375 + 136.5 Selden WA2LQO 146.745 – 136.5 Plainview W2KPQ 224.820 – 136.5 Glen Oaks W2KPQ Analog 449.125 – 136.5 Plainview W2KPQ DMR – Digital 449.375 – N/A Plainview W2KPQ DMR – Digital 449.3625 – N/A Seldon W2VL 1288.00 – 136.5 Glen Oaks </code></pre> <ul> <li> <p><a href="">K2SPD</a> - Suffolk Police Amateur Radio Club</p> <ul> <li>limited to active or retired law enforcement officers</li> </ul> </li> <li><a href="">Great South Bay Amateur Radio Club</a> - based in Babylon, NY <ul> <li>claims 200 members</li> </ul></li> </ul> <pre><code>Callsign Output Input PL Tone W2GSB 146.685 146.085 110.9 W2GSB 223.860 222.260 110.9 W2GDB 440.850 444.850 110.9</code></pre> <ul> <li><a href="">W2LIS</a> - based in Mastic, NY <ul> <li>bills itself as a &quot;Simplex club&quot;</li> </ul></li> </ul> Fri, 13 Apr 2018 00:00:00 -0700 radio ham Running dd-wrt on a Linksys wrt1900ACS <p>I've used <a href="">dd-wrt</a> on many <a href="">Linksys WRT54G</a> routers over the years at work and at home. These blue routers, first released in 2002, became classics and in large part because Linksys allowed the open source community to develop replacement firmware for them. The additional capabilities and enhanced (or at least more up to date) security that dd-wrt provided over stock Linksys firmware extended the life of these little routers well past the point when leaving them stock would have been dangerous, and kept me using their older 802.11g technology for years even as 11n was getting popular.</p> <p><img align="right" src="" alt="Linksys_Ad" />When an &quot;homage&quot; model was revealed that looked almost exactly like the original wrt54g and held out the additional promise of being &quot;open source ready&quot; I was all in. This <a href="">Linksys WRT1900ACS</a> may look a lot like my old Linksys routers (at that time Linksys was a division of Cisco) but in 2013 Linksys had been acquired by Belkin so I was pretty dubious about quality. I haven't had any problems with the unit running the stock firmware, though I do miss a lot of features I was used to in dd-wrt.</p> <p>Amazon has it (shipping from them) currently for $367. You can <a href="">read reviews</a> of it there which is always fun. I know I paid quite a bit less for it when I got mine and Linksys has the list price as $200, but its not available for sale there. There were cheaper routers to be had for sure but if past experience is any guide, firmware updates for these kinds of devices would stop appearing right around the time a huge exploit for it would appear. Proprietary firmware made it impossible for anyone besides the manufacturer to fix security issues so if they decided to stop publishing updates... An open source firmware helps ensure that updates would keep coming since generally the people motivated enough to fix problems are those affected by them and when fixing a device is possible, there are always some owners willing to do it and share the wealth. I felt the pledge of open source was enough to make up for possible build quality issues.</p> <h2>The Marvell chip</h2> <p>One thing I noticed right away was the that the Linksys was not based on the more popular Broadcom or Qualcomm's Atheros chips, but with a Marvell chip. The Marvell SoC (System on Chip) found in the wrt1900acs is a dual core running at 1.6GHz which puts it at the higher end of many routers on the market at its date of release.</p> <ul> <li>There were a lot of wireless issues with the initial release and right through 2017 and a lot of people pointed to the closed nature of the Marvell drivers as the root of the problem, and perhaps it did take them some time to actually release the drivers as open source but as of Apr, 2018 here is Marvell's public <a href="">mac80211 github</a>.</li> </ul> <h2>OpenWRT</h2> <p>Although an open platform was touted from the <a href="">initial release</a> of the wrt1900, the announced partnership was with <a href="">OpenWRT</a> another open firmware project which I had never personally used. The release, in May of 2015, was later marred somewhat as OpenWRT members disagreed about direction of the project and ended up forking it with many developers leaving to form LEDE. Thankfully, disagreements have since been settled and the project is working together again under the official OpenWRT branding as of Jan, 2018. OpenWRT may be back on track, but support from them for the wrt1900 doesn't seem to have moved along very much as their <a href="">offical support page</a> still warns (as of Apr, 2018) that the project is stalled.</p> <p><a href="">David Simpson</a> took it for a spin back in 2015 and while his apparent success was heartening, my lack of experience with OpenWRT and desire to not brick my expensive new router was enough of a deterrent.</p> <h2>dd-wrt</h2> <p>Once the source is released, its usually not long before you start seeing new projects forked from that code appearing. A forum post appeared on dd-wrt's forums announcing the release of a new build <code>28374</code> for this hardware in Nov, 2015 just 6 months after the official release and the last comment (by htismage) on that initial post makes the bold claim that</p> <blockquote> <p>I honestly feel like for the first time since buying this router 18 months ago, I've finally unlocked it's full potential.&quot;</p> </blockquote> <p>and lists some of the reasons I've always liked dd-wrt as well: the diagnostics, stability, and improved performance. With the added incentive that it didn't even require a full 30-30-30 reset and was upgraded from within the stock GUI!</p> <p>Still far too soon for me to jump in.</p> <p><strong>staying up to date on progress</strong></p> <p>I've been following the development on the <a href="">dd-wrt forums</a> for Marvell based routers and what follows are my notes.</p> <ul> <li>There were some initial reports about the wifi being unstable and dropping out. </li> <li>I learned an interesting thing about resetting to stock:</li> </ul> <blockquote> <p>You don't need to &quot;flash&quot; back to stock. You reset the router and reboot it three times to get back to stock.</p> </blockquote> <pre><code>* This was written up a bit clearer in a later thread: * Switch off the router with the power switch on the back. * Power the router back on, and the power light will light. * As soon as you see the power light go out, switch off the power switch. * Repeat this 3 times. * On the 3rd time the router will boot from the other partition.</code></pre> <ul> <li> <p>a quick write up on how to flash dd-wrt on the Linksys is posted in <a href="">this thread</a> and there are a couple interesting things there including:</p> <ul> <li>once you have dd-wrt on the device if you wish to upgrade to a newer release, make sure to flash the stock firmware first so the second flash doesn't wipe the recovery image. to do this you can use the method I posted above, but a simpler method is to just use the <code>ubootenv</code> command to query which partition you're currently using with <code>ubootenv get boot_part</code> (in this example it returned &quot;1&quot;) and then to switch to the other one with <code>ubootenv set boot_part 2</code> and simply <code>reboot</code></li> <li>more on this from a stickied post for the install and upgrade <a href="">cliff notes</a>: there are two kinds of dd-wrt firmware: <ul> <li>factory to dd-wrt - used to flash dd-wrt from the stock firmware only</li> <li>dd-wrt webflash - used to upgrade an existing dd-wrt install.</li> </ul></li> </ul> </li> <li> <p>always upgrade via wire (not over wireless)</p> </li> <li> <p>dd-wrt maintains an <a href="">ftp site for beta builds</a> organized by year and model if you're really in tune with day to day issues and you know what you want.</p> </li> <li> <p>In January, 2016 Linksys started touting dd-wrt &quot;3rd party compatibility&quot; with their complete line in an <a href="">official press release</a>. dd-wrt is a project founded and mostly maintained by one guy, Sebastian Gottschall, a.k.a. &quot;BrainSlayer&quot; and I'm just wondering if Linksys bothered to send him a thank you note first (a fat check would have been nicer). But, for all the hype at CES there wasn't a real release ready to download. Sure there are the betas - but folks like me typically want to see some stable release which is getting hammered on out there for a while.</p> </li> <li> <p>I soon learned there was another build available by a developer named Kong. Kong's builds were served up from a private domain and not from the dd-wrt site. Kong's approach to builds was slightly different from how the public &quot;beta&quot; releases were handled. Wireless instability in the dd-wrt betas running on the Linksys was blamed by many on Marvell's drivers which were not released very frequently. Kong actively removed code which he saw as buggy or used older code which seemed to work better with the latest Marvell drivers. dd-wrt had to run on lots of different hardware, Kong was only interested in a few specific types of routers and so presumably was willing to take the extra steps needed to make dd-wrt run better on these. A lot of people were using the Kong builds. The question for me was when the codebases could be merged because I was uncomfortable downloading random guy's firmware even if a lot of people were claiming it ran better than the official betas.</p> </li> <li> <p>Linksys released new <a href="">official firmware</a> on Jul 21, 2017 with Ver. (still current as of Apr, 2018)</p> </li> <li> <p>In Oct, 2017 beta release <code>30796</code> was panned as having very bad transfer rates. At that time folks were told to try using <code>33555</code> but the bigger news came on Oct 16, 2017 with the <a href="">krackattack</a> wpa vulnerability. Beta release <code>33573</code> <a href="">addressed</a> it on Oct 22. <a href="">Posts</a> on the official Linksys community page suggest that Linksys had disclosure of the vulnerability in August but that there was <em>and has been</em> no official release (or statement) since that time about the matter. Many other vendors had released patches by the time of public disclosure in October.</p> </li> <li> <p>Dec, 2017 I saw this about release <code>33986</code></p> <blockquote> <p>I've been running r33986 on my Linksys WRT1900ACS V2 for about a day with no issue. Wireless speeds are good (~500 Mbit/s, as measured with iperf3) and no issues with my OpenVPN client.</p> </blockquote> <p>although a couple people mentioned ntp not starting till after another reboot</p> </li> </ul> <p><strong>Current Status</strong></p> <ul> <li> <p>As of Mar 26, 2018 build <code>35531</code> is the latest. It looks like we're getting pretty close to a an open firmware even a schlep like me can use. Important to note that there are two versions of the model I have v.1 and v.2 (I have v.2). Folks seem to have different experience with dd-wrt between the two versions. I haven't seen too many complaints from v.2 users with one reporting</p> <blockquote> <p>r35531 works well on my WRT1900ACS V2. OpenVPN client, policy-based routing works well. Wireless speeds ~500Mb/s. Both 2.4GHz and 5GHz are stable. Been up about a day with no reboots.</p> </blockquote> <p>However, one user reported on Mar 31 that DLNA is still not fixed in this build. I do currently use DLNA with stock firmware and don't want to break it, but I'm getting very close to taking the leap to dd-wrt anyway given the outstanding security issue and no official release. </p> <p>dd-wrt certainly does seem fairly functional at this point, and while there are still some things which need to be worked out it looks like it might be ready for even a regular old user like me to give it a try.</p> </li> </ul> Sun, 01 Apr 2018 00:00:00 -0700 linux wireless opensource Closed down my G+ account <p>Back in 2010 when I <a href="blog/2010-06-01-facebook-account-deleted">deleted my Facebook</a> account it was mainly because I didn't like the way the company was constantly changing their policies and privacy settings. Things I knew I had turned off would be mysteriously turned on again, and they were manipulating how I saw the content posted by users that I followed. Google Plus worked so much more how I thought a social media system <em>should</em> work, and I enjoyed using it. Facebook was centered around real people I knew, but if my interests were different from those folks Facebook made it difficult to find &quot;new&quot; friends - unless they were somehow related to people I already knew. Twitter provided a way to follow interesting folks without appearing to be a creep, and Google Plus worked similarly.</p> <p><img class="pull-right" src="">My decision this week to stop using Google Plus really has nothing to do with how the system functions or even Google's policies. In fact, I was able to export all of my Google Plus posts and links (including comments made on them) into a readable HTML archive which opens without issue in my web browser. Props to Google for making a system that respects its users in this regard. The truth is, I just feel like reducing my digital footprint a bit. Interactions with readers have become meaner and more partisan of late and I suddenly feel like I can't express myself without getting called names. More and more users on the system appear to be fake accounts passing around political or divisive memes.</p> <p>Another annoyance to me is that I don't like how things I write are getting buried deeper and deeper into a system I don't control. All media is designed to constantly hype the latest attention grabbing information which necessarilly pushes older or less sensational content out of the way. Even my own website works this way (reverse chronological order) but curating older content on a social media system is very difficult. To find older content you have to scroll backwards in time (facebook at least provides a dated table of contents to make this easier) but loading this content over the web is painfully slow going due to the latency (laggy) nature of the web and the various scripting technologies used to make these dynamic sites.</p> <p>The exercise of reviewing all of my Google Plus posts since 2011 and deleting them was very tedious. It was interesting how many posts were links to content on the web which no longer existed. Videos that have been taken down, web pages where the hosting site has gone to a new platform and decided not to keep the old URL scheme (including my own site).</p> <p><strong>Why not just delete the account?</strong></p> <p>I know a little bit about how this stuff works, and my assumption is that as long as the account is active Google will continue to back it up as a live account, but that as soon as the account is deleted it will archive all posts and lock them away perhaps to be able to offer them back to me one day if I decide to re-activate the account. I know they do this with email (a deactivated account which I reactivated had all the email restored). I think a better stragegy is to individually delete content I don't want and keep some posts and keep the account active. My guess is that stuff I actually deleted will eventually not be in any archive (their backup rotation period is probably pretty long but perhaps not infinite).</p> <p><strong>My Google Plus Farewell post</strong></p> <blockquote> <p>I have closed down this social media account as I do not intend to make any further posts here. Most content has been archived and removed (thanks Google!). Also big thanks to everyone who helped make G+ worth reading for the last 7 years (many more folks than the 200+ people who were kind enough to follow me back). I will keep a few older posts up which hopefully will give future visitors a little more confidence that I'm an actual human and not a bot.</p> </blockquote> Tue, 27 Mar 2018 00:00:00 -0700 Playing a powerpoint on the conference room TV without a laptop <h1>Lugging a laptop down to the conference room</h1> <p>I thought I had solved our safety officer's problem a couple years ago. He had a bunch of videos he needed to show during his training classes but it was a pain to lug a machine in and set it up before each class. I set all his videos up as private videos under a youtube account, then set the TV to log into that youtube account and showed him how he could use the YouTube app on the TV to play them during his class.</p> <p>I noticed he had started dragging a laptop to the conference room again recently. He was connecting it up, booting it up, logging in to it, opening the MS Powerpoint application and running a Powerpoint which doesn't change very often and then shutting it all down again. Apparently requirements had changed and he needed to also show a powerpoint with additional information. He has to run lots of folks through the course so it takes multiple scheduled times over several weeks to complete. The conference room is shared and his time slots are broken up so he can't just leave his machine hooked up either.</p> <h1>Can't we just play the file from the &quot;Smart&quot; TV?</h1> <p>The TV in the conference room is a <a href="">Sharp LC-60N5100U</a> which is a 60&quot; 1080p LED Smart TV (2016 model) so I figured I'd look into ways that he could use whatever software is built into the TV to play the presentation.</p> <p>This TV won't play Powerpoint files directly and I'm not sure if any do. It has built in apps to show other types of common media (Pictures, Videos, Music) including JPEG images and since Powerpoint can export slides to JPEG that should work using the &quot;Pictures&quot; app.</p> <p>The Pictures app is simple enough to use, once it opens he can navigate to the USB drive with the arrow buttons and drill into whatever folders he needs to access the images.</p> <h1>Some problems</h1> <p>I soon found, however, that the default export (at least in Office 2013) is in standard HD quality (1280 x 720) which doesn't fill the entire screen on a full HD (1920 x 1080) screen. There's a trick you can use to export in full HD. It requires editing the registry - this is dangerous, you've been warned.</p> <h2>Fixing the output so that its true HD (1920 x 1080)</h2> <ul> <li>In regedit navigate to: HKCU | Software | Microsoft | Office | 15.0 | Powerpoint | Options</li> <li>Create New DWORD (32 bit) -&gt; <code>ExportBitmapResolution</code></li> <li>set as: <code>Decimal</code> value</li> <li>Set value to: <code>144</code> (default is <code>96</code> which is 1280 x 720 HD, 144 is full 1920 x 1080 HD)</li> </ul> <p>I exported the images from Powerpoint (2013) by choosing:</p> <ul> <li>File | Export | Change File Type | JPEG | Save As</li> <li>I chose a location and hit Save</li> <li>Then I chose &quot;All Slides&quot;</li> </ul> <h2>Exported file naming is just stupid</h2> <p>This worked great except that the file names were stupidly generated. The default mode of export file naming names the files in the format SlideX.jpg where X starts at 1 and increments from there. On the TV Slide1.jpg was followed by Slide10.jpg, etc. At first I thought (incorrectly) that since I had less than 100 slides that I'd be able to just manually rename 9 files: Slide01.jpg ... Slide09.jpg and the TV would play them in the right order. I was wrong because apparently most TVs play files (including music files if you're using a music player app) according to their location in the file allocation table (FAT) and not according to the file name at all! Before I learned this I had already gone down the rabbit hole of figuring out a way to export the files with proper naming. While this doesn't ensure they will play in the correct order, it makes the files easier to sort and find which is important so if I do this again it will be useful.</p> <h3>Fixing with a visual basic module</h3> <p>The <a href="">solution I used</a> was posted on by John SR Wilson on March 30, 2011</p> <p>Open Powerpoint ALT+F11 to open VB editor Insert a module paste in the code:</p> <pre><code>Sub savemejpg() Dim osld As Slide On Error Resume Next MkDir Environ("USERPROFILE") &amp; "\Desktop\jpgs\" For Each osld In ActivePresentation.Slides osld.Export Environ("USERPROFILE") &amp; _ "\Desktop\jpgs\Slide" &amp; Format(osld.SlideIndex, "000") &amp; ".jpg", "JPG" Next osld End Sub</code></pre> <p>and <strong>run</strong> that module which will dump the files out to the desktop into a folder called jpgs with a filename format with three positions which will work for huge powerpoints up to 999 pages. Even though the TV doesn't care about the naming I thought that the export to disk would put them in the right FAT order.</p> <h3>Saving the file naming module for future use</h3> <p>I exported the module I created to a file from the Visual Basic editor (with the module selected): File | Export File which saves a Basic file (.bas) to disk. In future I can easily import this module into other powerpoint files by opening the VB editor (ALT+F11) and choosing File | Import File and selecting my saved module. You could just create the file manually - create a file with .bas extension with the code from above and add this as the top line (name of the module is in quotes):</p> <pre><code>Attribute VB_Name = "SaveAsImages"</code></pre> <h2>Still didn't work!</h2> <p>I was convinced this would be enough but in my test the TV displayed these correctly named files starting with Slide39.jpg! Since I had copied these new files over to the USB into an already existing folder on the USB, for my next (and last) test I deleted that old folder on the USB, selected all (CTRL+A) the properly named files in my &quot;jpgs&quot; folder on my desktop (which I made sure were in the correctly sorted alphabetic order), copied them all (CTRL+C) and pasted them (CTRL+V) into a newly created folder on the USB. This did the trick and the files appeared on the TV in the right order.</p> <p>So its possible that I could have skipped the file renaming step above and just re-copied and pasted the improperly named (but correctly sorted in file explorer) files to a new folder on the USB and they might have played in correct order.</p> <h2>Play the files over the network</h2> <p>Leaving the USB in the TV and manually updating it as needed is easy enough, but if you share up a folder on your machine and your TV is on the same network you could use the built in Smart TV media apps to navigate to that share as well.</p> Fri, 16 Mar 2018 00:00:00 -0700 technology office Role-playing Related Web Series <p>Cheap digital video production and free (or very cheap) internet-based venues for them has resulted in a wave of niche-interest low budget web video series. Fan-made productions are certainly not new and someday I might catalog all of those fan films based in the Star Trek universe which I loved, but making more episodes of an already successful TV show with an established format seems somewhat obvious. For role-players, the idea of translating their fantasy role playing worlds onto the screen in live action film grows out of the LARP (live action role-playing) tradition where games are acted out IRL (in real life). This genre is not for everyone, and there are a lot of &quot;in jokes&quot; in most of these productions which only someone familiar with role playing will get, but the work and love that went into all of these productions is just awe inspiring.</p> <p>This post is intended as a list of videos and shorts about role players or where role players in-game stories have been translated into a video format.</p> <p>I don't intend to include video series of people actually role-playing like <a href="">Acquisitions Incorporated</a> (AI) or <a href="">Critical Role</a>, there are just too many and except for AI none of them really hold my interest very long. I'm also not going to include videos where actors are role-playing in one or two episodes of their regular show as in <a href="">Stranger Things</a>, <a href="">Freaks and Geeks</a>, or <a href="">Community</a>.</p> <p>I'll try to update this post with all the role-playing related fan flicks I find, please feel free to suggest more and I'll update the post.</p> <p><strong>Journey Quest</strong> (all three seasons) 2010, 2012, 2017</p> <img class="pull-right" src=""> <p>Created by Matt Vancil. imdb describes it as a series that follows a &quot;group of dysfunctional adventurers on a quest to discover and destroy the mythical Sword of Fighting ... a comedic adventure through the fantasy world of Fartherall.</p> <ul> <li><a href=";list=PLB600313D4723E21F">Full Playlist</a></li> </ul> <p><strong>Gamers: Humans and Households</strong> (3 episodes) 2013</p> <img class="pull-right" src=""> <p>Created by Matt Vancil. this very short series flips the genre where a group of actual fantasy heroes attempt to deal with the hazards of normal life in a roleplaying game set in the mundane (real) world.</p> <ul> <li><a href="">episode 1</a></li> <li><a href="">episode 2</a></li> <li><a href="">episode 3</a></li> </ul> <p><strong>Gamers: Dorkness Rising</strong> (full movie) 2008</p> <img class="pull-right" src=""> <p>Created by Matt Vancil. No, not &quot;Darkness Rising (2017)&quot; this is instead the tale of a gaming geek who is trying to write a serious module playtesting the game with his disruptive and immature friends. The action shifts between the game world (and their game personas) and the real world where they play the game in the back of a game store.</p> <ul> <li><a href="">full movie</a></li> </ul> <p><strong>Standard Action</strong> (three seasons over 6 years) 2010 - 2015</p> <img class="pull-right" src=""> <p>Created by Joanna Gaskell. gets panned on imdb and the writing is definitely pretty silly, but the characters are endearing and the in-jokes can be funny.</p> <ul> <li><a href="">season 1</a></li> <li><a href="">season 2</a></li> <li><a href="">season 3</a></li> </ul> <p><strong>One Hit Die</strong> (two seasons) 2013 - 2015</p> <img class="pull-right" src=""> <p>This fantasy genre web series uses a mock-u-mentary style comedy to tell the tale of a party of adventurers</p> <ul> <li><a href="">episode 1</a></li> </ul> <p><strong>The Guild</strong> (six seasons) 2007 - 2013</p> <img class="pull-right" src=""> <p>Created by Felicia Day. Not technically role-playing but had to include in the list because its just awesome. Now over 10 year old, The Guild tells the story of a group of friends who play a MMORPG (massively multiplayer on-line role-playing game).</p> <ul> <li><a href="">episode 1</a></li> </ul> <p><strong>Larp</strong> (2011)</p> <img class="pull-right" src=""> <p>Created by Sean Keller. This is a fantastic short film that follows a group of Larpers who have a run-in with some real-world crazy folks, romantic side quest.</p> <ul> <li><a href="">full 18 min movie</a></li> </ul> <p><strong>The Wizards of Aus</strong> (six part series) 2016</p> <img class="pull-right" src=""> <p>Created by Michael Shanks. Perhaps not technically role-playing related but uses so many gaming tropes that I think it counts. Australian comedy series about Jack the Wizard who has had enough of life in the Magical Realm and decides to migrate to the real world in an Australian suburb.</p> <ul> <li><a href="">full playlist 17 videos</a></li> </ul> <p><strong>Pagan - A Medieval Short Film</strong></p> <img class="pull-right" src=""> <p>Created by Optio Productions, an independent film company formed by a bunch of film students. This is also technically not role-playing, but is definitely in-genre based in medieval england but with magic.</p> <ul> <li><a href="">entire 1 hour short</a></li> </ul> <p><strong>Harmon Quest</strong> (two seasons?) 2016</p> <img class="pull-right" src=""> <p>From the producer of Rick and Morty, Dan Harmon. A suggested submission, this is an animated series (not live action) but is animation of people playing a role playing game so it gets a pass. note: the full series may not be available free.</p> <ul> <li><a href="">episode 1</a></li> </ul> Wed, 14 Mar 2018 00:00:00 -0700 gaming video Moving out of Wordpress and into picocms <p>This site has undergone a fair amount of change over the years. I've tried to keep a changelog of sorts every time I've moved the furniture around. See the <a href="">Site History</a> page for more details about the various software I've used. Most recently I was using a self-hosted <a href="">Wordpress</a> install. While some things became easier with Wordpress - from simple site search and tagging to widgets and full site statistics I found that over time I was actually writing less and less mainly because it put a slow, bloated website between me and the final product. Wordpress was simple to use - you don't really need to know anything about the technologies it employs to use it to publish to the web - but there's a certain amount of &quot;latency&quot; involved in its daily use.</p> <h3>Wordpress workflow didn't fit how I wanted to work</h3> <p>I found that most of the time when I wanted to write something I would open a text editor and save it somewhere on my local machine. I'd work on it for a while and when I thought it was ready I'd copy and paste it into the live Wordpress install. I would inevitably find something wrong with it, or there would be a comment that would make me re-think what I had written and I would need to update the post. The original file was now out of sync with the one in Wordpress. Wordpress had become the system of record.</p> <p>Yes, I'm aware of various other means that might be employed to publish to Wordpress and have tried a few of them but what I wanted was to be able to maintain my posts in plain text (preferably <a href="">markdown</a>) in a folder structure that made sense to me and control and publish those documents to the web using <a href="">git</a>.</p> <h3>Security</h3> <p>It was also a huge pain in the ass constantly worrying about updating Wordpress (to say nothing of the many plugins I used over time) and it slowly became much more of a hassle than I was interested in dealing with. I wanted to just write again.</p> <h3>To DB or not to DB that is the question</h3> <p>The 900 separate blog posts I had written since 2002 existed solely as data in a database. The things that having a database offers include search, grouping like posts or providing a means to offer similar posts to the reader through the use of keywords or tags associated with the post. These are things which make it easier for <em>readers</em> of the site - to find more things I've written that they might enjoy - but it doesn't help me <em>write</em> anything new. Also, all of my posts were locked up in a database running on a remote server. I had backup copies of the database of course and I could certainly set up a local webserver, install PHP and a mysql database, configure it all and import that database if I wanted to run a local copy of the site - but this was a far cry from having my posts in plain text files that I could open on any machine with or without a local web server. Between all the core functionalities and hundreds of available plugins for Wordpress my desire for a more minimalist web publishing workflow was going to be a big change.</p> <h3>Exporting my posts</h3> <p>The first step was to export my posts from the Wordpress database using the Wordpress XML export function (in Tools | Export). Thankfully Wordpress as an open source project values the rights you have to your own data. Try getting all of your images or posts out of facebook when you decide you want to use something else. I used the selection to not include media with the posts since I was just going to move my uploads folder manually.</p> <h3>Converting the XML to markdown</h3> <p>Right now at home I don't remember what I used exactly. I converted the file at work on a Windows 7 machine and I'm fairly sure I used the pre-compiled version of <a href="">wpXml2Jekyll</a>. I'll update the post later if I find I was wrong. The resulting .md files had a lot of different types of markup which would need to be reviewed and standardized no matter what I ultimately decided to do with them.</p> <h3>Choosing PicoCMS</h3> <p>Over the last year I had tested out a bunch of different approaches to flat file web publishing: <a href="">Jekyll</a> and Grav among them. <a href="">Grav</a> was closer to what I wanted and while I actually ran Grav in a subfolder of the site for a few months I found it a bit confusing. I was really looking for something very simple and more like Blosxsom which still runs my <a href="">notes</a> page. <a href="">PicoCMS</a> is a simple set of scripts that gets me very close to what I wanted.</p> <p>Setting up pico was very easy and the <a href="">docs</a> should be sufficient if you're interested in setting it up yourself. So far I've only needed one additional plugin - <a href="">Pagination</a> which provides some next and previous page functionality on long lists of posts.</p> <h3>The markdown header</h3> <p>The exported markdown posts now had a nice YAML header:</p> <pre><code>--- layout: post title: Firefox 55+ crashing on armv7 date: 2017-12-02 15:12 author: Nate comments: true categories: [chromebook, firefox, Technology] template: blog ---</code></pre> <p>The variables in that header can be accessed when processing a page. I currently don't have a plan for how or if I'll use the comments and categories variables but its nice to know there were comments on the post at one time and what the tags were I had assigned in wordpress at the very least. I decided not to bother with trying to preserve associated comments because I intended to integrate Disqus for commenting going forward. I prefer that commenters own their own comments and to not end up being the steward of another person's writing again.</p> <h3>Out on a limb with twig</h3> <p>Pico builds web pages with twig templates and I wasn't familiar with it. If you grasp the idea that web page content (the text you read) can be separate from formatting (how it looks), twig just provides a further abstraction for laying out a page when processing content. Twig is like a page skeleton to which CSS and content can be applied to generate the final HTML page you see in the browser. The <a href="">twig homepage</a> makes the case for itself, but I can only say that it was easy enough to get the site set up pretty quickly once I understood what was going on.</p> <h3>Is themeing a word?</h3> <p>Before I could really get to work I had to decide on a theme to use with pico. Since I already have some experience with <a href="">Bootstrap</a> that seemed a natural place to start. I selected the <a href="">clean_blog</a> theme which is bootstrap based although there were several bootstrap based themes available.</p> <p>I got rid of the minimized versions of the css provided for now. I made some minor cosmetic changes but its obviously still very similar to stock. As I worked on it I took bits and pieces of the various twig files out and created little snippets of text which could be shared across several pages and named them as <code>.thtml</code> (a practice I got from geeklog and still use). These are included as needed. For instance, the navigation bar along the top is something all the pages share so it made sense to have that as a single file. I include that in any twig file with:</p> <p><code>{% include 'nav.thtml' %}</code></p> <p>I wanted to have a drop down menu for all those pages which have no place being across the top of every page. To get that working I needed to include a couple javascript libraries (I used local versions and include them on all the pages using the same method as above): namely bootstrap.js and jquery.js. Some quick markup in my nav.thtml file and some tweaks to the clean_blog.css file makes a fairly serviceable menu. Here's a few lines from my nav.thtml file:</p> <pre><code>&lt;div class="navbar-header page-scroll"&gt; &lt;div class="dropdown"&gt; &lt;a href="#" data-toggle="dropdown" class="navbar-brand"&gt;Menu&lt;b class="caret"&gt;&lt;/b&gt;&lt;/a&gt; &lt;ul class="dropdown-menu"&gt; &lt;li&gt;&lt;a href="{{ base_url }}"&gt;Home&lt;/a&gt;&lt;/li&gt; &lt;li&gt;&lt;a href="{{ base_url }}/about"&gt;About&lt;/a&gt;&lt;/li&gt;</code></pre> <h3>Marking up my markdown</h3> <p>Many of my newly-minted textfile posts referenced images found in the uploads directory inside the wordpress install which I was going to delete. I moved the uploads folder out to the web root, but I still needed to update the posts to point to this new location. Back on my linux machine I used sed to process all of the documents and replace the absolute path from wordpress with the variable twig uses <code>% base_url %</code> for the web root (without the spaces):</p> <p><code>sed -i 's/mydomain\/blog\/wp-content/% base_url %/g' *</code></p> <p>Also, most of the links to images in my posts weren't explicitly classed and the theme I was using in Wordpress was not Bootstrap. I ended up just classing every instance of <code>&lt;img src=</code> to add the class which sets the image on the right side of the page.</p> <p><code>sed -i 's/&lt;img\ src=/&lt;img\ class="pull-right"\ src=/g' *</code></p> <p>When I realized that not all images needed to be aligned right, but sometimes there was an image at the top of the post that I wanted to be the width of the page, I ended up manually going through and deleting that class from a lot of posts. However, I didn't consider responsive design and ended up having to run this to add the Bootstrap class which basically sets width to 100%.</p> <p><code>sed -i 's/&lt;img\ src=/&lt;img\ class="img-responsive"\ src=/g' *</code></p> <h4>Hey, you said this was a markdown parsing project but thats all HTML?</h4> <p>There is so much HTML in the original posts that I probably won't be re-writing them all in markdown unless the mood strikes me on certain posts. Luckily PicoCMS will also parse HTML so I can really just leave them as is.</p> <h3>More about images</h3> <p>Images are another open question at this point. Wordpress had a media manager which is basically a set of scripts that takes your uploaded image and processes it to make some number of resized versions which it stores away (by date) in various folders in that uploads folder. This is nice because you don't have to mess around with resizing images, but its not nice because you end up with a bunch of resized images you probably don't need. <a href=""><img class="pull-right" src=""></a> I've also got a nice piwigo installation which I quite like using that perhaps I should work into the workflow for blog posts. If its important enough to write about perhaps it belongs in that gallery? But at the same time it would be simpler to just have a script which resizes images and files them by date in my new unfettered-by-wordpress folder. That will require some thinking and coding so for now I'll probably just use Gimp to create appropriately sized images and dump them in the uploads folder by date (probably year and not year / month as wordpress did). Open question. I didn't even really have any screen shots I felt important enough to bother with for this whole story.</p> <p>Now that I've been working with it for a while, I've ended up doing the following: Since I came from Wordpress, I simply moved my wp-content folder over and renamed it as uploads. Now when I want to add an image to a story, I create a 300px wide image for inclusion in the body of the text and include it using either HTML as above or the markdown version of the same with added style to have the file aligned right. If I want to have a larger image linked, I'll create a larger version and add a hyper link for it. Both of these images are stored in my local uploads folder (which has subdirectories by year, mainly because of the holdover wordpress convention but it does make it easier to find things so I've kept it) and I name the files with the file name convention I've decided on for the posts (YYYY-MM-DD-name-with-hyphens.jpg/png). Then I run a bash script to rsync my local uploads folder to the one up on the web server. I've found this is the one place where it really is a good idea to be able to see what the page is going to look like before committing it and having it go live. </p> <h3>Seeing the result in a browser</h3> <p>Since I'm not composing pages in a WYSISYG editor (like a typical Word Processor), the perfectly readable markdown may not render as expected when it is converted to HTML in your browser. Unless I go check, I would not know. To see what the page is going to look like (and check that links work and images are correctly positioned) I install PHP (in linux this is as easy as <code>sudo pacman -S php</code> in arch or <code>sudo apt install php</code> in ubuntu) and start the built in PHP web server in the picocms directory. Then I can load up the site locally at <code>localhost:8080</code> and its worked pretty well to let me view the rendered pages in my web browser and generally saves me another commit or two to fix obvious typos.</p> <p><em>note: using the built in PHP web server took some additional steps</em></p> <p>Because on some machines I don't want to bother installing and setting up Apache, but I do have PHP installed, the apache .htaccess rules won't work. These are required for picocms to be able to display most of my content due to my setup choices. I set up a script in my home directory to start the server (which should only be used for development purposes!) called <em>runweb</em> which changes directory into the main picocms directory and then issues the command: <code>php -S routing.php</code></p> <p>This solution from: <a href=""></a></p> <pre><code>&lt;?php # routing.php - placed in main picocms folder # .htaccess denies a bunch of directories if(preg_match('/^\/(config|content|content-sample|lib|vendor)\//', $_SERVER['REQUEST_URI'])) { # Return 404 $_SERVER['QUERY_STRING'] = '404'; } else { # .htaccess allows direct access to any files # (as long as they're not in the directories denied above) if (file_exists(__DIR__ . '/' . $_SERVER['REQUEST_URI'])) { return false; // serve the requested resource as-is. } $_SERVER['PICO_URL_REWRITING'] = 1; $_SERVER['QUERY_STRING'] = urlencode($_SERVER['REQUEST_URI']); } include __DIR__ . '/index.php';</code></pre> <h3>setting up git repos</h3> <p>I created two bare git repos on my server: one for my content directory and the other my custom theme. I cloned these repos out to my local machine and populated them and committed them back. Then I set up a post-receive hook in each to automatically refresh the two associated directories.</p> <p><code>#!/bin/sh</code> <code>GIT_WORK_TREE=/home/user/mydomain/content git checkout -f</code></p> <p>and</p> <p><code>#!/bin/sh</code> <code>GIT_WORK_TREE=/home/user/mydomain/themes/mytheme git checkout -f</code></p> <p>This way, while I'm not tracking the entire site the two folders I'm working in the most are under revision control and I have a repo for just my documents and just my theme. In case I decide to move the stuff again I won't have to bother with splitting up the repo at a later date.</p> <h3>Commenting and Contact Form</h3> <p>I have always allowed comments on my site but have used different methods over time. Folks have made comments on posts in the past and I'd like to preserve them (and I do have them all) but I stil have to think more about how best to do that. I could just append the comments to the posts so that they live as part of the post going forward or I could code up some kind of artificial comment block which sits at the bottom of the post. In any case I decided early on that I wanted to integrate <a href="">Disqus</a> again for commenting. I don't like having to deal with spam in comments (something Wordpress' Akismet is quite adept at blocking but a concern nonetheless) or being the steward of other people's comments on my own site. Here I am 16 years later worrying about whether and how to preserve something someone posted as a reply to something I said that long ago? Disqus provides a means for commenters to have some amount of control over what they write on other people's sites. To say nothing about having to be accountable for hosting random internet guy's comments on my personal domain. Luckily Disqus <a href="">announced last year</a> that advertising would remain optional for sites like mine so I'm willing to continue using them. The moment they force some click-bait-ey ads into my reader's faces they're gone.</p> <p>The Contact form is another entry point for spam. I don't want to hack together a comment form (as I've done many times before) which I then have to worry about being exploited and possibly ending up being used to send tons of spam hither and yon and getting my server blacklisted. There were plugins for pico to provide a comment form, but after reviewing them they seemed little better than what I could do myself. I settled on a quick and dirty solution and embedded a Google form on a contact page. I still have to work out the theme for it a bit so that its more responsive, but it works and I have Google's spam filtering which is probably even better than Akismet was.</p> <h3>The publishing workflow</h3> <p>So now writing stuff for the website works like this: I have a couple template markdown files with different versions of the YAML header for blog posts or general pages and I make a copy of one of these and modify the headers to start writing a new post.</p> <ul> <li>The /blog subdirectory is for &quot;posts&quot; (like this one) and is based on the date variable in the header (reverse chrono order). If I don't assign the Date: field the post won't show up on the Blog page which is handy when I'm working on something but am not ready to &quot;publish&quot; it.</li> <li>The template: field makes the post render in different ways by running it through different twig files. For example a normal blog post is assigned the value &quot;blog&quot; which uses the blog.twig file. If I use the value &quot;hidden&quot; it runs the post through the hidden.twig file which doesn't pass any of the content and instead just prints a sad line about the post having been removed. This is handy if I want to keep a post in the repo (I want to keep them all obviously) but I want to remove it from general viewing. As it is today the title and date still appear in the listing, just the content disappears.</li> <li>If I define the optional img: field I can override the header image. I may do this for a political posts for example because the default image of a bunch of SATA drives in a server doesn't make much sense for a political rant.</li> <li> <p>For my music pages I set up another subdirectory /music which serves as an index to all the music pages which have a template: type set to &quot;music&quot;. I defined a custom YAML header named thumb: that I add to each of the posts and I just enter the filename of the thumbnail I want to use for each page. The thumbnails are all stored together in a single folder named img in my theme directory and are called out for in the music index page twig file.</p> <pre><code>{% for page in pages|sort_by("page.meta.year") %} {% if ( starts with "music/") %} &lt;div class="post-preview"&gt; {% if not (page.meta.template == "music") %} &lt;a href="{{ page.url }}"&gt; &lt;img class="pull-right" src="{{ theme_url }}/img/music/{{ page.meta.thumb }}"&gt; &lt;h2 class="post-title"&gt; {{ page.title }} &lt;/h2&gt; &lt;h3 class="post-subtitle"&gt; &lt;strong&gt;{{ page.meta.year }}&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt; {{ page.description }} &lt;/h3&gt; &lt;/a&gt; &lt;br /&gt; {% endif %} &lt;/div&gt; &lt;hr&gt; {% endif %} {% endfor %}</code></pre> </li> </ul> <p><em>note: some edits and additions made Mar 31, 2018</em></p> <p><a href=""><img class="pull-right" src=""></a>I generally write in a markdown aware editor like gedit or vim (but usually in <a href="">Atom</a>) when I'm on my linux machines, or notepad++ if I'm on windows (though you do need to add markdown as a language as I've discussed <a href="">before</a>) but again usually Atom since it runs there too. I save the text file (and any associated images) in the appropriate places, add, and commit them in <a href="">git</a> (Atom has a nice git panel but I sometimes just pop open a terminal and use the command line or in windows I might use the GUI) and push them up to the server.</p> <p>While the markdown files are perfectly readable in the editor, its nice to be able to make sure that it will render as expected so when I can I do run a local apache web server (with PHP) to load the page before committing and pushing the files to &quot;live&quot;. pico and a text editor are both very fast so the &quot;latency&quot; I mentioned with Wordpress before is non-existant in this workflow.</p> <p>If I want to work on another machine I can just check out the repos as needed (assuming I have a git client on that machine) but I don't always have a local webserver (especially on Windows). I've tested checking out on android using <a href="">Termux</a> and it worked well (once git was installed and the built in script to set a symlink to the external SD card was run). I'm editing this post right now on a Chromebook in a Chrome app called MME (a markdown editor) and checking in and out under <a href="">crouton</a> though I think I could have used the normal chrome terminal with the right tools.</p> Sun, 04 Mar 2018 00:00:00 -0800 website Convert .GHO to .VDI for use in Virtualbox in Win7 <p>We created a Win7 ghost image in July last year which I was using to roll out to machines directly. Recently I wanted to have a Virtual copy of this image so I could snapshot it before installing some new software to test and quickly get back to my prior state from my workstation. While we use VMware ESXi for the servers I don't have a copy of VMware workstation and I've been using Virtualbox for years and am more familiar with that.</p> <p>I have a bunch of old Ghost images and I know someday someone is going to ask me to restore one for some reason or another so I wrote down what I did just in case.</p> <ul> <li>in diskmgmt.msc create a new VHD set to a suitable size saved at D:\tempdisk.vhd</li> <li>Initiate it (right click in Disk Management)</li> <li>Run the DOS version of ghost32.exe and create new disk from image</li> <li>Select the source of the GHO file and the destination of the VHD</li> <li>Convert the .vhd file to .vdi:</li> </ul> <p><code>"C:\Program Files\Oracle\VirtualBox\VBoxManage.exe" clonehd "D:\tempdisk.vhd" D:\Sysprep-Win7-7-11-2017-final.vdi --format vdi</code></p> <p><a href="">from</a> <a href="">and</a></p> Thu, 01 Mar 2018 00:00:00 -0800 virtualization Brown Bess Musket <p>When the Constitution was written a well trained militiaman could load and fire his musket 2 or 3 times per minute. Obviously unsuitable for personal protection beyond a single shot before an attacker could close with a knife, its main use was in a battle line where many other similarly armed men would prove an effective deterrent to an advance. The muskets effectiveness as a hunting tool is equally suspect with its limited range, general unreliability and high cost to maintain and operate. Trapping was usually a better option.</p> <p>Fantastically expensive, muskets were generally sourced from Europe or were assembled with foreign parts. Most Americans being farmers did not own muskets. Being a time before the US had a standing army, having a well regulated militia was deemed important for defense of the country and so the right of men to bear arms (in order to serve in the militia) was not to be infringed upon.</p> <p><a href=""></a></p> <iframe width="560" height="315" src="" frameborder="0" allow="autoplay; encrypted-media" allowfullscreen></iframe> Wed, 21 Feb 2018 00:00:00 -0800