tag:blogger.com,1999:blog-120686162024-03-14T04:53:25.273-04:00A Sprinkle of CocoaA blog about iPhones, iPads, Swift, being a working coder, gadgets and tech. The official blog of Generally Helpful Software.Glenn Howeshttp://www.blogger.com/profile/13657643977857888422noreply@blogger.comBlogger248125tag:blogger.com,1999:blog-12068616.post-81635216482574165412023-12-21T22:56:00.001-05:002023-12-21T22:56:17.870-05:00Lutron Caseta New Timer Feature and My Towel Warmer<p> Two unrelated events today. I noticed that the Lutron app was advertising a new feature of the Caseta line of smart switches: the ability to configure a switch to toggle off after a time specified in the app. And, I finally investigated why my expensive looking towel warmer did a mediocre job of drying my towels. </p><p>My towel warmer came with the house and I learned it was a Mr. Steam model, quite pricey, and according to its helpful customer support line, required 45 minutes to properly get up to temperature, and 2 hours to dry a towel. Well, it had had a 1 hour mechanical timer as a switch when I took possession, and I'd replaced it with a button timer of a maximum duration of 1 hour. It had never been used properly. </p><table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto;"><tbody><tr><td style="text-align: center;"><a href="https://genhelp.com/Blog/MrSteam_Towel_Warmer.jpeg" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" data-original-height="640" data-original-width="369" height="640" src="https://genhelp.com/Blog/MrSteam_Towel_Warmer.jpeg" width="369" /></a></td></tr><tr><td class="tr-caption" style="text-align: center;">A Mr. Steam Towel Warmer</td></tr></tbody></table><p>I had a spare plain Lutron Caseta Switch on hand, and it occurred to me that instead of replacing the timer with one with a longer duration, I could just control it with a smart switch. [The switch is rated at 5Amps, and the towel warmer is rated at 3.3Amps]. This would bring several advantages: </p><p></p><ul style="text-align: left;"><li>The button is simpler, just On and Off with a larger target area</li><li>I could specify a more precise heating time. Maybe, I'll find that 1 hr 45 minutes is sufficient and save energy.</li><li>The towel warmer could be pre-heated either on schedule or remotely, maybe even have Siri turn it on. </li><li>It would be easier to program than one of those dedicated digital timer switches that the manufacturer sells as an accessory. </li></ul><div>One hint is to go into the Home app and categorize the switch as a switch and not a light. I, occasionally will tell Siri to turn on all the lights in the house, and I mean lights and not fans or towel warmers. </div><div><br /></div><div class="separator" style="clear: both; text-align: center;"><table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto;"><tbody><tr><td style="text-align: center;"><a href="https://genhelp.com/Blog/Timer.jpeg" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" data-original-height="640" data-original-width="513" height="187" src="https://genhelp.com/Blog/Timer.jpeg" width="150" /></a></td></tr><tr><td class="tr-caption" style="text-align: center;">The old 1 hr timer</td></tr></tbody></table><div style="text-align: center;"><br /></div><div style="text-align: center;"><table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto;"><tbody><tr><td style="text-align: center;"><a href="https://genhelp.com/Blog/Lutron_Caseta_Switch.jpeg" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" data-original-height="640" data-original-width="448" height="194" src="https://genhelp.com/Blog/Lutron_Caseta_Switch.jpeg" width="136" /></a></td></tr><tr><td class="tr-caption" style="text-align: center;">Simple Caseta Switch</td></tr></tbody></table><br /></div><br /></div>And now my towels are dry as a bone after their proper cooking time. <br /><div><br /></div><p></p>Glenn Howeshttp://www.blogger.com/profile/13657643977857888422noreply@blogger.comtag:blogger.com,1999:blog-12068616.post-83783759791894629242022-07-10T10:44:00.000-04:002022-07-10T10:44:15.401-04:00iPhone 12 Wouldn’t MagSafe Charge in Case<p> My iPhone 12 Pro Max hadn’t been charging on its MagSafe disc for a couple weeks. Took it into the Apple Store and the Genius realized it wasn’t charging when in its Apple made case. Was going to sell me a new case, as a faulty case is apparently not covered under AppleCare+, but for a last ditch fix reset all the system settings. And, it worked. I can now charge via MagSafe. </p><p>Weird and now I have to recover years of changed settings. </p>Glenn Howeshttp://www.blogger.com/profile/13657643977857888422noreply@blogger.comtag:blogger.com,1999:blog-12068616.post-73297148592628579492022-05-22T08:53:00.008-04:002022-07-10T11:00:23.664-04:00Version 3.0 of Signal GH for HDHomerun<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto;"><tbody><tr><td style="text-align: center;"><a href="https://genhelp.com/Blog/CircleGraphs.png" style="margin-left: auto; margin-right: auto; text-align: center;"><img border="0" data-original-height="301" data-original-width="520" height="185" src="https://genhelp.com/Blog/CircleGraphs.png" width="320" /></a></td></tr><tr><td class="tr-caption" style="text-align: center;">Signal GH 3.0 Circle Graphs</td></tr></tbody></table><br />Finding myself out of work in the Fall of 2021, I took to updating my skill set, which meant immersion in SwiftUI. I had done some SwiftUI work at my day job at IBM writing Pilotbrief, and my son and I had written the watch version of <a href="https://genhelp.com/apps/tvtowers.html">TV Towers USA</a> in SwiftUI, but I needed to up my game. And what better venue than my signal meter app for the HDHomeRun: <a href="https://genhelp.com/apps/signalgh.html">Signal GH</a> originally published in 2008, yes the first year of the App Store. <br /><div><p><br /></p>
<table cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody><tr><td style="text-align: center;"><a href="https://genhelp.com/Blog/SignalGH.png" style="clear: left; margin-bottom: 1em; margin-left: auto; margin-right: auto;"><img border="0" data-original-height="800" data-original-width="451" height="320" src="https://genhelp.com/Blog/SignalGH.png" width="180" /></a></td></tr><tr><td class="tr-caption" style="text-align: center;">Signal GH 1.x (2013)</td></tr></tbody></table><br /><br /><div><br /></div><table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto;"><tbody><tr><td style="text-align: center;"><a href="https://genhelp.com/Blog/Signal_GH_2_charts.png" style="margin-left: auto; margin-right: auto;"><img border="0" data-original-height="800" data-original-width="451" height="320" src="https://genhelp.com/Blog/Signal_GH_2_charts.png" width="180" /></a></td></tr><tr><td class="tr-caption" style="text-align: center;">Signal GH 2.x (2016)</td></tr></tbody></table><br /><br /><table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto;"><tbody><tr><td style="text-align: center;"><a href="https://genhelp.com/Blog/GraphTab.png" style="margin-left: auto; margin-right: auto;"><img border="0" data-original-height="800" data-original-width="370" height="320" src="https://genhelp.com/Blog/GraphTab.png" width="148" /></a></td></tr><tr><td class="tr-caption" style="text-align: center;">Signal GH 3.0 (2022)</td></tr></tbody></table><br /><div>The UI has been completely refreshed, except the map which wouldn't have benefitted from a SwiftUI replacement, with an emphasis on showing both graphs and meters simultaneously. And while I always loved the spinning wheel picker to choose the channel, one must admit it took up a disproportionately huge amount of screen space. Replacing it with a menu button was a huge win for showing more data and less chrome. Just tap on the digital channel number.</div><div><br /><table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto;"><tbody><tr><td style="text-align: center;"><a href="https://genhelp.com/Blog/ChannelMenu.jpg" style="margin-left: auto; margin-right: auto;"><img border="0" data-original-height="800" data-original-width="412" height="200" src="https://genhelp.com/Blog/ChannelMenu.jpg" width="103" /></a></td></tr><tr><td class="tr-caption" style="text-align: center;">Menu of Digital Channels</td></tr></tbody></table><br />Version 2 had featured wide bar graphs indicating signal quality and signal strength. </div><div><br /><table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto;"><tbody><tr><td style="text-align: center;"><a href="https://genhelp.com/Blog/SignalGHBarGraphs.png" style="margin-left: auto; margin-right: auto;"><img border="0" data-original-height="358" data-original-width="640" height="179" src="https://genhelp.com/Blog/SignalGHBarGraphs.png" width="320" /></a></td></tr><tr><td class="tr-caption" style="text-align: center;">Signal GH 2.x's Bar Graphs</td></tr></tbody></table><br />I always loved these bar graphs with their gradient backgrounds and individual colors. And patted myself on the back about how the numbers transitioned from white to black as the bar slid under them But they were bulky. I replaced them with the compact circular graphs, similar to the ones I see on the Apple Watch. </div><div><br /></div><div class="separator" style="clear: both; text-align: center;"><a href="https://genhelp.com/Blog/SignalGHCircleGraphs.png" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="324" data-original-width="248" height="200" src="https://genhelp.com/Blog/SignalGHCircleGraphs.png" width="153" /></a></div><div class="separator" style="clear: both; text-align: center;">Signal GH 3.0's Meters</div><br /><div>They are animated and colorful, and most of all take up minimal space. </div><div><br /></div><div>Both of these compacting moves lost instant discoverability. The old spinner was big, but at least, most people would recognize it as a channel selection control. The old bar graphs were wide, but at least there was plenty of room for labels. Now, users will have to learn that the bottom left circular graph is the signal quality indicator, and the bottom right is signal strength. Tapping on the meters brings up a summary view and that view has labels, so I hope most of them figure it out. </div><div><br /></div><div><table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto;"><tbody><tr><td style="text-align: center;"><a href="https://genhelp.com/Blog/HDHomerunTunerSummary.png" style="margin-left: auto; margin-right: auto;"><img border="0" data-original-height="800" data-original-width="370" height="320" src="https://genhelp.com/Blog/HDHomerunTunerSummary.png" width="148" /></a></td></tr><tr><td class="tr-caption" style="text-align: center;">The Tuner Detail Sheet</td></tr></tbody></table></div><div><br /></div><div>I rely heavily on the new action color—the sort of turquoise blue you see throughout these screenshots—being recognized as tappable. </div><div><br /></div><div>To try to help with discoverability, in a first for one of my apps, I included several pages of documentation under the info tab: written in SwiftUI, so it has tappable elements. Tapping on the channel menu button in the documentation actually brings up a channel selection menu. There are no screenshots.</div><div><br /></div><table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto;"><tbody><tr><td style="text-align: center;"><a href="https://genhelp.com/Blog/LiveDocumentation.jpeg" style="margin-left: auto; margin-right: auto;"><img border="0" data-original-height="800" data-original-width="370" height="320" src="https://genhelp.com/Blog/LiveDocumentation.jpeg" width="148" /></a></td></tr><tr><td class="tr-caption" style="text-align: center;">Live Tappable Documentation</td></tr></tbody></table><br /><table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto;"><tbody><tr><td style="text-align: center;"><a href="https://genhelp.com/Blog/TunerColors.png" style="margin-left: auto; margin-right: auto;"><img border="0" data-original-height="372" data-original-width="656" height="181" src="https://genhelp.com/Blog/TunerColors.png" width="320" /></a></td></tr><tr><td class="tr-caption" style="text-align: center;">When I Update Colors, <br />The SwiftUI Documentation Updates<br /><br /></td></tr></tbody></table><br /><div><br />I always wanted a bit of flair on the line graph, so the new one has an animated pulse circle that briefly appears when a new data point is added. </div><div><br /></div><table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto;"><tbody><tr><td style="text-align: center;"><a href="https://genhelp.com/Blog/Pulsing.png" style="margin-left: auto; margin-right: auto;"><img border="0" data-original-height="428" data-original-width="781" height="110" src="https://genhelp.com/Blog/Pulsing.png" width="200" /></a></td></tr><tr><td class="tr-caption" style="text-align: center;">Pulsing Circle on Graph<br /></td></tr></tbody></table><div><br /></div></div><div><br /></div><div><br /></div><div><div><br /></div>In a bid to help advanced users track changes in their system, there is an Experiments tab which scans all their chosen channels and stores the results. Helpful, is after all, my company's middle name.</div><div><br /><div class="separator" style="clear: both; text-align: center;"><a href="https://genhelp.com/Blog/Experiments.png" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="800" data-original-width="370" height="200" src="https://genhelp.com/Blog/Experiments.png" width="93" /></a></div><div class="separator" style="clear: both; text-align: center;">Experiments Tab</div><div><br />Ran into a bit of a bug in SwiftUI here; the table wouldn't align to the left when there's only a few entries. And—I hope it's not making your eyes bleed—the need to use customary hazard colors made this tab garish. I've been thinking of putting out a Mac version, and this and its export function seem like an excellent Mac feature. </div><div><br /></div><div>The onboarding/settings views were an incredible amount of work to get where I wanted them. I had not liked the previous iteration. Particularly, the need for separate tabs to manually choose or automatically scan digital channels. And the previous progress was awkward and not descriptive. I ended up with a tall column of available digital channels which you could choose to manually add and scan. Or you could scan the entire ATSC range, or you could press a location button and I could add nearby towers from my database. The progress view is a massive improvement, much more descriptive about what's going on. This is tight on a 7th generation iPod touch, the smallest device that runs iOS 15, but it fits except the the labels above the Quality and Strength graphs which are truncated. And you can tell at a glance which channels are already reasonably optimized.</div><div><br /></div><table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto;"><tbody><tr><td style="text-align: center;"><a href="https://genhelp.com/Blog/SettingsProgress.png" style="margin-left: auto; margin-right: auto;"><img border="0" data-original-height="800" data-original-width="370" height="320" src="https://genhelp.com/Blog/SettingsProgress.png" width="148" /></a></td></tr><tr><td class="tr-caption" style="text-align: center;">Settings/Onboarding</td></tr></tbody></table><br /><div><br /><div>I took the opportunity to rewrite all the HDHomerun interface code in pure async/await Swift. The new actor type was of particular help wrapping the hdhomerunlib which is written in C and is particular about multiple threads trying to interface with the same tuner struct. Scanning multiple tuners simultaneously was pretty simple with an AsyncSequence. Should be extremely reliable. </div><div><br /></div><div>The ... button in the app brings up a channel summary sheet with live signal meters and I even display the program data from the tuner's data stream. Unfortunately, we don't have a NextGenTV ATSC 3.0 broadcaster here in southern New Hampshire, so I've gingerly added support for displaying and selecting ATSC 3.0 PLPs (the individual programs embedded in the data stream) with some help from beta testers, but they are still not working right, and is the main reason I haven't submitted it yet. </div><div><br /></div><table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto;"><tbody><tr><td style="text-align: center;"><a href="https://genhelp.com/Blog/ChannelSummaryView.jpeg" style="margin-left: auto; margin-right: auto;"><img border="0" data-original-height="800" data-original-width="370" height="320" src="https://genhelp.com/Blog/ChannelSummaryView.jpeg" width="148" /></a></td></tr><tr><td class="tr-caption" style="text-align: center;">Channel Summary View<br />with Live Meters</td></tr></tbody></table><div><br /></div><div>The new icon—being by me—was typed by hand in SVG using BBEdit. I wanted to emphasize new elements to the app, so there's the circular graph, the pulsing line, dark mode, a new orange level of quality between yellow and red, all while retaining the idea of an old fashioned wire antenna wrapping a graph. It was a struggle keeping it from being overly garish. A hard thing to do for an app that communicates so much with color. In particular, the yellow of the line was the tuner color that pops the best on a dark background when the icon is small, the magenta I'd initially tried was much too muddy at tiny size. </div><div><br /></div><div><table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody><tr><td><img alt="Signal GH's New Icon" height="320" src="https://genhelp.com/Blog/SignalGH.svg" style="margin-left: auto; margin-right: auto;" width="320" /></td></tr><tr><td class="tr-caption">Signal GH 3.0's New Icon<br /></td></tr></tbody></table></div><div><br /></div><div>Actually, it's only an approximation as the yellow in the app is in the P3 space (yay modern displays) and really pops there where I can only use RGB hex in my SVG. Colors in general, got a refresh. I use different colors for each tuner, and it is hard picking out distinctive colors that look good in both dark and light mode, so I used XCAsset colors to define both light and dark variants. Choosing tuner colors reminds me of back in the day when I was writing karyotyping software and the biochemists needed dyes to stain every human chromosome a different color. You run out of distinct colors pretty fast. </div><div><br /></div><div>All the other static artwork—except for the map tab, and my app icons in the info tab—are standard SF Symbols. Yes, I'm not using hand crafted SVGs anymore. Which was great, flexible and highly recommended, although the only appropriate icon for the Experiments tab is the sort of lame test tubes. </div><div><br /></div><div>It was a great learning experience revamping this venerable old app, I just hope my users can accept a little change. <br /><br /></div></div></div><div class="separator" style="clear: both; text-align: center;"><br /></div><br />Glenn Howeshttp://www.blogger.com/profile/13657643977857888422noreply@blogger.comWindham, NH 03087, USA42.8006441 -71.30422899999999214.490410263821154 -106.46047899999999 71.110877936178838 -36.147978999999992tag:blogger.com,1999:blog-12068616.post-84197311573936406302022-05-07T13:42:00.023-04:002022-06-02T20:42:12.369-04:00A Heating Season of Less Oil and More Heat Pump<p> The house we moved into in Fall of 2020 is excellent in most every way. Except it has an oil boiler. Heating a large house. In New Hampshire. </p><p>After seeing the first January oil bill, I knew it was time for heat pumps. I had one at my previous house, which had relatively cheap natural gas heating. This was a whole other level of financial pain. Burning oil for heat does not have much of a future.</p><p>So, I planned all year for a multi-step installation. This is the story of the first step: heating the bedrooms and my wife's office with an air source heat pump.</p><h2 style="text-align: left;">Equipment</h2><div>I went with Mitsubishi pretty much entirely because they make a ceiling cassette head unit that fits between unmodified standard joists, and I didn't see any other way to get the refrigerant lines to the children's bedrooms and the office. The one major downside is the smallest capacity Mitsubishi sells in this form is 9 kBTU, wherein my son's bedroom and my daughters bedroom and adjacent bathroom could probably get along with 6 kBTU. As the office is open ended and hot air would escape into the hallway and nearby rooms, I bought a 12 kBTU unit for the office. Finish that out with a standard wall mounted 12 kBTU unit to cover the master bedroom and bathroom. </div><table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto;"><tbody><tr><td style="text-align: center;"><a href="https://genhelp.com/Blog/MLZ-KP12NA.jpg" style="margin-left: auto; margin-right: auto;"><img border="0" data-original-height="414" data-original-width="800" height="208" src="https://genhelp.com/Blog/MLZ-KP12NA.jpg" width="400" /></a></td></tr><tr><td class="tr-caption" style="text-align: center;"><span style="background-color: white; caret-color: rgb(51, 51, 51); color: #333333; font-size: 16px; text-align: left;">MLZ-KP12NA Ceiling Unit</span></td></tr></tbody></table><div><br /></div><div>I had hopes that if I installed the ceiling unit while my wife was out of the house, she wouldn't notice it right away, and I could argue it hadn't ruined the esthetics of her office, but she did notice it. Thankfully, she was OK with it and its premium look. Much nicer than the typical wall wart mini-split. </div><div><br /></div><div>As we would be keeping oil as a backup, I didn't feel compelled to purchase the more expensive hyper heat heat pump. Adding up the head units, and I bought a matching 42 kBTU inverter style heat pump. Southern New Hampshire only dips for a few hours a year below 0°F, and as I was to find, even the non-hyper heat model generates useable heat at that temperature. </div><div><p style="text-align: left;"></p><ul style="text-align: left;"><li><span style="font-family: georgia; font-size: medium;">1 MXZ-5C42NA 42 kBTU 5 Zone Heat Pump $3596</span></li></ul><ul style="text-align: left;"><li><span style="font-family: georgia; font-size: medium;">2 <span face="Roboto, sans-serif" style="background-color: white; caret-color: rgb(51, 51, 51); color: #333333;">MLZ-KP09NA 9 kBTU ceiling </span><span face="Roboto, sans-serif" style="color: #333333;"><span style="caret-color: rgb(51, 51, 51);">cassettes 2×$785</span></span></span></li></ul><ul style="text-align: left;"><li><span style="font-family: georgia; font-size: medium;"><span face="Roboto, sans-serif" style="color: #333333;"><span style="caret-color: rgb(51, 51, 51);">1 </span></span><span face="Roboto, sans-serif" style="background-color: white; caret-color: rgb(51, 51, 51); color: #333333;">MLZ-KP12NA 12 kBTU ceiling </span><span face="Roboto, sans-serif" style="color: #333333;"><span style="caret-color: rgb(51, 51, 51);">cassette $1175</span></span></span></li></ul><ul style="text-align: left;"><li><span style="font-family: georgia; font-size: medium;"><span face="Roboto, sans-serif" style="color: #333333;"><span style="caret-color: rgb(51, 51, 51);">1 </span></span><span face="Roboto, sans-serif" style="background-color: white; caret-color: rgb(51, 51, 51); color: #333333;">MSZ-GL12NA-U1 12 kBTU wall unit $654</span></span></li></ul><ul style="text-align: left;"><li><span style="background-color: white; caret-color: rgb(51, 51, 51); color: #333333; font-family: georgia; font-size: medium;">200 feet of refrigerant lines around $1000</span></li></ul><ul style="text-align: left;"><li><span style="background-color: white; caret-color: rgb(51, 51, 51); color: #333333; font-family: georgia; font-size: medium;">Covers, threaded rod, screws, wire, a breaker, concrete, mounting stand maybe $800</span></li></ul><ul style="text-align: left;"><li><span style="background-color: white; caret-color: rgb(51, 51, 51); color: #333333; font-family: georgia; font-size: medium;">HVAC guy to connect the vacuum and hook up system $600</span></li></ul><ul style="text-align: left;"><li><span face="Roboto, sans-serif" style="color: #333333;"><span style="background-color: white; caret-color: rgb(51, 51, 51); font-family: georgia; font-size: medium;">Total about <b>$9400 - 800 NH rebate = $8600</b></span></span></li></ul><p></p><p></p><div style="text-align: left;">This is a premium unit and there are certainly other brands that can be had cheaper. If you travel in China, near every apartment is a mini-split of some kind which implies they can be made cheaply. I just like the hardware and the design of the Mitsubishi ceiling units. </div><div style="text-align: left;"><br /></div><div style="text-align: left;">By the way, the first compressor <a href="http://GotDuctless.com">GotDuctless.com</a> shipped was damaged in transport and they sent me a second, but they haven't yet picked up the first. It's been sitting in my garage for over 6 months. The second was only scraped a bit in transport, so I shrugged and installed it. </div><div style="text-align: left;"><br /></div><table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto;"><tbody><tr><td style="text-align: center;"><a href="https://genhelp.com/Blog/MXZ-5C42NA.jpg" style="margin-left: auto; margin-right: auto;"><img border="0" data-original-height="800" data-original-width="523" height="400" src="https://genhelp.com/Blog/MXZ-5C42NA.jpg" width="262" /></a></td></tr><tr><td class="tr-caption" style="text-align: center;">MXZ-5C42NA Heat Pump</td></tr></tbody></table><br /><div style="text-align: left;"><br /></div><div style="text-align: left;"><br /></div><div style="text-align: left;">In doing most of the install myself: running electrical, running line set, cutting openings in ceilings, pouring concrete, etc., I saved at least $5000 over having the pros do it. I was lucky enough that the son of a former co-worker was available for dealing with refrigerant, and he even installed most of the condensate drain work. We ended up draining the upstairs units via the drain pipe of a conveniently located bathtub. By the way, the ceiling units occasionally gurgle when used for cooling.</div><div style="text-align: left;"><br /></div><div style="text-align: left;">It's a lot of money, but when you consider I needed to replace the corroded and dripping manifold on my radiant heating system this year and the cheapest of 3 bids was $5000 just to occasionally heat the floors in the main living area, pretty reasonable. </div><h2 style="text-align: left;">Performance</h2><div style="text-align: left;">To confound this analysis, I realized mid-Winter that my water was being heated with a kind of indirect system from the oil boiler which even in Summer months burnt 1.6 gallons of oil a day just keeping the boiler running and feeding the water heater. In mid-March, I replaced the hot water system with a Rheem hybrid (resistive+heat pump) unit for another <b>$3400</b> installed. No rebate available this year. </div><div style="text-align: left;"><br /></div><div style="text-align: center;"><b style="background-color: white; caret-color: rgb(51, 51, 51); color: #333333; font-family: georgia;">$8600+3400 = $12,000 total expenditures</b></div><div style="text-align: left;"><br /></div><div style="text-align: left;">Good thing too, as the water tank was 11 years old and failing. About the same time, the oil boiler took to dripping water out of the relief valve and air vent and I had to shut it down pending repairs. Which points to another great advantage of having 2 heating systems, it makes a failure of one an inconvenience not an emergency. I shut off the boiler for over a month while taking my time to find the parts I needed and it was not a big deal. I won't need it again till January. </div><div style="text-align: left;"><br /></div><div style="text-align: left;">So how did the system perform? Pretty well, we burnt 711 fewer gallons of oil than the previous year, and taking into account the month to month variance of oil price (which was between $3.30 and $6.59! this heating season) we saved $3190 in oil. But we spent $1570 more in electricity feeding the heat pump and water heater. So, in net, we saved <b>$1620</b> from mid-November till today (May 7th). </div><div style="text-align: left;"><br /></div><div style="text-align: left;">For the previous year we used a total of 1514 gallons of oil, which would (assuming the price of oil is about $5/gallon for the rest of this year) would have cost us ∼$6700 for this year. I'm not planning on using another drop of oil till the outside temperature drops below 20°, so I think the current system will allow us to use around 400 gallons of oil per year. </div><div style="text-align: left;"><br /></div><div style="text-align: left;">Projecting electricity usage. During late Spring, Summer, and early Fall, it will almost all be water heating cost at $1.60/day, maybe $300. Assuming September through November the heating costs are like March, April and May, that would be maybe $500, so the total heating electricity will be $800, let's make it $900 for the occasional chilly night. </div><div style="text-align: left;"><br /></div><div style="text-align: center;">$6700 oil (2021) - $1810 oil (2022) - $1570 elect. (actual) - $900 elect. (guess) = <b>$2420</b> yearly savings</div><div style="text-align: left;"><br /></div><div style="text-align: left;">Thus I project a system payback at ($12,000 ÷ <span style="text-align: center;">2,420</span>) <b>5.0</b> years just on heating costs. I assume the cost for cooling will also be greatly reduced: the central AC makes the entire above ground (2 floors) volume of the house a single zone whose compressor and air handler cost about $1/hr to run. In 2021, we used about a thousand extra kilowatt hours a month during June, July and August for cooling, so that's over $200 per summer month from which we can save money. We'll see.</div><div style="text-align: left;"><br /></div><div style="text-align: left;">As the chart below of kWh per day versus temperature, the pump maxed out at around 85 kWh for a couple of back to back days where the lows were around 0°. At that point, to keep the rest of the house warm we were also burning a fair amount of oil. It was fairly loud running all out. The one major problem with my install was placing the compressor only a few feet from our bed. I may have to see about upgrading the windows, and trying to lower the compressor another foot. Most days it isn't an issue, but in mid-January, you notice it. </div><div style="text-align: left;"><br /></div><div style="text-align: left;"><table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto;"><tbody><tr><td style="text-align: center;"><img height="360" src="https://genhelp.com/Blog/HeatPumpVsTemperature.svg" style="margin-left: auto; margin-right: auto;" width="525" /></td></tr><tr><td class="tr-caption" style="text-align: center;">Kilowatt Hours vs Daily Average Temperatures<br />(includes water heater)</td></tr></tbody></table><br /></div><div style="text-align: left;">I installed a smart oil gauge in early January so you can see usage plummeting over time. The readings are too noisy for daily tracking, but you can see oil usage was high in January and kept going down. It maxed out at 7 gallons a day, which would be a wallet draining $46 for that one day (1/16/22) at the current price, and that was in addition to $16 of heat pump electricity. Oil heating demand for everything but water heating was shut off in early-March and I turned off the boiler entirely in late March after the water heater install. Basically, the heat pumps can handle everything comfortably above around 20°F, so no need to keep it fired up.</div><div style="text-align: left;"><br /><table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto;"><tbody><tr><td style="text-align: center;"><a href="https://genhelp.com/Blog/Oil_Usage_2022.jpeg" style="margin-left: auto; margin-right: auto;"><img border="0" data-original-height="800" data-original-width="393" height="320" src="https://genhelp.com/Blog/Oil_Usage_2022.jpeg" width="157" /></a></td></tr><tr><td class="tr-caption" style="text-align: center;">Smart Oil Gauge Readings Since Early January<br /><br /></td></tr></tbody></table></div><div style="text-align: left;"><br /></div><div style="text-align: left;">I think the main takeaway here is that even at its worst efficiency, when it is maxed out and can barely keep up with heating the bedrooms, it isn't any worse than oil. There was never a point where I thought I should shut it down and just run the oil boiler by itself. At least when oil is 4 to 6 dollars a gallon, even here in the expensive Northeast with electricity at 21.4¢/kWh (it started the year at 18.6¢/kWh) When the outside air is over around 20°F, I can turn off the oil boiler and really start saving money. Not that it was fun paying $428 in January for the electricity to feed it. </div><div style="text-align: left;"><br /></div><p></p><p></p></div>
<div><br /></div><table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto;"><tbody><tr><td style="text-align: center;"><a href="https://genhelp.com/Blog/Emporia_HeatPump.jpeg" style="margin-left: auto; margin-right: auto;"><img border="0" data-original-height="800" data-original-width="392" height="400" src="https://genhelp.com/Blog/Emporia_HeatPump.jpeg" width="196" /></a></td></tr><tr><td class="tr-caption" style="text-align: center;">Emporia Energy Monitor of Monthly Heat Pump Use</td></tr></tbody></table><div><div><br /></div><div>One of the nice features of the system is that everyone in the house has some control over their own environment. My daughter likes the temp in the low 60° range, my son in the low 70° range. I like low to mid-70s. My wife likes to save money whatever the temperature. </div><div><br /></div><div>Another is the lack of dirty ducts. With this system, every few months I wash the filters out, and maybe replace the allergen filter; no possibly moldy ductwork, and no potentially virus ridden air flowing from bedroom to bedroom.</div><div><br /></div><div>The least favorite problem is that unlike a nice, low maintenance thermostat, these head units take some daily futzing to get the temperature you like, and sometimes there will be a dispute between the head units over whether to go into heating or cooling mode and the loser will be left to blink its status light until somebody comes around and turns it back on. Doesn't happen often with the units all in auto mode, but it does happen. </div><div><br /></div><div>Mitsubishi should really improve their smart device offerings. The thermostats or thermostat integration hardware they offer are not DIY friendly. I did end up buying a little infrared smart controller (a Sensibo) so I could control the office unit from my iPhone although that confuses my wife as the Mitsubishi remote won't know I used another device to change the temperature. Maybe Elon Musk should get into the heat pump business, Mitsubishi is leaving a lot of room to be leap frogged.<br /><div><br /></div><h2 style="text-align: left;">Water Heating</h2><div>As I said, I had an 80 gallon hybrid water heater installed in the basement, and there are a couple of issues. The previous, indirect system generated huge amounts of very hot water. In a year of use, I never ran low on hot water, even when filling the Jacuzzi in the master bathroom. With the new system and a teenage son, I must take care. The water heater has an app—doesn't everything these days—and I can make sure it's at capacity before getting wet. I ended up setting the water heater to its maximum 140°F despite the incessant scald warnings because otherwise the water was not comfortably hot by the time it wound its way upstairs to the kid's bathrooms. Also, this gives the added benefit of larger practical capacity. </div><div><br /></div><table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto;"><tbody><tr><td style="text-align: center;"><a href="https://genhelp.com/Blog/Rheems_Hybrid_Water_Heater.jpg" style="margin-left: auto; margin-right: auto;"><img border="0" data-original-height="800" data-original-width="338" height="320" src="https://genhelp.com/Blog/Rheems_Hybrid_Water_Heater.jpg" width="135" /></a></td></tr><tr><td class="tr-caption" style="text-align: center;">Rheem hybrid 80 gallon water heater</td></tr></tbody></table><br /><div><br /></div><div><br /></div><div>The water heater will take most of the day running the heat pump and ever so slowly getting the water up to temperature, and do so efficiently. As long as it doesn't have to turn on the resistive elements, it will provide hot water at maybe $1.60 a day. Compare this with the 1.6 gallons a day to run the oil boiler and the current $6.50/gallon or even $3/gallon. $1.60 < 4.80 < 10.40 or per year $580 < 1750 < 3800. If oil and electricity keep at their current price ratio, this water heater will pay for itself in just over a year. </div><div><br /><table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto;"><tbody><tr><td style="text-align: center;"><a href="https://genhelp.com/Blog/Emporia_Rheem_Water_Heater.jpeg" style="margin-left: auto; margin-right: auto;"><img border="0" data-original-height="800" data-original-width="393" height="800" src="https://genhelp.com/Blog/Emporia_Rheem_Water_Heater.jpeg" width="393" /></a></td></tr><tr><td class="tr-caption" style="text-align: center;">Rheem Hybrid Money per Hour (Note surge when resistive element turned on.)</td></tr></tbody></table></div><div><br /></div><div>The other thing is that it keeps the basement cold and dry. Which can be a good thing. With the boiler off in March, the basement was around 50°F—poor man's geothermal. The area around the water heater was maybe 45°. The ground has gotten warmer, and I've put up a temporary duct to spread the cold air, so now the whole basement is maybe 55°, not bad. When Summer visitors come, I'll either be thankful for free basement AC, or I'll put the water heater into expensive pure resistive mode. The house came with a "wine cellar"—I don't drink—with a now unused room chiller. I could see a future owner chilling the cellar with the water heater and saving money. </div><div><br /></div><div>Oh, and it makes some noise which I can't hear upstairs, and can't be heard from the guest room if you close all the doors. Contrast with the boiler which made heat and noise all summer long and ruining the guest experience. </div></div><div><br /></div><h2 style="text-align: left;">The Future</h2><div>At this point we are approaching diminishing returns as there is not a lot of oil to save. However, the house would be more comfortable and useable in mid-Winter if I put in a couple more heat pumps. If I could get oil usage down to zero, I'd probably net out an additional yearly savings of $1000. So, I plan to expand my collection. </div><div><br /></div><div>A single 12 kBTU floor mounted hyper heated unit for the sun room to keep it above freezing in the Winter and cool in the Summer. A dual system for our shared spaces and kitchen. And maybe replace the AC in the basement with a ducted heat pump for Winter time visitors and allowing me to use my workshop without gloves. The water heater is doing a very nice job of keeping it cold, so maybe not. </div><div><br /></div><div>I will have to be careful regarding the system's maximum power requirements. I have a 200A panel, which most days is ample, but I can imagine some cold January night where the 4 heat pumps and a water heater all want to do their thing and pop. </div><div><br /></div><div>Not to mention future electric cars. </div><div><br /></div><div>And then there is solar. That would be quite the synergy once the electrification is complete. Lots of electricity savings that could justify a solar array.</div></div><div><br /></div><h2 style="text-align: left;">The 4% Rule</h2><div>I'm approaching retirement, and one of the rules of retirement is that your yearly expenses should be 1/25th (4%) of your investments if you never want to run out of money. People focus on the pile of money in the investments, but reducing expenses is nearly as important and often easier. Here, I've reduced my expenses by $2420, which means I'll need 25×$2420 = 60,500 fewer dollars saved for retirement, and it only cost me $12,200. Quite a bargain.</div><br />Glenn Howeshttp://www.blogger.com/profile/13657643977857888422noreply@blogger.comtag:blogger.com,1999:blog-12068616.post-49799736133734984712021-01-18T11:15:00.004-05:002022-05-22T10:04:37.194-04:00Moving from Eve to Lutron Caseta Smart Switches<p> My wife and I are preparing our previous home for the rental market. So, we are making practically every improvement we always wanted but never got around to, except this is all for a yet to be chosen renter. Quirks of the house, like having no light switch next to the entry door to the converted garage, which I tolerated for the 14 years I lived in the house, are finally being dealt with. </p><p>As I mentioned in my <a href="https://www.sprinkleofcocoa.com/2020/12/bringing-2000-home-up-to-modern-tech.html">previous post</a>, I installed Lutron Caseta switches and remotes throughout my new house. This was mainly because I was replacing dimmers and Lutron is well regarded for its dimmers, but I came to appreciate other features of the system. And this appreciation brought with it a certain distain for the Eve switches I had filled my old house with. And even though it was a fair expense, I pulled the trigger and ordered many dimmers, switches, remotes and a hub from eBay sellers. This blog post is about why.</p><table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto;"><tbody><tr><td style="text-align: center;"><a href="https://genhelp.com/Blog/Eve_smart_switches.jpg" style="margin-left: auto; margin-right: auto;"><img border="0" data-original-height="600" data-original-width="800" height="300" src="https://genhelp.com/Blog/Eve_smart_switches.jpg" width="400" /></a></td></tr><tr><td class="tr-caption" style="text-align: center;">Eve Smart Switches Ripped From My Walls</td></tr></tbody></table><br /><p><br /></p><h3 style="text-align: left;">Reason #1, the Pico Remote</h3><div>Of the 3 entrances into the house, only one has a handy light switch within arms length of the doorway. For the other two I'd spent all those years either stumbling through the dark, or when I did install Eve smart switches taking out my iPhone or Apple Watch and asking Siri to turn on the light; and it may or may not have worked, the system was only OK with reliability. The brick walls of the house prevented any reasonable chance of just installing an old fashioned 3 pole switch.</div><div><br /></div><div>With Caseta Pico remotes, I can mount virtual switches wherever is convenient. They are extremely reliable, in my experience. If a dimmer remote is paired with a dimmer switch, I can even have a preset dimmed light level. I can even control multiple groups of lights at once. </div><div><br /></div><div>In the case of the basement lights, I can now turn off the basement light from the top of the stairs and the stairs light from the basement. What a magical time we live in. </div><div><br /></div><div>No more stumbling around in the dark. </div><div><br /></div><h3 style="text-align: left;">Reason #2, Dimming</h3><div>As part of the refurbishment, the contractor installed new ceiling lights: dimmable LED disks. My Eve switches were simple on-offs. So, I can dim, use preset dimming on the remote, and when turning off there is a pleasant smooth dimming shutoff. </div><div><br /></div><div>Lutron dimmers also have the magical ability to function without a neutral wire. Not a problem in my new house, but a constant struggle with the haphazard wiring in my old house. </div><div><br /></div><h3 style="text-align: left;">Reason #3, the Buttons</h3><div>Tapping on the Eve is just tapping on a hard sheet of solid plastic. The Lutrons have a smalll amount of travel, but it has recognizable buttons. My wife, for one, is not a fan of the non-clicky buttons, but at least they move. </div><div><br /></div><h3 style="text-align: left;">Reason #4, Reliability</h3><div>I can't say that I've ever had a Pico remote not do its job, and the switches and dimmers work every time. HomeKit is about as reliable as it ever gets. I will say that there are issues with certain LEDs. Some low wattage LEDs will never truly turn off with a Caseta switch as the current used to power the status light is enough to maintain a ghost light on the bulbs. Regardless, they work. On the other hand, HomeKit is hit or miss with the Eve switches; either taking several seconds to trigger or not at all. </div><div><br /></div><h3 style="text-align: left;">Reason #5, Build Quality</h3><div>The Lutrons are nicely made with metal fins, and high quality, easy to manipulate wires. The Eves are more plastic, and the stranded wires are annoying to deal with when using wire caps (another reason to use Wagos).</div><div><br /></div><h3 style="text-align: left;">Reason #6, Homekit</h3><div>When I have to add an Eve switch, I add it directly in HomeKit which would be fine except the contractors installed one I'd given them and then threw out the frame and the box, so I couldn't add it to HomeKit weeks later. The Lutron I add in the Lutron app, and it tends to be more streamlined in pairing, and I don't feel compelled to save the HomeKit code for each and every switch. Just the Lutron hub. For either system, I have the nice features like Siri integration and remote management. It's been extremely convenient making sure all the lights are off at a house 20 miles away. </div><div><br /></div><h3 style="text-align: left;">Cost didn't Help</h3><div>Lutron is not cheap. The switches are not cheap, the remotes are not cheap, even the plastic brackets to mount a remote on the wall is not cheap. But neither is the Eve switch. In fact, you can get Caseta switches on eBay for less than you can get Eve switches on Amazon. Of course, I ended up spending much more because I purchased Pico remotes, often 2 or 3 remotes for each actual switch. </div><div><br /></div><h3 style="text-align: left;">In Conclusion</h3><div>I'm happy with how the system ended up, and I think it'll be much more accessible and functional for my renters. I'm not happy at ripping out working smart switches and I wouldn't have done so without a belief the resulting house would be greatly improved. Which it was.</div>Glenn Howeshttp://www.blogger.com/profile/13657643977857888422noreply@blogger.comtag:blogger.com,1999:blog-12068616.post-13260297276664168992020-12-28T11:23:00.013-05:002021-04-11T10:03:42.677-04:00Bringing a 2000 Home Up to Modern Tech<p> My family recently moved to a home built in the year 2000, from our smaller, built in 1964, home I'd spent 15 years making convenient and comfortable. While the new home is beautiful and well made, it doesn't seem as if the previous owners thought much about technology. </p><h2 style="text-align: left;">Door Locks</h2><div>I don't believe my children have ever had cause to use a mechanical door key. We've always had keypad locks, and love the security and convenience. The new house had a huge, ornate, front door lock which was broken when we purchased the house and was going to cost me $600 to fix, for a lock I didn't even want. Instead, a locksmith put in a <a href="https://www.schlage.com/en/home/products/FE595CAMFFFACC.html">keypad based Schlage lock</a> to match the one I installed in the side entrance—including matching the mechanical keys, which got tossed in the big bucket of keys, never to be used again. This is not a smart lock, I've never needed to open my doors remotely. </div><div><br /></div><table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto;"><tbody><tr><td style="text-align: center;"><a href="https://genhelp.com/Blog/Schlage_Keypad_Lock.jpeg" style="margin-left: auto; margin-right: auto;"><img border="0" data-original-height="640" data-original-width="480" height="320" src="https://genhelp.com/Blog/Schlage_Keypad_Lock.jpeg" width="240" /></a></td></tr><tr><td class="tr-caption" style="text-align: center;">The old lock was a bit larger</td></tr></tbody></table><h2 style="text-align: left;">Networking</h2><div>At the closing, I mentioned to the seller I'd be putting in Ethernet everywhere. He didn't think much of the idea, as he'd been blasting WiFi from the central office on the 2nd floor. But for me, wired networking is reliable networking, bringing uniform WiFi coverage throughout the house, from the basement guest room to the sunroom tucked on the far side of the garage. Indeed, our family had a horrible experience the first week, pre-network install getting by with a pair of ancient Airport Expresses. </div><div><br /></div><div>When, a few weeks in, roofers were replacing the roof—see below—they gave me half an hour to enter the inaccessible portion of the attic over the general purpose room over the garage. A place no-one had seen for 20 years. Time to pull Ethernet and antenna coax from the main attic and into the wall behind the TV and place speaker wires. Later, a handy man came in to cut a hole in the ceiling allowing me to pull security camera cables, tidy up the speaker wires, add one last Ethernet port, and double up the insulation before sealing it for another 20 years. </div><div><br /></div><table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto;"><tbody><tr><td style="text-align: center;"><a href="https://genhelp.com/Blog/Inaccessible_Attic.jpeg" style="margin-left: auto; margin-right: auto; text-align: center;"><img border="0" data-original-height="640" data-original-width="480" height="320" src="https://genhelp.com/Blog/Inaccessible_Attic.jpeg" width="240" /></a></td></tr><tr><td class="tr-caption" style="text-align: center;">I did untangle this</td></tr></tbody></table><br /><div>The final setup is 100% Ubiquiti hardware with an overkill number of <a href="https://store.ui.com/collections/unifi-network-access-points/products/inwall-ap">in-wall WiFi access points</a> powered by Power Over Ethernet (POE). It has been reliable, except when played with—don't plug non-POE devices into the POE out port of an access point. A <a href="https://store.ui.com/collections/unifi-network-routing-switching/products/unifiswitch-24-250w">24 port POE switch</a> went in the main network closet, and an <a href="https://store.ui.com/collections/unifi-network-routing-switching/products/unifi-switch-8-150w">8-port POE</a> switch to handle the <a href="https://www.sprinkleofcocoa.com/2020/11/thank-you-bell-atlantic-for-ethernet-in.html">legacy Cat 5 in the basement</a>. The 8-port is really a 10 port as you can buy non-POE <a href="https://store.ui.com/collections/operator-accessories/products/uf-rj45-1g-1">SFP adaptors</a> to add 2 extra RJ-45 ports.</div><div><br /></div><div>I'm done pulling for now, because after I removed the blown in insulation in the attic, pulled as many wires as I could think of uses for, and replaced the blown-in insulation, adding anything more via the attic would be a several thousand dollar journey to the network closet. More could be added via the basement, and there are a couple of unused wires I pulled and decided not to use, but my wife is starting to make comments.</div><div><br /></div><div>My biggest annoyance with Ubiquiti is the <a href="https://store.ui.com/collections/unifi-network-routing-switching/products/unifi-security-gateway-pro">rack mounted router</a> whose loud fan which can easily be heard well down the hall from the network closet because the closet has a half door to let sunlight through in the evening. [Update: I opened both the router and the switch and replaced their fans with<a href="https://www.amazon.com/dp/B072JK9GX6/ref=cm_sw_em_r_mt_dp_6PK95K352MB18QHT0PBH?_encoding=UTF8&psc=1 "> <span style="font-family: Amazon Ember, Arial, sans-serif;"><span style="box-sizing: border-box; font-size: 14px;">Noctua NF-A4x20 FLX</span></span></a> quality fans. Much better with about the same temperature.]</div><div><br /></div><div>I learned through experience that if a cable isn't getting gigabit, as likely as not, it is a mis-punched wire, not the other end. So, check your punch-down connections. It's enlightening having a system which clearly lets me know when there is a problem with a connection.</div><div><br /></div><div>Also, if you are going to be cutting dozens of openings in drywall for single gang box keystone plates, then invest in a <a href="https://www.amazon.com/dp/B01GKKE2W0/ref=cm_sw_em_r_mt_dp_i1M6FbYQ86SV0?_encoding=UTF8&psc=1">box hole cutter for your oscillating saw</a>. The cut will be fast, the holes will be cleaner, and if you have to patch them you'll have a perfectly sized bit of drywall scrap.</div><div><br /></div><table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto;"><tbody><tr><td style="text-align: center;"><a href="https://genhelp.com/Blog/Network_Closet.jpeg" style="margin-left: auto; margin-right: auto;"><img border="0" data-original-height="640" data-original-width="480" height="320" src="https://genhelp.com/Blog/Network_Closet.jpeg" width="240" /></a></td></tr><tr><td class="tr-caption" style="text-align: center;">My Network Closet</td></tr></tbody></table><br /><table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto;"><tbody><tr><td style="text-align: center;"><a href="https://genhelp.com/Blog/SingleBoxCutter.jpeg" style="margin-left: auto; margin-right: auto; text-align: center;"><img border="0" data-original-height="346" data-original-width="640" height="173" src="https://genhelp.com/Blog/SingleBoxCutter.jpeg" width="320" /></a></td></tr><tr><td class="tr-caption" style="text-align: center;">A Single Box Drywall Saw</td></tr></tbody></table><br /><h2 style="text-align: left;">Washlets</h2><div>Ever since the day my wife changed planes in Tokyo, we've used Japanese washlet bidet seats. Unfortunately, the toilets in my old house have round bowls, while all the bowls in the new house have an oblong shape, so the expense of new seats for the family. Also, most of the toilets were too far from a convenient power outlet requiring a bit of wall cutting and wiring. </div><div><br /></div><div>If you've never used a washlet, I highly recommend it for cleanliness and the luxury of a warm seat in winter. <a href="https://www.costco.com/toto-washlet-bidet-seat.product.100522422.html">Costco</a> is a good source. </div><div><br /></div><h2 style="text-align: left;">Sound</h2><div>The inaccessible attic over the general purpose room gave me a narrow window to pull speaker wire for height effect ceiling speakers and my rear surrounds. Atmos might not be a must have, but it is a nice to have. The recent release of the Lord of the Rings with Dolby Atmos tracks made me very glad to have my <a href="https://www.amazon.com/dp/B008QQ9SB2/ref=cm_sw_em_r_mt_dp_cDE6Fb0H4G9HV?_encoding=UTF8&psc=1">ceiling speakers</a> and <a href="https://www.aperionaudio.com/collections/speakers/products/copy-of-aperion-audio-novus-6-5-2-way-slim-lcr-wall-surround-speaker-single">good surrounds</a>, although the odd shape of the room didn't allow for the absolute most accurate placement of the surrounds. I only installed 2 ceiling speakers, but I left wire in the ceiling in case I ever upgrade to 4.</div><div><br /></div><div>The one piece of tech the previous owner left me was some abandoned and non-obvious how to drive Sonos speakers mounted over the deck and in the sunroom, probably left just because it was too much trouble to patch the resulting holes. Much prefer the <a href="https://www.apple.com/homepod-2018/">HomePod</a>. Oh, not to forget the whole house vacuum cleaner, which we have used once; letting my <a href="https://www.sharkclean.com/exclusive-offer/RV761WBKT/shark-ion-robot-vacuum-with-wi-fi/">robot vacuum</a> free every day works better and takes less effort.</div><table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto;"><tbody><tr><td style="text-align: center;"><a href="https://genhelp.com/Blog/Novus_Slim_Satellite%20.jpeg" style="margin-left: auto; margin-right: auto;"><img border="0" data-original-height="640" data-original-width="631" height="320" src="https://genhelp.com/Blog/Novus_Slim_Satellite%20.jpeg" width="316" /></a></td></tr><tr><td class="tr-caption" style="text-align: center;">Aperion Novus Slim Satellites as Surrounds</td></tr></tbody></table><div><br /></div><h2 style="text-align: left;">Cameras</h2><div>I went with Ubiquiti Protect <a href="UniFi Protect G3 FLEX Camera – Ubiquiti Inc.">cameras</a>, and <a href="https://store.ui.com/collections/unifi-protect/products/uvc-g4-doorbell">doorbells</a>. I like wired cameras, which makes it sad the doorbells aren't POE like the rest of Ubiquiti's line. Still, my uniform WiFi coverage make the connection to the doorbells almost reliable. Powering them involved putting a transformer into a 2 gang box inside the wall shared by the doorbell, and powering it with electrical wire brought in from the adjacent light switch box—I hope this does not violate some obscure building code. A great thing about this house is that all the light switch boxes contain neutral wires—what luxury; half the light switches in my previous house couldn't be upgraded to smart because of the lack of a neutral. (Although by some black magic Lutron dimmers work without a neutral.) The opening of the transformer boxes, I covered with Lutron Pico remotes instead of ugly double gang blanks; two birds, one stone.</div><div><br /></div><div>The other cameras are wired with Ethernet strung through the attic and powered by POE. They've been fairly reliable although it seems like every few days one will go offline for a few minutes. I have not been happy with the <a href="https://store.ui.com/collections/unifi-protect/products/unifi-video-camera-g3-bullet">G3 bullet</a>, even with its optional infrared accessory, it has not shown anywhere near the night performance of the other cameras.</div><div><br /></div><div>Protect is hosted on a <a href="https://store.ui.com/collections/unifi-protect-nvr/products/unifi-cloudkey-gen2-plus?_pos=3&_sid=ff9ca4c1f&_ss=r">Gen 2 Cloud Key</a> upgraded to the max 5TB of storage. Five cameras have not stressed it as it chugs through the video streams.</div><div><br /></div><div>While they do have a security component, on property cameras are just generally useful, keeping track of deliveries, and scrolling through the day on Ubiquiti Protect on my Apple TV has turned into one of my favorite diversions. I've a lovely view of my backyard for which I splurged on a <a href="https://store.ui.com/collections/unifi-protect/products/unifi-protect-g4-pro-camera">G4 Pro</a>, and it's pleasant listening to bird song my double pane windows block. On the negative side, my G4 Protect doorbell camera crashes the Protect Apple TV app every time. [Update: no longer crashing.]</div><div><br /></div><div>With HomeBridge integration to HomeKit, a doorbell ring buzzes my Apple Watch, shows a live video feed of the visitor, and chimes the HomePods. For this, I installed <a href="https://github.com/homebridge/homebridge/wiki/Install-Homebridge-on-macOS">HomeBridge</a> and the <a href="https://github.com/hjdhjd/homebridge-unifi-protect/blob/master/docs/Doorbell.md">appropriate extension</a> on the Mac Mini in the network closet. I put a <a href="https://www.apple.com/homepod-mini/">HomePod Mini</a> in my wife's office to act as a doorbell, as she refuses to wear an Apple Watch and the near constant torrent of notifications she gets on her phone mask doorbell notification. Still, I can't say that we notice all rings, and delivery men have an aversion against pressing the button.</div><div><br /></div><div class="separator" style="clear: both; text-align: center;"><table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto;"><tbody><tr><td style="text-align: center;"><a href="https://genhelp.com/Blog/Ubiquiti_G4_Doorbell.jpeg" style="margin-left: auto; margin-right: auto;"><img border="0" data-original-height="640" data-original-width="603" height="320" src="https://genhelp.com/Blog/Ubiquiti_G4_Doorbell.jpeg" width="302" /></a></td></tr><tr><td class="tr-caption" style="text-align: center;">Ubiquiti G4 Doorbell</td></tr></tbody></table><br /><table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto;"><tbody><tr><td style="text-align: center;"><a href="https://genhelp.com/Blog/Old_Doorbell.jpeg" style="margin-left: auto; margin-right: auto;"><img border="0" data-original-height="640" data-original-width="480" height="320" src="https://genhelp.com/Blog/Old_Doorbell.jpeg" width="240" /></a></td></tr><tr><td class="tr-caption" style="text-align: center;"> Broken Doorbell</td></tr></tbody></table></div><div><br /></div><h2 style="text-align: left;">Smart Switches</h2><div>At my previous house, I had installed a smattering of Eve smart switches, mainly because I'd been erroneously avoiding hub based devices. But because the current house has many dimmable lights, I went with 100% <a href="https://www.casetawireless.com/products">Lutron Caseta</a> and could hardly be happier. They have been nearly flawless in working, and the Pico remotes have allowed me to combine separate switches into groups. For instance, the remote mounted at the garage entrance, will not only turn on the overhead light at that door, but also, the light over the adjacent hall, and the stairs leading upstairs. I found I could put all the real switches in central positions, and put the remotes around the edges making grouped lighting convenient. </div><div><br /></div><div>I can turn on the backyard lights from a variety of places throughout the house, or just use Siri from a convenient device. My wife has a Pico remote in her car to turn on the garage adjacent lights as she arrives. Unfortunately, we are bumping up against the 75 device limit to the Caseta system, maybe fortunate to my bank account.</div><div><br /></div><div class="separator" style="clear: both; text-align: center;"><table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto;"><tbody><tr><td style="text-align: center;"><a href="https://genhelp.com/Blog/Lutron_Caseta.jpeg" style="margin-left: auto; margin-right: auto;"><img border="0" data-original-height="372" data-original-width="640" height="186" src="https://genhelp.com/Blog/Lutron_Caseta.jpeg" width="320" /></a></td></tr><tr><td class="tr-caption" style="text-align: center;">A smattering of switches and Pico remotes</td></tr></tbody></table><table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto;"><tbody><tr><td style="text-align: center;"><a href="https://genhelp.com/Blog/Old_Light_Switches.jpeg" style="margin-left: auto; margin-right: auto;"><img alt="Lutron Caseta vs Old Switches" border="0" data-original-height="480" data-original-width="640" height="240" src="https://genhelp.com/Blog/Old_Light_Switches.jpeg" title="Lutron Switches" width="320" /></a></td></tr><tr><td class="tr-caption" style="text-align: center;">Pulled so many switches</td></tr></tbody></table><br /></div><div><br /></div><div>All the common lights in the house are automated through HomeKit to turn off after midnight, and the driveway post lights are set to turn on at sunset and turn off after 10. </div><div><br /></div><div>I ran into the odd condition where low power LED lamps—a 3 LED, 12W total, chandelier—wouldn't go completely black as the current used to power the switch's internal status LED was enough to emit some light. Solution: a single 6W LED mixed in with 2 lower powered ones keeps it dark. Yes, Lutron will sell you a very expensive dimmer for low power LEDs, but bumping up the wattage is a lot cheaper. </div><div><br /></div><div>Speaking of LEDs, the house was filled with energy hog incandescent lights, which I methodically eradicated in favor of LEDs. Thankfully, as an <a href="https://www.amazon.com/gp/vine/help">Amazon Vine</a> reviewer, LEDs are virtually free for me. I've a preference for 3000K lights in most rooms, and am happy with the LED replacements for fluorescent tubes. </div><div><br /></div><div>If you are going to be installing dozens of switches, you will find Wagos much easier than twist caps for connecting wires. I certainly lack the skill to reliably twist together and recap 5 neutral wires, but I can easily trim the wires and insert them into a <a href="https://www.amazon.com/dp/B0107SYYGU/ref=cm_sw_em_r_mt_dp_W8M6Fb72Y7F69?_encoding=UTF8&psc=1">5 conductor Wago</a>. You probably won't need the 10 guage version (like 221-613), I erroneously bought some and they are too big.</div><div><br /></div><table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto;"><tbody><tr><td style="text-align: center;"><a href="https://genhelp.com/Blog/Wagos.jpeg" style="margin-left: auto; margin-right: auto;"><img border="0" data-original-height="612" data-original-width="640" height="306" src="https://genhelp.com/Blog/Wagos.jpeg" width="320" /></a></td></tr><tr><td class="tr-caption" style="text-align: center;">Wagos are so easy</td></tr></tbody></table><div><br /></div><h2 style="text-align: left;">Smart Thermostats</h2><div>There are 2 cooling zones and 5 heating zones in this house. And each had an old school mercury switched bimetal coil thermometer—not even the mercury free kind with a magnet. The heating thermostat for the entire second floor was in my son's room; great for him, not so good for anybody else.</div><div><br /></div><div>Every single thermostat was wired with the minimum number of wires needed—2 for heating. I spent a couple weeks figuring out how to get new wires from one end of the house to the other and into the fortress which is my boiler room. I had spools of 5 and 7 conductor wire, and I finally got them there. An HVAC guy wired it into the boiler controller and AC air handlers. He insisted on wiring the smart thermostats: my favorite <a href="https://www.ecobee.com/en-us/smart-thermostats/smart-wifi-thermostat/">ecobee 3 Lite</a> model himself. We coalesced each AC thermostats with one of the heating thermostats: thus there is now only 1 thermostat in the basement, and 1 on the second floor. He disposed of the mercury thermostats for me, thankfully. </div><div><br /></div><div>I've added many ecobee temperature sensors. For example, second floor temperature during sleep hours is determined exclusively by the temperature in my children's rooms and not the temperature at the thermostat in the hall which tends to be 3°F cooler than the bedrooms. Without the sensors, my kid's rooms would be unnecessarily hot during winter. </div><div><br /></div><div>This house is going to be exorbitant to heat and cool as it is. Missing the natural gas furnace and mini-split inverters from the old house, but oil heat and central air is how it's done in my new area. </div><div><br /></div><table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto;"><tbody><tr><td style="text-align: center;"><div class="separator" style="clear: both; text-align: center;"><a href="https://genhelp.com/Blog/Mercury_Thermostats.jpeg" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="634" data-original-width="640" height="313" src="https://genhelp.com/Blog/Mercury_Thermostats.jpeg" width="316" /></a></div><a href="https://genhelp.com/Blog/ecobee_ubiquiti.jpeg" style="margin-left: auto; margin-right: auto;"><img alt="Ecobee" border="0" data-original-height="480" data-original-width="640" height="240" src="https://genhelp.com/Blog/ecobee_ubiquiti.jpeg" title="Ecobee 3" width="320" /></a></td></tr><tr><td class="tr-caption" style="text-align: center;">Box of Mercury Thermostats vs Ecobee 3 Lite</td></tr></tbody></table><div><br /></div><h2 style="text-align: left;">A Roof</h2><div>By far, the biggest expense was installing an Owens Corning shingled roof to replace the disintegrating original. Roof technology has improved markedly since 2000, what with improved ice shields, better airflow through the ridge vent, advances in durability. Regardless, I'd like to put in solar panels soon, and a new roof was step number 1 on that journey. I looked at Tesla tile roofs, but it seemed like it couldn't be done on any kind of reliable schedule, and this place needed a roof before winter set in. And it was expensive when compared to an asphalt shingle roof as opposed to a fancy tile roof. </div><div><br /></div><h2 style="text-align: left;">Broadcast TV</h2><div>I had the <a href="https://www.adamvroofing.com">roofers</a> put a <a href="https://www.channelmaster.com/Universal_Antenna_Mount_p/cm-3090.htm">large J mount</a> high up, under the eves, to which I attached a largish UHF/VHF antenna (a <a href="https://www.channelmaster.com/Masterpiece_Digital_HDTV_Antenna_p/cm-5018.htm">CM-5018</a>) in hopes of pulling in my <a href="https://www.wgbh.org/help/technical-reception">local PBS affiliate</a> which took the FCC repack money and moved to the garbage channel which is digital 5. Surprisingly, due to my clean line of sight and a good hundred feet of elevation I get much better signal quality, with less effort here than my old house despite being farther away from the local antenna farm. Didn't even find the need for a pre-amp as the new antenna is maybe 18 feet directly above the TV stand where I keep my <a href="https://www.silicondust.com">HDHomerun</a> and <a href="https://www.tablotv.com">Tablo</a>. Short coax runs help. I'd been looking forward to making use of my own <a href="https://genhelp.com/apps/signalgh.html">Signal GH app</a>, but I was getting 100% signal quality on the first pointing. </div><div><br /></div><div>This house had been wired for an era where media was distributed by individual coax cables to cable boxes in every plausible room. When I got here, the cable modem was fed via a huge power amplifier feeding 8 coax lines in the house—doing who knows what damage to data throughput. My first act as a Xfinity data subscriber was to ask the technician to disconnect the booster and directly feed the single coax line to the room with my cable modem. In my house, we use iPads and Apple TVs via WiFI or Ethernet, there are no cable boxes, just steaming subscriptions. </div><div><br /></div><div>Still missing the purity of fiber optic service I had at my old house.</div><table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto;"><tbody><tr><td style="text-align: center;"><a href="https://genhelp.com/Blog/CM_3090_CM_5018.jpeg" style="margin-left: auto; margin-right: auto;"><img border="0" data-original-height="640" data-original-width="267" height="320" src="https://genhelp.com/Blog/CM_3090_CM_5018.jpeg" width="134" /></a></td></tr><tr><td class="tr-caption" style="text-align: center;">CM-5018 Antenna</td></tr></tbody></table><br /><br /><div><br /></div><table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto;"><tbody><tr><td style="text-align: center;"><a href="https://genhelp.com/Blog/Coax_Amp.jpeg" style="margin-left: auto; margin-right: auto; text-align: center;"><img border="0" data-original-height="371" data-original-width="640" height="186" src="https://genhelp.com/Blog/Coax_Amp.jpeg" width="320" /></a></td></tr><tr><td class="tr-caption" style="text-align: center;">Somebody Really Liked Cable TV</td></tr></tbody></table><h2 style="text-align: left;">Finally</h2><div>I can stop with the constant DIY upgrading and get back to maintaining my apps. I may put a sensor here or there, and I might get an electrician to install a dedicated circuit to the network closet, but for now I can rest.</div><br /><table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto;"><tbody><tr><td style="text-align: center;"><a href="https://genhelp.com/Blog/Removing_Blown_Insulation.jpeg" style="margin-left: auto; margin-right: auto;"><img border="0" data-original-height="640" data-original-width="481" height="400" src="https://genhelp.com/Blog/Removing_Blown_Insulation.jpeg" width="301" /></a></td></tr><tr><td class="tr-caption" style="text-align: center;">Finally Done</td></tr></tbody></table><br /><div><br /></div><div class="separator" style="clear: both; text-align: center;"><br /></div><br /><div class="separator" style="clear: both; text-align: center;"><br /></div><br /><div class="separator" style="clear: both; text-align: center;"><br /></div><br /><div class="separator" style="clear: both; text-align: center;"><br /></div><br />Glenn Howeshttp://www.blogger.com/profile/13657643977857888422noreply@blogger.comtag:blogger.com,1999:blog-12068616.post-91208202399827402292020-11-10T23:08:00.004-05:002021-01-02T20:55:09.649-05:00Thank You Bell Atlantic for the Ethernet in My Walls<p> I've recently moved into a year 2000 vintage house filled with such trendy tech as phone jacks and coax cable in most every room. Being me, I set to pulling Cat 7 Ethernet to every corner I could reach. But there were many corners I couldn't reach, and I despaired of getting the coverage I wanted. </p><p>Then I took notice of the one Ethernet jack in the house—in a basement media room, and that its cable ended up terminating in a grey box under the stairs. </p><table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto;"><tbody><tr><td style="text-align: center;"><a href="https://genhelp.com/Blog/Bell_Atlantic_Network_Interface_Device.jpeg" style="margin-left: auto; margin-right: auto;"><img border="0" data-original-height="784" data-original-width="800" height="314" src="https://genhelp.com/Blog/Bell_Atlantic_Network_Interface_Device.jpeg" width="320" /></a></td></tr><tr><td class="tr-caption" style="text-align: center;">Bell Atlantic Network Interface Device</td></tr></tbody></table><br />and there were many grey wires, printed with "Cat5," ending up at the same box. But where were they going, there were no more Ethernet jacks in the house. I'd searched. And then understanding came, I unscrewed all the phone jacks in the house. And with the exception of one, they were all wired to use a single pair out of a standard four pair Cat 5 Ethernet cable. 20 years back someone had seen the future and pre-stocked my house with the makings of fast wired networking. <div><br /></div><div>Out went the phone jacks and in went Ethernet jacks or Ubiquiti in wall access points. </div><div><br /></div><table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto;"><tbody><tr><td style="text-align: center;"><a href="https://genhelp.com/Blog/PhoneJacks.jpeg" style="margin-left: auto; margin-right: auto;"><img border="0" data-original-height="600" data-original-width="800" height="240" src="https://genhelp.com/Blog/PhoneJacks.jpeg" width="320" /></a></td></tr><tr><td class="tr-caption" style="text-align: center;">My Collection of Phone Ports</td></tr></tbody></table><br />At the other end, I neatly punched each cable and attached it to a managed Ubiquiti switch.<div><br /><table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto;"><tbody><tr><td style="text-align: center;"><a href="https://genhelp.com/Blog/PunchOutSwitch.jpeg" style="margin-left: auto; margin-right: auto;"><img border="0" data-original-height="800" data-original-width="600" height="320" src="https://genhelp.com/Blog/PunchOutSwitch.jpeg" width="240" /></a></td></tr><tr><td class="tr-caption" style="text-align: center;">Repurposed Phone Lines</td></tr></tbody></table><br />Now you might think that Cat 5 would be slow, but for short lengths, in non-challenging environments it works fine without the shielding enhancements of later standards. My managed switch lists all but one as working at 1000 megabit full duplex, and the other one at 100 megabit full duplex. Even 100 megabit is adequate for streaming 4K iTunes video. I pulled Cat 7 in the attic because I never want to do it again, not because my current needs wouldn't be met by Cat 5e—or in a pinch by this existing Cat 5.<div><br /></div><div>I found the ends of most of the cables near the Bell Atlantic box, but couldn't find the one to the kitchen, whose central location would make a great place for a WiFi access point. Then I came across a walkthrough video of my house pre-kitchen remodel, and right there was a long gone desk and on the desk was a phone and behind the phone was a phone jack. Ah ha.</div><div><br /><table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto;"><tbody><tr><td style="text-align: center;"><a href="https://genhelp.com/Blog/Phone_Jack_Detective.jpeg" style="margin-left: auto; margin-right: auto;"><img border="0" data-original-height="595" data-original-width="800" height="238" src="https://genhelp.com/Blog/Phone_Jack_Detective.jpeg" width="320" /></a></td></tr><tr><td class="tr-caption" style="text-align: center;">Detective Work finding the lost Phone Line</td></tr></tbody></table><br />I cut a hole in that wall, and neatly stapled to a stud was the last lost Cat 5 in a perfect place for an access point, and a great central location for a Lutron smart switch hub. It would have been unacceptable wall butchery to get an Ethernet cable there through finished ceiling and walls, but 20 years ago somebody left me a present.<br /><div><br /></div><table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto;"><tbody><tr><td style="text-align: center;"><a href="https://genhelp.com/Blog/Ubiquiti_In_Wall_AP_Lutron_Hub.jpg" style="margin-left: auto; margin-right: auto;"><img border="0" data-original-height="800" data-original-width="564" height="320" src="https://genhelp.com/Blog/Ubiquiti_In_Wall_AP_Lutron_Hub.jpg" width="226" /></a></td></tr><tr><td class="tr-caption" style="text-align: center;">Ubiquiti in-wall access point<br />+<br />Lutron Caseta Hub</td></tr></tbody></table><div><br /></div><div>I was able to wire all of the second floor with new cable via crawling the attic before it became inaccessible with a new layer of blown insulation. There had been two phone jacks in the second floor office, so I was able to join my new network into the Cat 5 legacy network. I will admit to a little overkill with the networking as Ubiquiti hardware is not cheap—what with the gateway, switches, and controller, but it was so easy to use Power over Ethernet (POE) in wall access points wherever I could get an Ethernet cable giving me a robust mesh network. If you have the means, I recommend the system. </div><div><br /></div><div>This was also the first time I had used a punch down tool, and I'm proud of my professional looking network with the dedicated upstairs network closet with its rack of equipment and punched down cables. </div><div><br /><br /><div><br /><br /></div></div></div></div>Glenn Howeshttp://www.blogger.com/profile/13657643977857888422noreply@blogger.comtag:blogger.com,1999:blog-12068616.post-35837409084314179802020-05-26T23:19:00.000-04:002021-01-02T21:08:09.956-05:00TV Towers USA for Apple WatchThe Series 5 Apple Watch includes a compass. Which necessitated me selling my otherwise nearly identical Series 4 watch, because I knew it was time to write a watchOS app. Also to write something using the SwiftUI framework, and Combine. And get my 14 year old son to write code.<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<iframe width="320" height="266" class="YOUTUBE-iframe-video" data-thumbnail-src="https://i.ytimg.com/vi/E4k0r-Logj8/0.jpg" src="https://www.youtube.com/embed/E4k0r-Logj8?feature=player_embedded" frameborder="0" allowfullscreen></iframe></div>
<div class="separator" style="clear: both; text-align: center;">
TV Towers USA for Watch</div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
I decided to embed it in the existing TV Towers USA iPhone app and sell it via an in-app unlock method. This is a bet on my reasonably large installed base of happy users being a better source of revenue (all of of which will be going to my son) than the unlikeliness of being found on the Watch App Store. But, like all my other personal App Store projects, the major point is skill sharpening for the future of my day job. There will come a day when I'll have to pull SwiftUI or Combine out of my bag of tricks. </div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
And we ended up with this gratifying, smooth, simple, useful app, just what an antenna installer needs for getting a quick bead on the local antenna farm. I can only imagine the number of iPhones that have slid off roofs. Or would be antenna installers, so be careful out there and wear a harness or leave it to the pros, or put the antenna in your attic. </div>
Glenn Howeshttp://www.blogger.com/profile/13657643977857888422noreply@blogger.comtag:blogger.com,1999:blog-12068616.post-58961397875710828972019-11-16T14:44:00.001-05:002019-11-17T09:45:22.622-05:00Why The Corolla Hatchback Won My CarPlay with Manual Transmission BattleFor several years, I've been pondering replacing my 2003 Civic LX 5 speed sedan—with aftermarket CarPlay receiver. I was certain I was getting a Mazda 3, then I was equally sure I was getting a Subaru Impreza. I might have even gotten a Civic Si, my pondering went on so long. But, in the end, it was the Toyota Corolla XSE 6 speed manual that earned my money.<br />
<br />
<h2>
CarPlay</h2>
<div>
I was concerned with the non-standard, non-touch interface Mazda uses for their infotainment system. Toyota's implementation is standard, and I'd say nicer for a CarPlay user than Honda's as it has a lot of real buttons, including push buttons on the steering wheel to adjust volume. I've used the Honda system in my wife's CR-V many times, and it is awkward and doesn't make good use of space; consumers were glad to get so much as a real volume knob, and the swipe volume control on the steering wheel is touchy. I don't have any experience with the Subaru implementation, but it is probably fine. </div>
<div>
<br /></div>
<div>
I did see an oddity, where much of the CarPlay interface was cut off, making me have to plug and replug it. Still, it has been reasonably performant. </div>
<div>
<br /></div>
<h2>
Power Train</h2>
<div>
I'm convinced in the value of a simple power train. A turbo is just something easy to break that gets a few more horsepower I'm unlikely to use in practice. The 168 HP my Corolla generates is a little lower than a comparable Civic, and it's zero to sixty time might be half second less, but I get quick throttle response and I can use non-premium gas. This is similar to my avoidance of a CVT, which gets a noticeable better fuel economy, but seems mechanically complicated and easy to fail. I will say that living in New England, I would love to get an all wheel drive Impreza, but it would be mechanically more complicated and may be a little less peppy. Also, I'll be putting winter tires on this car and that's most of the battle against winter roads. I like the idea of the Mazda 3's engine, but I wasn't all that impressed with the gearing when I test drove a manual; and it was always prompting me to shift into a ridiculously—if fuel efficient—high gear. </div>
<div>
<br /></div>
<div>
The boxer engine in the Subaru just seems to be an obsolete technology despite its advantages in smoothness and maintenance. </div>
<div>
<br /></div>
<div>
The Corolla shifter is longer than I'd like, and it's taken be a while to get used to the grab point on the clutch, but it is in general a joy to use. Particularly liking the hold feature which makes uphill starts trivial; I'm likely to lose my ability to balance the clutch to the throttle. Also, rev matching is easy. So, even for a manual, it makes life easy. </div>
<div>
<br /></div>
<div>
I don't want an auto-engine stop feature for that last smidge of gas mileage; talk about something that will kill a starter. </div>
<div>
<br /></div>
<h2>
Reliability</h2>
<div>
Everyone I've ever read highly rates Toyota has the king of reliability. I've dealt with oil leaks/burning for years on my otherwise beloved 7th generation Civic and I could use some reliability. In the end, this and the bad reputation of the local Mazda dealer, eliminated the Mazda 3. I don't know if it makes a difference, but the Corolla is still made in Japan in factories with a long history. (Having said that, the door edge protecting plastic fell off the rear passenger door the first time my kids opened it, so that's worrying.)</div>
<div>
<br /></div>
<h2>
Safety Tech</h2>
<div>
The Corolla gives a very complete set of safety features. The lane warnings are a bit annoying, but at least it doesn't bother with driver attention spying. I chose the higher XSE trim in large part because I often have shoulder problems making blind spot monitoring a life saver. It seems to be very comparable to the Honda safety features on the CR-V. Adaptive cruise control seems less touchy than the Honda. </div>
<div>
<br /></div>
<div>
There are a wide variety of settings on the headlights. They are literally the only things I had to look up so far in the manual, I guess I'll just set them on auto with auto high beams. Regardless, they are plenty illuminating, but for some odd reason the adaptive headlights were only available with the Blue Flame paint color. </div>
<h2>
</h2>
<h2>
Appearance</h2>
<div>
I think the Corolla Hatchback is the best looking of all the current Japanese Hatchbacks. The Mazda 3 sedan looks great, but the backend of the hatchback is a balloon. The Civic is just too angular for me. The Impreza is pretty nice, actually. </div>
<div>
<br /></div>
<div>
Mine is in Galactic Aqua Mica, which is a lovely and varied color; sometimes it looks almost black, sometimes blue, and sometimes green. </div>
<h2>
</h2>
<h2>
Value</h2>
<div>
As I bought it when the dealers were clearing out 2019 stock, and being the niche market of a manual, I got a pretty good deal of $19.4K which is way, way under MSRP. For me, this is an amazing value what with all the safety tech, the excellent fuel economy and how fun it is to drive. Nice value adds include: heated seats, fully automatic windows, two map pockets, rear center arm rest, driver lumbar support, telescoping steering wheel, electric mirrors, 2 years of maintenance, partial leather seats, and auto release parking brake. My particular car even came with all weather floor mats, wheel locks, and body side moldings. </div>
<div>
<br /></div>
<div>
On the other hand, the cargo area is small, but I have a CR-V to use as a hauler. Center console storage is small. There is no standard tow package, so I can't easily add a hitch receiver bike rack. Nor are there available roof rails. Heated steering wheels are apparently only available in Canada. It's unclear if the 2019 models will get upgraded firmware to support Android Auto—not important to me, obviously. </div>
<div>
<br /></div>
<h2>
</h2>
<h2>
Things That Don't Matter</h2>
<div>
There is a lot of tech in the infotainment system that doesn't matter. It has a WiFi hub that you can subscribe to Verizon through: our phones and tablets all have unlimited data. It has SeriusXM: I have an account, and it is much easier to listen to content using the app, where I can skip over most of the commercials in FoxSports and listen to other non-live content. Who is going to buy a Toyota navigation package when I have Apple Maps, Google Maps and Waze? For that matter, why would I bother with a bunch of soon to be stale Toyota versions of apps for services that already have well maintained CarPlay/iOS versions?</div>
<div>
<br /></div>
<div>
I'd have been fine with 16" tires but wanted the other things in the XSE package so 18" wheels it is. People like to make fun of the fake exhaust tips, but they don't matter. </div>
<div>
<br /></div>
<h2>
Summary</h2>
<div>
I'm happy with my purchase. It took a lot of saving and a lot of pondering, but I finally got a car that is a happy successor to my dying Civic. </div>
Glenn Howeshttp://www.blogger.com/profile/13657643977857888422noreply@blogger.comtag:blogger.com,1999:blog-12068616.post-88884662855282762902019-10-26T11:33:00.000-04:002019-10-26T11:33:43.808-04:00Thunderbolt Display Life Extension: An Environmental Proposal for AppleI recently replaced the power supply and data cable on my <a href="https://en.wikipedia.org/wiki/Apple_Thunderbolt_Display">Thunderbolt Display</a> to keep it working with its 5th Mac. I know from experience that the original cables go bad, especially from MacBook Air users having to put too much stress on the cable being plugged into both sides of that laptop. I personally wore out 2 Apple original cables when the strain relief around the data cable failed. So time for a replacement. Although I could have just used the auxiliary Thunderbolt 2 port on the display, I was in refurbish mode, and was opening the display up anyway.<br />
<br />
Here's the cable I found on Amazon. Like the original it has a MagSafe 1 power connector and a Thunderbolt via Mini DisplayPort data connector. Which would be great, if I still used a 2015 MacBook Pro.<br />
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://www.amazon.com/dp/B0719KP1GK/ref=cm_sw_em_r_mt_dp_U_87fTDb17DKHJR" style="margin-left: auto; margin-right: auto;"><img border="0" data-original-height="800" data-original-width="800" height="320" src="https://images-na.ssl-images-amazon.com/images/I/61iEQ3aeE4L._SL1500_.jpg" width="320" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">Thunderbolt Display Cable Replacement</td></tr>
</tbody></table>
But I have a 2018 MacBook Pro which has no MagSafe and has 4 Thunderbolt over USB-C ports. So, I purchased a separate Thunderbolt 2 to Thunderbolt 3 adaptor from Apple for $49: <table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://www.apple.com/shop/product/MMEL2AM/A/thunderbolt-3-usb-c-to-thunderbolt-2-adapter?fnode=749123c9670aa57543c5edbd25dd31169917068dfb4d8501129742b2c2c9d95e859f4df3e00f306cff164ec7fb87399cc827ada93b5244b0137d115d2b496558e32fa68317069bbedd3d071688e7bc58af74a218445133e20de9942466395200" style="margin-left: auto; margin-right: auto;"><img alt="Thunderbolt 3 to Thunderbolt 2" border="0" data-original-height="572" data-original-width="572" height="320" src="https://store.storeimages.cdn-apple.com/4982/as-images.apple.com/is/MMEL2?wid=572&hei=572&fmt=jpeg&qlt=95&op_usm=0.5,0.5&.v=1476820838144" title="" width="320" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">Thunderbolt 3 to Thunderbolt 2 Adaptor</td></tr>
</tbody></table>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<div>
And I had to provide my own $79 power supply, despite the fact that I now have a new 250W power supply in my Thunderbolt Display which would be perfectly capable (I would think) of driving both the display and my laptop. </div>
<div>
<br /></div>
<div>
I could have ripped the whole cable out and replaced. it with a Thunderbolt 2 cable, as the inside connector is just a Mini DisplayPort jack, just like the other end. I could have even put a short Thunderbolt 2 cable inside the case, attached to the adaptor and brought out a Thunderbolt 3 cable through the opening in the case, but I wouldn't have power over that cable. What I want is a one cable solution. </div>
<div>
<br /></div>
<div>
Here is my proposal to Apple. Create a replacement cable assembly that ends up with a powered Thunderbolt 3 USB-C port embedded in the opening currently occupied by the MagSafe/Thunderbolt 2 cable. Enough with embedded cables that go bad with inadequate strain relief. Put a port in the back of the display to make it easy to replace future cables. Charge $129 for it, and I will buy one, I promise. </div>
<div>
<br /></div>
<div>
Apple is always claiming to lead the way environmentally, but they are allowing 100's of thousands of otherwise functional monitors to go out of use before their they have to. They don't even sell a monitor in this price region anymore. They brag about using "recycled" aluminum in their lower end products, but have this golden opportunity to keep equipment working and not being recycled and landfilled.</div>
Glenn Howeshttp://www.blogger.com/profile/13657643977857888422noreply@blogger.comtag:blogger.com,1999:blog-12068616.post-85235970093062455132019-10-12T09:46:00.000-04:002019-10-12T09:46:30.302-04:00Chirping Thunderbolt Display, Time for a New Power SupplyMy Thunderbolt Display started chirping when attached to a computer a few months ago, and then a few weeks ago, it out and out died.<br />
<br />
Now, I am fully aware that this monitor is extremely obsolete with its USB 2 ports, moderate resolution and Thunderbolt 2 connectivity. But, it is still an attractive, accurate monitor with lots of connectivity. So, I deemed it worth it to spend $139 on a replacement <a href="https://www.amazon.com/dp/B072KD3PMC/ref=cm_sw_em_r_mt_dp_U_kuDODbNEAXXTA">power supply</a>. Also needed some <a href="https://www.amazon.com/dp/B00PBZQDT6/ref=cm_sw_em_r_mt_dp_U_VvDODbWCZ3X6X">suction cups</a> to pull the front glass off. It was a good task to assign my son, although we nearly broke the internal cable connecting the motherboard to the LCD panel.<br />
<br />
Also bought a replacement <a href="https://www.amazon.com/dp/B0719KP1GK/ref=cm_sw_em_r_mt_dp_U_UxDODb09K7Y68">power+data cable</a> as the strain relief had failed a long while ago, leading me to use the passthrough Thunderbolt 2 port to connect to the monitor. I could probably have gone without this expense.<br />
<br />
It would be great if someone manufactured a replacement cable that incorporated USB-C + Power + Thunderbolt 2 to Thunderbolt 3. There are a lot of these monitors out there. Where I work, these legacy monitors are coveted by anyone assigned a normal corporate purchase monitor. A swap in cable replacement would make them practically perfect.<br />
<br />
Everything worked although I did manage to snap the screw holding the grounding wire to the external cable, so I had to do a bit of a solder hack. And now, I have my beautiful Thunderbolt Display back on my desk. Glenn Howeshttp://www.blogger.com/profile/13657643977857888422noreply@blogger.comtag:blogger.com,1999:blog-12068616.post-22695545359281570542019-10-05T21:07:00.001-04:002022-05-22T10:05:44.418-04:00Wherein I Represent the Early InternetI was just watching the documentary about the long ago startup, <a href="https://www.generalmagicthemovie.com/">General Magic</a>, when about halfway through, they show a sequence representing when the Internet entered public awareness. And what do they use to represent the pre-browser era, but the ZModem tool I wrote for Aladdin Systems when I was in grad school.<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://genhelp.com/Blog/SITCOMM_ZModem.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="423" data-original-width="800" height="169" src="https://genhelp.com/Blog/SITCOMM_ZModem.JPG" width="320" /></a></div>
<br />
Ironically, I don't think it was widely used over the Internet, but was generally used for BBS downloads.<br />
<br />
Something to proudly show the kids.Glenn Howeshttp://www.blogger.com/profile/13657643977857888422noreply@blogger.comtag:blogger.com,1999:blog-12068616.post-87293352335014817532019-07-02T18:33:00.002-04:002019-07-02T21:13:55.952-04:00Textual Representation of SwiftUI PathsWhile on vacation, I've been creating my first Swift Package, for my incomplete <a href="https://github.com/GenerallyHelpfulSoftware/Scalar2D.git">Scalar2D</a> project. While my major ambitions have been slow, it does have 2 useful features: it supports many ways to represent colors as strings, and it can generate 2D paths from standard SVG path element strings.<br />
<br />
So you can write:<br />
<blockquote class="tr_bq">
<div style="background-color: white; color: rgba(0, 0, 0, 0.85098); font-family: Menlo; font-size: 14px; font-stretch: normal; line-height: normal;">
<span style="color: #9b2393; font-size: 12px; font-stretch: normal; line-height: normal;"><b>import</b></span> SwiftUI</div>
<div style="background-color: white; color: rgba(0, 0, 0, 0.85098); font-family: Menlo; font-size: 14px; font-stretch: normal; line-height: normal;">
<span style="color: #9b2393; font-size: 12px; font-stretch: normal; line-height: normal;"><b>import</b></span> Scalar2D_SwiftUI</div>
<div style="background-color: white; color: rgba(0, 0, 0, 0.85098); font-family: Menlo; font-size: 14px; font-stretch: normal; line-height: normal;">
<span style="color: #9b2393; font-size: 12px; font-stretch: normal; line-height: normal;"><b>import</b></span> CoreGraphics</div>
<div style="background-color: white; color: rgba(0, 0, 0, 0.85098); font-family: Menlo; font-size: 14px; font-stretch: normal; line-height: normal; min-height: 16px;">
<br /></div>
<div style="background-color: white; color: #9b2393; font-family: Menlo; font-size: 12px; font-stretch: normal; line-height: normal;">
<b>public</b><span style="color: rgba(0 , 0 , 0 , 0.85098); font-size: 14px; font-stretch: normal; line-height: normal;"> </span><b>struct</b><span style="color: rgba(0 , 0 , 0 , 0.85098); font-size: 14px; font-stretch: normal; line-height: normal;"> </span><span style="color: #0b4f79;">TestFrogView</span><span style="color: rgba(0 , 0 , 0 , 0.85098); font-size: 14px; font-stretch: normal; line-height: normal;"> : </span><span style="color: #3900a0;">View</span><span style="color: rgba(0 , 0 , 0 , 0.85098); font-size: 14px; font-stretch: normal; line-height: normal;"> {</span></div>
<div style="background-color: white; color: #c41a16; font-family: Menlo; font-size: 12px; font-stretch: normal; line-height: normal;">
<span style="color: rgba(0 , 0 , 0 , 0.85098); font-size: 14px; font-stretch: normal; line-height: normal;"> </span><span style="color: #9b2393;"><b>private</b></span><span style="color: rgba(0 , 0 , 0 , 0.85098); font-size: 14px; font-stretch: normal; line-height: normal;"> </span><span style="color: #9b2393;"><b>let</b></span><span style="color: rgba(0 , 0 , 0 , 0.85098); font-size: 14px; font-stretch: normal; line-height: normal;"> </span><span style="color: #0f68a0;">cgPath</span><span style="color: rgba(0 , 0 , 0 , 0.85098); font-size: 14px; font-stretch: normal; line-height: normal;"> = </span><span style="color: #3900a0;">CGPath</span><span style="color: rgba(0 , 0 , 0 , 0.85098); font-size: 14px; font-stretch: normal; line-height: normal;">.</span><span style="color: #326d74;">path</span><span style="color: rgba(0 , 0 , 0 , 0.85098); font-size: 14px; font-stretch: normal; line-height: normal;">(fromSVGPath: </span><span style="color: rgba(0 , 0 , 0 , 0.85098); font-size: 14px; font-stretch: normal; line-height: normal;"></span><span style="font-family: Menlo;">"M185 212C139 183 40 199 39 108A18 18 0 1 1 56 75Q67 53 91 45A18 18 0 1 1 127 38C170 29 193 62 220 161L225 110Q231 84 260 115C260 142 265 205 241 198Q215 193 227 230C236 249 161 249 125 248A5 5 325 1 0 122 259C192 264 248 249 237 226Q230 206 247 211</span><span style="font-family: Menlo;"> </span><span style="font-family: Menlo;">266 210 272 161C273 139 276 106 252 93 245 86 209 65 216 133 200 46 176 19 132 26A28 28 0 0 0 81 40Q61 46 52 63A27 28 0 0 0 27 110C33 192 70 192 145 205Z"</span><br />
<span style="color: rgba(0 , 0 , 0 , 0.85098); font-size: 14px; font-stretch: normal; line-height: normal;">)!</span></div>
<div style="background-color: white; color: rgba(0, 0, 0, 0.85098); font-family: Menlo; font-size: 14px; font-stretch: normal; line-height: normal; min-height: 16px;">
<br /></div>
<div style="background-color: white; color: #9b2393; font-family: Menlo; font-size: 12px; font-stretch: normal; line-height: normal;">
<span style="color: rgba(0 , 0 , 0 , 0.85098); font-size: 14px; font-stretch: normal; line-height: normal;"> </span><b>public</b><span style="color: rgba(0 , 0 , 0 , 0.85098); font-size: 14px; font-stretch: normal; line-height: normal;"> </span><b>var</b><span style="color: rgba(0 , 0 , 0 , 0.85098); font-size: 14px; font-stretch: normal; line-height: normal;"> </span><span style="color: #0f68a0;">body</span><span style="color: rgba(0 , 0 , 0 , 0.85098); font-size: 14px; font-stretch: normal; line-height: normal;">: </span><b>some</b><span style="color: rgba(0 , 0 , 0 , 0.85098); font-size: 14px; font-stretch: normal; line-height: normal;"> </span><span style="color: #3900a0;">View</span></div>
<div style="background-color: white; color: rgba(0, 0, 0, 0.85098); font-family: Menlo; font-size: 14px; font-stretch: normal; line-height: normal;">
{</div>
<div style="background-color: white; color: #3900a0; font-family: Menlo; font-size: 12px; font-stretch: normal; line-height: normal;">
<span style="color: rgba(0 , 0 , 0 , 0.85098); font-size: 14px; font-stretch: normal; line-height: normal;"> </span>GeometryReader</div>
<div style="background-color: white; color: rgba(0, 0, 0, 0.85098); font-family: Menlo; font-size: 14px; font-stretch: normal; line-height: normal;">
{</div>
<div style="background-color: white; color: rgba(0, 0, 0, 0.85098); font-family: Menlo; font-size: 14px; font-stretch: normal; line-height: normal;">
proxy <span style="color: #9b2393; font-size: 12px; font-stretch: normal; line-height: normal;"><b>in</b></span></div>
<div style="background-color: white; color: rgba(0, 0, 0, 0.85098); font-family: Menlo; font-size: 14px; font-stretch: normal; line-height: normal;">
<span style="color: #3900a0; font-size: 12px; font-stretch: normal; line-height: normal;">Path</span>(<span style="color: #9b2393; font-size: 12px; font-stretch: normal; line-height: normal;"><b>self</b></span>.<span style="color: #326d74; font-size: 12px; font-stretch: normal; line-height: normal;">cgPath</span>.<span style="color: #326d74; font-size: 12px; font-stretch: normal; line-height: normal;">fitting</span>(geometry: proxy)).<span style="color: #6c36a9; font-size: 12px; font-stretch: normal; line-height: normal;">strokedPath</span>(<span style="color: #3900a0; font-size: 12px; font-stretch: normal; line-height: normal;">StrokeStyle</span>(lineWidth:<span style="color: #1c00cf; font-size: 12px; font-stretch: normal; line-height: normal;">3.0</span>))</div>
<div style="background-color: white; color: #6c36a9; font-family: Menlo; font-size: 12px; font-stretch: normal; line-height: normal;">
<span style="color: rgba(0 , 0 , 0 , 0.85098); font-size: 14px; font-stretch: normal; line-height: normal;"> }.</span>frame<span style="color: rgba(0 , 0 , 0 , 0.85098); font-size: 14px; font-stretch: normal; line-height: normal;">(idealWidth:</span><span style="color: #326d74;">cgPath</span><span style="color: rgba(0 , 0 , 0 , 0.85098); font-size: 14px; font-stretch: normal; line-height: normal;">.</span>boundingBoxOfPath<span style="color: rgba(0 , 0 , 0 , 0.85098); font-size: 14px; font-stretch: normal; line-height: normal;">.</span>width<span style="color: rgba(0 , 0 , 0 , 0.85098); font-size: 14px; font-stretch: normal; line-height: normal;">, idealHeight:</span><span style="color: #326d74;">cgPath</span><span style="color: rgba(0 , 0 , 0 , 0.85098); font-size: 14px; font-stretch: normal; line-height: normal;">.</span>boundingBoxOfPath<span style="color: rgba(0 , 0 , 0 , 0.85098); font-size: 14px; font-stretch: normal; line-height: normal;">.</span>height<span style="color: rgba(0 , 0 , 0 , 0.85098); font-size: 14px; font-stretch: normal; line-height: normal;">)</span></div>
<div style="background-color: white; color: rgba(0, 0, 0, 0.85098); font-family: Menlo; font-size: 14px; font-stretch: normal; line-height: normal;">
}</div>
<div style="background-color: white; color: rgba(0, 0, 0, 0.85098); font-family: Menlo; font-size: 14px; font-stretch: normal; line-height: normal;">
}</div>
<div>
<br /></div>
</blockquote>
<table cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://genhelp.com/Blog/SwiftUIPath_SVG_Screenshot.png" imageanchor="1" style="clear: left; margin-bottom: 1em; margin-left: auto; margin-right: auto;"><img border="0" data-original-height="529" data-original-width="800" height="263" src="https://genhelp.com/Blog/SwiftUIPath_SVG_Screenshot.png" width="400" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">Scalar2D_SwiftUI package in action</td></tr>
</tbody></table>
<br />
One thing, I found out after putting the package together was that the SwiftUI path has a <span style="color: blue;">String</span> representable form of its own. You can pass it a specially formatted string and it will generate a Path struct.<br />
<br />
Thus, an SVG Path to make a heart in a circle:<br />
<blockquote class="tr_bq">
"M 0 0 A 100 100 0 0 0 0 200 A 100 100 0 0 0 0 0 Z M0 45 C 63-23 171 87 0 200 C -171 87 -63 -23 0 45 Z"</blockquote>
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><img src="https://genhelp.com/Blog/HollowHeart.svg" style="margin-left: auto; margin-right: auto;" /></td></tr>
<tr><td class="tr-caption" style="text-align: center;">Simple SVG of a Heart in a Circle</td></tr>
</tbody></table>
Can be represented by a SwiftUI <span style="color: blue;">Path</span> representation of:<br />
<blockquote class="tr_bq">
<span style="background-color: white; font-family: "menlo"; font-size: 12px;">0 0 m</span><span style="background-color: white; font-family: "menlo"; font-size: 12px;"> </span><span style="background-color: white; font-family: "menlo"; font-size: 12px;">-55.2285 0 -100 44.7715 -100 100 c -100 155.228 -55.2285 200 -1.83697e-14 200 c</span><span style="background-color: white; font-family: "menlo"; font-size: 12px;"> </span><span style="background-color: white; font-family: "menlo"; font-size: 12px;">55.2285 200 100 155.228 100 100 c 100 44.7715 55.2285 0 6.12323e-15 0 c h 0 45 m 63 -23 171 87 0 200 c -171 87 -63 -23 0 45 c h</span> </blockquote>
Which is probably just a direct translation of the underlying <span style="color: blue;">CGPath, </span>which does not have an explicit arc element, so the arcs that made up my circle—the "A" operands—got converted to the "c" cubic Bezier operands. The <span style="color: blue; font-family: "courier new" , "courier" , monospace;">stringRepresentation </span><span style="font-family: inherit;">property on <span style="caret-color: rgb(0, 0, 255); color: blue;">Path </span><span style="caret-color: rgb(0, 0, 255);">tends to add </span></span><span style="caret-color: rgb(0, 0, 255);">unneeded short line segments after moves, which is also probably an artifact of iterating through the </span><span style="caret-color: rgb(0, 0, 255); color: blue;">CGPath</span><span style="caret-color: rgb(0, 0, 255);"> to generate the text. </span><br />
<span style="caret-color: rgb(0, 0, 255);"><br /></span>
You could use the included <span style="color: blue; font-family: "courier new" , "courier" , monospace;">Path(string: String) </span><span style="font-family: inherit;">constructor to generate text from shapes, but SVG paths have the advantage of being generated by common drawing applications, and having more features such as arcs, shortcut operands and relative coordinates. I'm not sure why Apple didn't choose SVG paths when deciding on a text format, but please give my Scalar2D Swift Package a try. </span><br />
<span style="font-family: inherit;"><br /></span>
<br />
<div style="text-align: center;">
<a href="https://github.com/GenerallyHelpfulSoftware/Scalar2D.git">https://github.com/GenerallyHelpfulSoftware/Scalar2D.git</a></div>
Glenn Howeshttp://www.blogger.com/profile/13657643977857888422noreply@blogger.comtag:blogger.com,1999:blog-12068616.post-61553675897027384052019-03-04T23:40:00.002-05:002022-08-08T09:42:17.275-04:00Optimizing a TV Antenna with an HDHomerun<div class="separator" style="clear: both; text-align: left;">
I get asked by users of my <a href="https://appstore.com/SignalGH">Signal GH iOS app</a> for the <a href="https://www.silicondust.com/product/hdhomerun-connect/">HDHomerun</a> network TV tuner what measurement they are supposed to improve as they adjust their TV antenna systems. </div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
The HDHomerun provides 3 metrics describing the data stream coming from the over the air antenna: </div>
<div class="separator" style="clear: both; text-align: left;">
</div>
<ol>
<li>Signal Strength</li>
<li>Signal to Noise (or Signal Quality)</li>
<li>Symbol Quality</li>
</ol>
<div>
I've been thinking about the analogy of someone with a noisy hearing aid trying to understand someone talking in a noisy room. From this way of thinking, Signal Strength is either turning up the volume or moving closer to the talker. It's how loud the voice is to the listener. The problem with this is, that the signal might be too noisy or maybe you are boosting as much noise as signal, or making it so loud that it's painful. Some gain might be useful, but just ramping up the Signal Strength has its limits. </div>
<div>
<br /></div>
<div>
In this analogy, Signal Quality is how noisy the voice is when it gets to the listener, if the hearing aid is high quality, or the room is naturally quiet, even a fairly quiet talker can be understand. You might try buying a better aid which can add gain without adding additional noise, or move closer to the speaker. </div>
<div>
<br /></div>
<div>
Finally, Symbol Quality is a measure of did you understand all the words the speaker said. If not, your understanding can be severely distorted. When it comes to digital TV, you either understand everything perfectly or the picture pixelates. So, when it comes to Symbol Quality you want 100% perfection, nothing else will do. This is why I show it as either a green filled circle <span style="color: #38761d;">⬤ </span>or a red ring<span style="color: #38761d;"> </span>⭕️ and don't bother to show the Symbol Quality number.</div>
<div>
<br /></div>
<div>
As you can see, I'm prodding you to understand that while some Signal Strength is necessary, and Symbol Quality perfection is mandatory, it is long term Signal Quality that you want to improve. This is why Signal GH graphs Signal Quality over time, and not the other two metrics. If you can get the Signal Quality consistently above, let's say, 80, this will lead to getting perfect Symbol Quality so your job as an antenna system optimizer is to find out what steps it will take. </div>
<div>
<br /></div>
<div>
In my case, several years ago, I went through the process of getting bigger and bigger quality UHF only antennas, on taller masts, using a quality UHF pre-amp, and using my Signal GH app to find just the right direction to point the antenna—actually I used more primitive tools in the beginning and it's what led me to develop Signal GH. With each step, signal quality for each of my local stations increased, and each would eventually have such consistently high signal quality that the Symbol Quality would pretty much never dip below 100% perfection. Initially, I pulled in 2-3 stations good enough to watch without pixelation, and now I have 8-9 with dozens of sub channels, including every major. It's a rare—and usually blustery day—when my picture breaks up. I have an advantage in that all the stations I'm interested in are in the same general direction, or are close by, so I didn't have to resort to exotic antenna configurations: just bigger and taller. </div>
<div>
<br /></div>
<div>
One thing I like about networked TV tuners, like the HDHomerun, or the <a href="https://www.tablotv.com/products/tablo-dual-lite-ota-dvr/">Tablo</a>, is that since they are shared resources, I don't have to split my signal to every room in the house, instead, I split my antenna signal between an HDHomerun for live TV, and running my app; a Tablo for recording scheduled content; and my main TV for watching major sporting events, i.e. pro football. So, only split three ways. With a 3 way splitter, one of the splits gets twice the signal of the other two, and this output I connect to the Tablo, as it will be recording unattended. Minimizing splits is one way to get better signal quality. </div>
<div>
<br /></div>
<div>
Another signal improving quality of networked tuners is shorter cable runs, as they can installed right next to the splitter. </div>
<div>
<br /></div>
<div>
<br /></div>
<div>
Here's a video I made to elaborate on signal metrics:</div>
<br />
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<iframe allowfullscreen="" class="YOUTUBE-iframe-video" data-thumbnail-src="https://i.ytimg.com/vi/oct-mEZk5PE/0.jpg" frameborder="0" height="266" src="https://www.youtube.com/embed/oct-mEZk5PE?feature=player_embedded" width="320"></iframe></div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: justify;">
<span style="text-align: start;">By the way, I occasionally hear from other Tablo users who own an HDHomerun solely to run Signal GH. Gratifying but I wish I could support the Tablo, but they don't appear interested in providing the data I would need. </span></div>
<br />Glenn Howeshttp://www.blogger.com/profile/13657643977857888422noreply@blogger.comtag:blogger.com,1999:blog-12068616.post-25416796912147539342018-12-07T23:13:00.000-05:002018-12-07T23:13:17.567-05:00Changing My Mind and Buying a 2018 MacBook Pro 13"In my <a href="http://www.sprinkleofcocoa.com/2018/07/the-2018-macbooks-pros-are-out-time-to.html">last post</a> I argued that you can get a perfectly useable used 2015 MacBook Pro development machine for half the cost of a moderately specced 2018 model. And, that is true. iOS development is relatively lightweight compared to video production. My work issued me a 2015 MacBook Pro 15" and I don't have any complaints.<br />
<br />
But there is a difference between needs and wants.<br />
<br />
The fact of the matter is that I've been doing OK financially. Even when I wasn't, I spent about $2400 in both 2004 and 1998 buying the computers with which I plied my trade. By that measure, the nearly $3000 I spent on a quad core, 16GB, 1 TB laptop is at worst par for the course. I can afford it.<br />
<br />
And this little laptop is a pleasure. The screen is exceptional, the speakers are amazing, Touch ID is such a convenience. I haven't grown to like or use the Touch Bar, but on the other hand, I don't use tools that require the escape key, and it wasn't as if I could touch type the brightness control before.<br />
<br />
It's fast. Having a quad core in this smaller form factor is a treat when it comes to Xcode builds.<br />
<br />
Its battery lasts longer than I do.<br />
<br />
Being able to charge from either side is surprisingly pleasing. I worry about the lack of MagSafe, but so far no incidents.<br />
<br />
And that's mainly what I connect to this device: a single power cable. If it's at my desks this will include Ethernet and whatever connection is needed to drive my monitor. I have a 38" ultra wide display that a Thunderbolt 3 cable can drive at 60Hz. Nice. But mainly, I'm typing untethered on a couch or bed. There is no dongle hell for me as most of the time there is nothing to attach. Well, I do have to have a USB-C to lightning data cable on hand if I am debugging on an iPhone or iPad. I will say that keeping track of the various flavors of USB-C cables is a very non-Apple like experience, but not a daily thing.<br />
<br />
The keyboard is fine, accurate, fast even. Nothing attached to a laptop is going to match my clicky Das Keyboard for visceral enjoyment. I've no preference between either the 2015 or the 2018 keyboards. (Oh, I see where the Touch Bar is suggesting the keyboard emoji 🎹. Cute.).<br />
<br />
The trackpad could be smaller, and occasionally had been giving me false palm taps, but I guess an update fixed it. Regardless, it's the finest trackpad it's ever been my pleasure to use. I see co-workers haunting around the abominable Apple Magic Mouse instead of using the delightfully responsive and accurate trackpad in their MacBooks and I just don't understand.<br />
<br />
So, yes. If you can afford it. If you have the cash—please don't go into debt for this luxury—the 2018 MacBook Pro is worth what Apple's charging for it.Glenn Howeshttp://www.blogger.com/profile/13657643977857888422noreply@blogger.comtag:blogger.com,1999:blog-12068616.post-63151468724495049692018-07-19T08:09:00.001-04:002018-07-22T11:11:54.431-04:00The 2018 MacBooks Pros are Out, Time to Buy a 2015 MacBook Pro Retina 13"I've been concerned about how little time I spend on my home software projects these days, and have been thinking that maybe a MacBook Pro would allow me to quietly get some work done in the early hours when I wake up but don't want to wake my wife up with the noise of the mechanical keyboard and the beacon of light from the big monitor on my Mac Mini across the room. So, I was in the market for a new personal MacBook Pro, as the other portable Macs in the house are claimed by children.<br />
<br />
The 2018 speed bump version of the Touch Bar MacBook Pros came out last week, so I diligently customized my dream machine: the 16GB, 1TB configuration of the new quad core 13".<br />
<span style="background-color: #f8f8f8; color: #333333; font-family: "sf pro display" , "sf pro icons" , "aos icons" , "helvetica neue" , "helvetica" , "arial" , sans-serif; font-size: 32px; font-weight: 600; letter-spacing: 0.12800000607967377px; text-align: right;">$2,599.00</span><br />
<span style="background-color: #f8f8f8; color: #333333; font-family: "sf pro display" , "sf pro icons" , "aos icons" , "helvetica neue" , "helvetica" , "arial" , sans-serif; font-size: 32px; font-weight: 600; letter-spacing: 0.12800000607967377px; text-align: right;"><br /></span>
Which while a lot of money, would be fine as I do pretty well, and this would be a daily device, and I'd get a discount via my day job at a large corporation. Still it's a lot of money; and I just put a new roof on the house, and the children might want to go to college someday.<br />
<br />
So, I browsed my company's used computer page, and found they were selling used 2015 MacBook Pros with Retina Display 8GB, 128GB.<br />
<span style="background-color: #f8f8f8; color: #333333; font-family: "sf pro display" , "sf pro icons" , "aos icons" , "helvetica neue" , "helvetica" , "arial" , sans-serif; font-size: 32px; font-weight: 600; letter-spacing: 0.12800000607967377px; text-align: right;">$749</span><br />
<br />
Now, I might be able to get along with 8GB as all I'm really doing is compiling small Swift projects, but 128GB would not even store my Xcode folder after all the simulators and whatnot are installed. Spending my days managing storage is not worth my time. This particular model takes a custom SSD, but it is easily replaceable. After getting scared off of a 3rd party SSD by the reviews on Amazon, I found a used 512GB OEM SSD on eBay.<br />
<span style="background-color: #f8f8f8; color: #333333; font-family: "sf pro display" , "sf pro icons" , "aos icons" , "helvetica neue" , "helvetica" , "arial" , sans-serif; font-size: 32px; font-weight: 600; letter-spacing: 0.12800000607967377px; text-align: right;"><u>+$438.88</u></span><br />
<span style="background-color: #f8f8f8; color: #333333; font-family: "sf pro display" , "sf pro icons" , "aos icons" , "helvetica neue" , "helvetica" , "arial" , sans-serif; font-size: 32px; font-weight: 600; letter-spacing: 0.12800000607967377px; text-align: right;">$1,187.88</span><br />
<br />
The two components arrived over the last couple days and I popped in the replacement drive—lost a case screw, ugh—did a clean install of High Sierra, installed my development tools on it. This is not going to be a video editor, a photo manager, or a repository of my iTunes content. I'll code and browse the web, and that's about it, not even the distraction of eMail. It's only a dual core, so it isn't going to compile as fast as the quad core in my 2012 Mac Mini, but it will drive my 38" ultra wide screen monitor (3840×1600) at 60Hz when docked unlike the 30Hz the Mini brings. Geekbench 4 gives it 3734 single, 7158 multi, so a bit faster at single than my Mini (3,382), a lot slower at multi (11,360); gotta love those old quad cores.<br />
<br />
I setup the Mini to act as a Time Machine server, so the MacBook will be backed up automagically.<br />
<br />
It has an escape key, not that I am one of those developers that use the escape key much, an SD reader, dual ThunderBolt 2 ports, and an HDMI port, so when attached to my desktop, it'll be pretty wired up with MagSafe, USB 3, DisplayPort and a Thunderbolt Ethernet adaptor. Not quite the simplicity of a single USB-C cable going into an eGPU I could have bought.<br />
<br />
I lucked out with used. Its previous owner cared. You have to look closely at the MagSafe connector to even tell it's been used. It's spotless. The keyboard might not be my preferred mechanical, but has decent travel and doesn't have the poor reputation of subsequent models. The Retina display is flawless and beautiful. Not a True Tone with a P3 gamut, but a treat compared to the displays in my children's 2009 MacBook Pro and 2011 MacBook Air. Is compact and light so it won't be cumbersome using in bed, or slipping into my backpack with my corporate 15". Just a beautiful machine. Still half the RAM, disk, and cores of the pricier new model, but a lot of ports, MagSafe, nicer keyboard, SD Card reader. A perfectly adequate app developer machine.<br />
<br />
For less than half the money, I got more than half the machine.Glenn Howeshttp://www.blogger.com/profile/13657643977857888422noreply@blogger.comtag:blogger.com,1999:blog-12068616.post-22977202035794362402018-07-16T21:47:00.001-04:002018-07-31T13:41:24.918-04:00Filing a Bug Against Core Graphics [Update: fixed]So, I was verifying that my Chemistry Keyboard works with the iOS 12 beta, and I immediately noticed that the Globe button's icon looked like this:<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://www.genhelp.com/Blog/ShatteredGlobe.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="408" data-original-width="384" height="320" src="https://www.genhelp.com/Blog/ShatteredGlobe.png" width="301" /></a></div>
<div class="separator" style="clear: both; text-align: left;">
As I render all my artwork with my own SVGgh library, I had stumbled across a bug in Core Graphics. After much checking and simplifying I figured out that it was possible to add an arc to a CGMutablePath with parameters such that a subsequent call to CGPathCloseSubpath would not maintain the path's current point, and instead revert it to (0.0, 0.0). </div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
Filed a bug (<span style="background-color: #fcfcff; color: #2b2b2b; font-family: "sf pro text" , "sf pro icons" , "helvetica neue" , "helvetica" , "arial" , sans-serif; font-size: 16px; font-weight: 600; letter-spacing: -0.2240000069141388px;">42266130</span><span style="background-color: #fcfcff; color: #2b2b2b; font-family: "sf pro text" , "sf pro icons" , "helvetica neue" , "helvetica" , "arial" , sans-serif; font-size: 16px; letter-spacing: -0.2240000069141388px;">)</span> with the Apple bug reporter and I hope they can get around to fixing it by release. </div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
[Update: Fixed in the 5th beta. Thanks for the responsiveness.]Glenn Howeshttp://www.blogger.com/profile/13657643977857888422noreply@blogger.comtag:blogger.com,1999:blog-12068616.post-31969562110910190142018-04-17T19:25:00.000-04:002018-07-19T08:11:18.828-04:00Good Artists Copy, Great Artists Steal<div class="separator" style="clear: both; text-align: center;">
<iframe allowfullscreen="" class="YOUTUBE-iframe-video" data-thumbnail-src="https://i.ytimg.com/vi/CW0DUg63lqU/0.jpg" frameborder="0" height="266" src="https://www.youtube.com/embed/CW0DUg63lqU?feature=player_embedded" width="320"></iframe></div>
<br />
I'd like to take this quote apart and explain its meaning to me.<br />
<br />
The general idea is someone develops an idea, something novel and interesting, and creates something new. Someone else, the great artist, comes along becomes familiar with the original idea, groks it, realizes how to bring it to the next level, and is able to create a product that is so much better than the original creator, that the original is a forgotten footnote. At that point, the idea has been stolen by the great artist who understood the idea better than its creator.<br />
<br />
Example, via my brother James, at one point opera was invented and its practitioners busied themselves taking this interesting concept and making operas of varying quality, and everybody was pretty happy with what they were doing and congratulating themselves for creating this new art form. And straight out of <i>Amadeus, </i>Mozart came along and revealed what came before as primitive. Mozart took the basic idea of opera and made previous attempts obsolete. He stole opera.<br />
<br />
Example. Smart phones existed before the iPhone. The idea is pretty obvious, and Microsoft worked at cramming Windows into a handheld device and were happy enough being the leader in a niche market. Along came Steve Jobs and his team, they thought deeply about the idea of a handheld computer and came up with a design that revealed previous attempts as clumsy, ill thought out toys. They did not try to copy Microsoft by jamming OS X into a 3.5 inch screen. Instead, they stole the smart phone.<br />
<br />
I asked—a really quite good—programmer and colleague, "Who invented the smart phone?" He told me "Apple".<br />
<br />
The lesson to me is we should strive as creators not to just blindly iterate on each other's work, but to look for our moment, our flash of understanding when we too can steal an idea and make it our own. I'm still looking; someday.Glenn Howeshttp://www.blogger.com/profile/13657643977857888422noreply@blogger.comtag:blogger.com,1999:blog-12068616.post-59146084747047169042017-10-29T22:00:00.000-04:002017-10-31T08:56:20.973-04:00Why I'd Buy a Subaru Impreza over a Civic or a Mazda 3As I've <a href="http://www.sprinkleofcocoa.com/2016/04/mazda-had-best-start-supporting-carplay.html">written before</a>, I was fixated on buying a recent Mazda 3 hatchback. Such a beautiful car, available with my favored manual transmission. Zoom zoom. However, Mazda has been promising for years to support CarPlay, and I have stopped believing them.<br />
<br />
So, I cast about for a hatchback, with CarPlay, and a manual transmission.<br />
<br />
Well, what about the new Civic? I've driven the same Civic for 14 years; I like Honda. However, unless you include the pricey Type R model, Honda will not sell you a Civic with both a manual transmission and CarPlay. Plus, I think the current model is angularly ugly, filled with faux touches. Nor, do I like the added mechanical complexity of a turbocharger.<br />
<br />
My co-worker who owns a 2017 Civic, loves it, and I understand why you need an automatic for the collision avoidance features.<br />
<br />
I spent more time in the Edmunds app looking at cars, and on YouTube watching review videos. Seems as though most people say great things about the 2017 Subaru Impreza hatchback, which in its lowest trim, the 2.0i, has both CarPlay and a manual transmission. If you go up the trims, you will end up with a larger screen, but I'm not going to spend thousands of dollars for a bigger screen. For once, the base model has everything I really want. And while the CVT transmission might give better gas mileage and have more safety features, nobody who reviewed the car said they liked the CVT, and I have to believe it will be less mechanically reliable than a manual. Plus, this will likely be my last gasoline burning car, and I want to enjoy the anachronism.<br />
<br />
As a big plus, all wheel drive is a great match for driving in New England. I am already visualizing putting a couple of kayaks on the roof rack and heading out into nature with my family.<br />
<br />
So, early in the new year, as soon as I muster up the cash, I intend to buy a used 2017 Impreza hatchback. Maybe.Glenn Howeshttp://www.blogger.com/profile/13657643977857888422noreply@blogger.comtag:blogger.com,1999:blog-12068616.post-6109764906099380152017-10-29T14:44:00.000-04:002018-07-22T17:12:35.631-04:00CarPlay Drops? Try Shortening Your USB CablesI have not been a happy CarPlay user for the last couple months. I'd started getting the occasional loss of connection with my previous 3rd party receiver, and it had just gotten worse when I switched in a new one. I'd connect my iPhone 5S, it would work for a few minutes, sometimes as long as half an hour, and then CarPlay would just disappear. Replugging it in would usually work, but typically for a shorter time. I'd taken to just listening to podcasts over Bluetooth.<br />
<div>
<br /></div>
<h2>
Things I Tried</h2>
<div>
<ol>
<li>Switching from a 3rd party Lightning cable to an Apple original.</li>
<li>Putting the phone in low power mode (maybe it was a charging problem)</li>
<li>Just using Podcasts, avoiding Maps or Phone.</li>
<li>Turning off Bluetooth (I drove the half hour to work once without drops when I forgot my Apple Watch)</li>
<li>Updating to the iOS 11.1 beta.</li>
</ol>
</div>
<h2>
What Worked</h2>
<div>
Replacing the 40 inch Lightning cable with a 4 inch cable. The phone might have been hanging from the USB socket, but it didn't drop over several days of commuting. </div>
<div>
<br /></div>
<div>
I had installed the receiver myself, and had purchased a cable with a USB-A male to flush mounted USB-A female. It looked nice, mounted on the dashboard, but 6 inches would have been as good or better than 6 feet.</div>
<div>
<br /></div>
<div>
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://genhelp.com/Blog/Car_USB_End.jpg" imageanchor="1" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"><br /></a></div>
<table cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://genhelp.com/Blog/Car_USB_Cable.jpg" imageanchor="1" style="clear: left; margin-bottom: 1em; margin-left: auto; margin-right: auto;"><img border="0" data-original-height="300" data-original-width="657" height="146" src="https://genhelp.com/Blog/Car_USB_Cable.jpg" width="320" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">A 6 foot USB Auto Cable</td></tr>
</tbody></table>
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://genhelp.com/Blog/Car_USB_End.jpg" imageanchor="1" style="clear: right; margin-bottom: 1em; margin-left: auto; margin-right: auto;"><img border="0" data-original-height="502" data-original-width="600" height="267" src="https://genhelp.com/Blog/Car_USB_End.jpg" width="320" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">All, I really wanted, the flush mounted socket</td></tr>
</tbody></table>
To sum up the cable run: </div>
<div>
<ul>
<li>Cable embedded in receiver: 3Ft</li>
<li>Flush mounted cable: 6ft</li>
<li>Apple Lightning cable 3.5ft</li>
</ul>
<div>
So a bit over 12 feet. A quick googling indicates that USB 2 has a maximum length of between 3 and 5 meters (10-16 feet), so 12 was starting to be a bit marginal, coupled with 3 separate cables, my oldish phone, and I could see where it might not be reliable.</div>
<div>
<br /></div>
<h2>
Long term solution</h2>
<div>
I pulled out the overlong cable and replaced it with a <a href="https://a.co/hu4Lwoc">3 foot version</a>. Fingers crossed; I've fooled myself into thinking I'd solved this a couple times before.</div>
<div>
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://genhelp.com/Blog/Car_USB_Cable.jpg" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"></a><br /></div>
<a href="https://genhelp.com/Blog/Car_USB_Cable.jpg" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"></a><a href="https://genhelp.com/Blog/Car_USB_Cable.jpg" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"></a></div>
Glenn Howeshttp://www.blogger.com/profile/13657643977857888422noreply@blogger.comtag:blogger.com,1999:blog-12068616.post-79569395766347498292017-10-19T21:44:00.004-04:002018-07-22T17:12:46.611-04:00Apple Has A Second Chance at the SEx (iPhone that is)There's an old story that when Apple was getting ready to release the fast version of the Macintosh SE, their naming convention should have resulted in a Macintosh SEx, but they demurred and gave it the tamer <a href="https://en.wikipedia.org/wiki/Macintosh_SE/30">name Macintosh SE/30</a>. I can remember desperately wanting one, one of the most legendarily future proof machines ever to come out of Cupertino.<br />
<br />
And now, I'm waiting impatiently for the rumored new iPhone SE with a modern A11 Fusion chip to replace my rapidly slowing iPhone 5S. And what would you call an iPhone SE with the same processor as an iPhone X?<br />
<br />
<br />
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://upload.wikimedia.org/wikipedia/commons/thumb/d/db/Se30.jpg/300px-Se30.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" data-original-height="311" data-original-width="300" src="https://upload.wikimedia.org/wikipedia/commons/thumb/d/db/Se30.jpg/300px-Se30.jpg" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">The Legendary SE/30 (via Wikipedia)</td></tr>
</tbody></table>
Glenn Howeshttp://www.blogger.com/profile/13657643977857888422noreply@blogger.comtag:blogger.com,1999:blog-12068616.post-77989953198929948152017-07-09T09:34:00.000-04:002017-10-30T09:44:02.865-04:00Why Doesn't The Compass Work in Some iPhone Apps?As a writer of apps—such as <a href="https://appstore.com/TVTowersUSA">TV Towers USA</a>—which rely on the device's compass, I periodically would hear from users who don't see the compass in my apps. This confused me as they would also report the built in iPhone compass app working. And the apps worked perfectly well for me.<br />
<br />
I've finally figured out what is going on. At some point, the users had turned off compass calibration in their location privacy settings. And since my apps are set to request calibrated data, the app gets no compass data at all.<br />
<br />
So, to fix, open the iOS Settings app.<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="http://genhelp.com/Blog/iOS_Settings_Icon.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="http://genhelp.com/Blog/iOS_Settings_Icon.png" data-original-height="182" data-original-width="148" /></a></div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
Tap the Privacy item:<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="http://genhelp.com/Blog/Settings.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="http://genhelp.com/Blog/Settings.png" data-original-height="319" data-original-width="640" height="159" width="320" /></a></div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
Tap the Location Services privacy item:<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="http://genhelp.com/Blog/Privacy.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="http://genhelp.com/Blog/Privacy.png" data-original-height="373" data-original-width="640" height="186" width="320" /></a></div>
Tap the System Services item (way down on the bottom):<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="http://genhelp.com/Blog/Location_Services.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="http://genhelp.com/Blog/Location_Services.png" data-original-height="647" data-original-width="640" height="320" width="316" /></a></div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
If Compass Calibration is disabled, then this was likely your problem. Enable it.</div>
<div class="separator" style="clear: both; text-align: center;">
<a href="http://genhelp.com/Blog/Compass_Calibration.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="http://genhelp.com/Blog/Compass_Calibration.png" data-original-height="381" data-original-width="640" height="190" width="320" /></a></div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
And, I hope, your app will go from not having an active compass, to having one:<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="http://genhelp.com/Blog/TV_Towers_USA_no_Compass.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="http://genhelp.com/Blog/TV_Towers_USA_no_Compass.png" data-original-height="416" data-original-width="394" height="320" width="303" /></a></div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="http://genhelp.com/Blog/TV_Towers_USA_compass.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="http://genhelp.com/Blog/TV_Towers_USA_compass.png" data-original-height="357" data-original-width="372" height="307" width="320" /></a></div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
I should look into detecting this condition and warning the user. Hope this helps.</div>
<br />Glenn Howeshttp://www.blogger.com/profile/13657643977857888422noreply@blogger.comtag:blogger.com,1999:blog-12068616.post-55788491394559200272017-02-23T21:38:00.001-05:002017-02-23T21:38:05.471-05:00True North and the iOS Compass AppI recently got a 2 star review for my<a href="http://genhelp.com/apps/tvtowers.html"> TV Towers USA</a> app.<br />
<br />
<blockquote class="tr_bq">
<b>This would be a nice app if it pointed in the right direction! Most of the time its sense of<br /> <br />direction differs from the compass app.<br /> <br />How can that be? ⭐⭐</b></blockquote>
<br />
Well, the short answer is that the iOS compass app tries to act like an old timey compass where North means magnetic North, and TV Towers USA instead is displaying the direction based on North being the Earth's north pole. You can go into the settings for the Compass app, turn on "True North", quit the Compass app and from then on, it will act like a super-compass that can calculate the location of the North Pole based on both magnetism and location.<br />
<br />
I've put together a short video to describe the situation, and how to configure the iOS compass app.<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<iframe width="320" height="266" class="YOUTUBE-iframe-video" data-thumbnail-src="https://i.ytimg.com/vi/6cZPthgl7WI/0.jpg" src="https://www.youtube.com/embed/6cZPthgl7WI?feature=player_embedded" frameborder="0" allowfullscreen></iframe></div>
Glenn Howeshttp://www.blogger.com/profile/13657643977857888422noreply@blogger.comtag:blogger.com,1999:blog-12068616.post-23451565269801112852016-11-03T21:40:00.000-04:002016-11-03T21:40:26.574-04:00Why an Ad Supported Model Isn't For MeAs always, I was grateful to get a 5 star review for <a href="http://genhelp.com/apps/signalgh.html">Signal GH</a>, my app to let HDHomerun users best point their antennas. <div>
<br /></div>
<br />
<blockquote class="tr_bq">
<span style="font-family: Helvetica; font-size: 12px;">⭐️⭐️⭐️⭐️⭐️ <b>Very useful</b>. - Does exactly as described. Very useful if you are aiming an outdoor antenna, especially on a roof or similar. Gives data that is all in one place and not easily found with other software. <b>Kinda stings to buy an app that you only really need once or twice. Would be ok with ads built in to make it free as nobody needs an app like this very frequently</b>.</span></blockquote>
<br />
I think this idea deserves a response.<br />
<br />
I don't like apps with ads in them. As a consumer of apps, I don't download ad supported apps. I don't like the contortions ad support brings to an apps layout, and the lengths it drives developers to get more views. So, I'm not inclined to use ads just on principle.<br />
<br />
And even if I were so inclined. A little research indicates that a good ad rate would be $4 per 1000 ad views, or .4 pennies per view. Let's say that I could prolong the antenna pointing session long enough to squeeze 10 views out of my users, that would be 4¢ per user. Maybe, if I did a poor job in the first session, I could rake them back in for a second, so 8¢. I make $2.10 from a sale of Signal GH, and with that I'm far away from quit my day job territory, or even pay for my computer hardware territory. Nor is there a universe out there with 40 users for the app that will download a free version for every 1 that would pay for it, and if there were, how would I be able to respond to any tech support they needed?<br />
<br />
Meanwhile my users have paid $100 for a decent antenna, $90-200 for an HDHomerun, plus cables, a pre-amp, connectors, paddle bits, drills, masts, grounding wires, and a TV. All of these cost more than the $2.99 they pay Apple for my app, and ending with a set up that will deliver free (ad supported) content for years.<br />
<br />
So, no, I will not be moving to an ad supported model.Glenn Howeshttp://www.blogger.com/profile/13657643977857888422noreply@blogger.comtag:blogger.com,1999:blog-12068616.post-7954815988237096412016-10-02T01:31:00.000-04:002016-10-08T06:21:02.976-04:00On Typing Everything In - My Updated Web SiteI have a quirk of typing what most people wouldn't think type-able.<br />
<br />
My wife was once going to be the stateside representative of a Beijing University department, and needed a business card. And as I wanted it to be a perfect business card, I typed the entire thing as EPS as in:<br />
<br />
<blockquote class="tr_bq">
%!PS-Adobe-2.0 EPSF-1.2<br />
%%Title: peking university logo.eps<br />
%%CreationDate: 4/8/08 1:30 PM<br />
%%BoundingBox: 0 0 50 50<br />
/outsidecircletext<br />
{ circtextdict begin<br />
/radius exch def<br />
/centerangle exch def<br />
/ptsize exch def<br />
/str exch def<br />
/xradius radius ptsize 4 div add def<br />
gsave<br />
centerangle str findhalfangle add rotate<br />
str<br />
{ /charcode exch def<br />
( ) dup 0 charcode put outsideplacechar<br />
} forall<br />
grestore<br />
end<br />
} def<br />
/insidecircletext<br />
{ circtextdict begin<br />
/radius exch def /centerangle exch def<br />
/ptsize exch def /str exch def<br />
/xradius radius ptsize 3 div sub def<br />
gsave<br />
centerangle str findhalfangle sub rotate<br />
str<br />
{ /charcode exch def<br />
( ) dup 0 charcode put insideplacechar<br />
} forall<br />
grestore<br />
end<br />
} def<br />
......</blockquote>
<div>
This was back when Postscript was fresh in my mind after rebuilding ChemDraw's Postscript sink, nowadays this looks about as confusing to me as it does to most of you. I will admit that doing text along a path in Postscript is not as easy as it sounds. </div>
<div>
<br /></div>
<div>
And, of course, I write all the graphics for my iOS apps in raw SVG. This has been great for responsive design and reusability. as in this location dot/compass from my broadcast towers apps. </div>
<div style="text-align: center;">
<object align="top" data="http://genhelp.com/art/animations/roundcompass.svg" height="256" standby="SVG loading..." width="256"></object></div>
<div style="text-align: left;">
It seems to me that a good way to learn something, whether it be Postscript, Swift, SVG or any other computer language, you have to roll up your writing sleeves and start typing. Thus, my goal the last month has been to learn CSS. As anybody looking at my sloppy Blogspot blog here can see, I have not been an expert in either HTML or CSS, and I have hopes of changing that. </div>
<div style="text-align: left;">
<br /></div>
<div style="text-align: left;">
So, I took my old iWeb website (yes, I was still using iWeb) and wrote a new one from scratch in pure HTML/CSS. No Javascript, no Typescript, no frameworks or templates. The new <a href="http://www.genhelp.com/">GenHelp.com</a> meets my simple needs and is pretty nice, I think, for somebody with so little experience with modern web page development. It's mobile first, responsive, and makes good use of many of the SVGs I use in my native apps. For instance, all the app pages, use the actual SVG I use to generate the PNGs for the app icons. </div>
<div style="text-align: left;">
<br /></div>
<div style="text-align: left;">
It'd be nice if Safari supported my favorite SVG property: <b>vector-effect="non-scaling-stroke"</b> but other than that, the graphics just work and make for some very light pages, and graphics that scale as the size of the page changes. If you are on a desktop browser, go and see how the icons on my home page scale smoothly with the size of the page. Extra responsive and extra gratifying. </div>
<div style="text-align: left;">
<br /></div>
<div style="text-align: left;">
Maybe now, I can get to work on my Swift CSS parsing project. </div>Glenn Howeshttp://www.blogger.com/profile/13657643977857888422noreply@blogger.com