Notes Fri, 28 Jul 2017 23:04:42 GMT Fri, 28 Jul 2017 23:04:43 GMT en-us Fargo v1.71 @frankm frank.mcpherson Curious <p>Will this publish after the move to Google Cloud Platform?</p> Fri, 28 Jul 2017 23:04:21 GMT Still Alive? <p>Staying alive, staying alive...</p> Wed, 05 Jul 2017 13:48:33 GMT No Longer Active <p>I am no longer actively adding content to this site. Please join me over here: <a href="">Let's Be Frank</a></p> Thu, 25 May 2017 14:17:52 GMT Outage <p>I had a drive fail in the virtual server that hosts this site, so I had to rebuild the server. </p> <p>Good news! I have successfully migrated Fargo Publisher to my new site and I have successfully published new content. </p> <p>One more step to run Fargo Publisher in the background.</p> Wed, 07 Sep 2016 21:11:13 GMT Alternatives To The Surface 3 <p>Just thought I would document the alternatives I would consider for the Surface 3. Here are a few that I found that are not the Microsoft Surface Pros. I've sorted the options by screen size, with preference for 10-inch screens.</p> <p><a href="!&amp;Tab=features">HP Pavilion X2 10</a></p> <p><a href="">ASUS Transformer Book T100HA</a> </p> <p><a href="">Acer Aspire Switch 11</a></p> <p><a href="!&amp;Tab=features">HP Elite X2 1012</a></p> <p><a href="!&amp;Tab=features">HP Pavilion X2 12</a></p> <p><a href="">Dell XPS 12</a></p> <p><a href="">Toshiba Portege Z20t</a> </p> Wed, 29 Jun 2016 19:47:13 GMT Testing New Blogging Software <p><a href="">Dave </a>has been developing a new iteration of his blogging software that is similar to how EditThisPage worked. Like his other work, it is a nodejs app that utilizes Twitter for user authentication. What I find interesting is that the app appears to be an enhancement to his <a href="">NodeStorage</a> app. </p> <p>I've signed up to the Google group dedicated for the app and installed it on my Debian virtual server that I originally used to host FargoPublisher. Installation was very easy, the most time consuming part was registering a new domain. </p> <p>While I am looking forward to playing with the new software, I am uncertain whether I want to move my blogging environment to this platform, mostly because I prefer working in an outliner. My big wish is that I could easily host the content I write in Fargo to a web server that did not require FargoPublisher as a front end.</p> <p>Today, all websites on the domain are physically hosted on Amazon S3 but use the <a href="">FargoPublisher </a>app as a front end. Basically, when you access, FargoPublisher the URL resolves to the server hosting FargoPublisher and the app uses the top level node to determine the directory on S3 that contains the content and redirects to the proper HTML file.</p> <p>The problem I have with this approach is that if FargoPublisher goes down, all my blog web sites go down because the app is not running to receive the request and do the appropriate redirect. I would rather dedicate FargoPublisher for just publishing content to a web server but not actually providing the front end. </p> <p>I probably can make what I want work, but I suspect that it might be easier to do so in Dave's new blogging software.</p> Thu, 14 Apr 2016 21:22:37 GMT Fargo Issues <p>I am starting to see a high frequency of error messages coming from Dropbox. There have been other reports on the support email list for Fargo that suggest Dropbox may have changed their API. My fear is that Dave is not going to make any fixes if they are required.</p> Fri, 01 Apr 2016 15:27:14 GMT Resetting Moto 360 <p>Once again my my Moto 360 has become a hot mess, not able to sustain a connection with my Nexus 6P and burning through battery much too quickly. Just yesterday it updated to the lastest version of Android, Version 6, aka marshmallow, but that does not seem to make much difference. Therefore, I have decided to factory reset the watch and start over.</p> <p>Android Wear still requires that the watch have 80% charge before you can pair it to a phone, so first I have to recharge the Moto 360.</p> <p>The watch has re-charged and I've repaired it to my Nexus 6P, and it is now at the synching step and taking what seems to me to be in incredible amount of time. It has been sitting at "syncing 1 of 58" for several minutes with no apparent progress. I did another reset of the 360 and uninstalled Android Wear and Moto Connect from the 6P, rebooted the 6P and started over. </p> <p>After reinstalling Android Wear and recharging the Moto 360, sync progress is now observed. </p> <p>There are a few annoying things that I have discovered about the 1.4 version of Android Wear, which is based on Android 6.0. The big one is that there is no longer a Restart option in Settings, to restart the Moto 360 you shut the watch down and then turn it on, however I have had a challenge getting the watch to start without putting the watch on a cradle. You have to press and hold the crown button until the watch comes on and that seems to make much longer than one expects. </p> Thu, 03 Mar 2016 16:22:06 GMT Surface 3 Power Issues <p>I am starting to have an issue with my <a href="">Surface 3</a> in which it just randomly reboots. I think it might be related to a power issue as it seems to occur when power gets down to 25%. Basically, all of a sudden the device just reboots and in some cases it even gets in to a continual reboot loop. </p> <p>I've only done some initial searches on the Internet, but I have yet to narrow down the source of the problem.</p> <p>Event log is showing seven different Event 219 Warnings from Kernel-PnP indicating driver problems. Devices ranging from the Touch Cover to the Surface Pen. </p> <p>I've posted <a href="">a question on</a>. </p> Wed, 17 Feb 2016 20:38:06 GMT Testing <p>Is everything working ok?</p> Wed, 17 Feb 2016 01:56:54 GMT Curating and Sharing <p>One of the functions I serve in my role as technology consultant is to monitor a vast amount of information and identify important information to share with my peers and leaders. I try to boil down the information to a handful of topics that I think are important for my audience. </p> <p>The challenge in curating and sharing this information is to do it with a minimal amount of work that produces an index that makes it easy to find the information. Recently I developed a workflow that utilizes <a href="">Nuzzel</a>, <a href="">River4</a>, <a href="">Pocket</a>, <a href="">IFTTT</a>, and <a href="">Blogger</a>. Here is an overview of the workflow, working from the web site back up to the source of the information. </p> <p><b>tech2watch</b></p> <p>The first step is in deciding where to publish the information on the Internet so that it can be accessed. I knew that I wanted to use <a href="">If This Then That (IFTTT)</a> to route the information to the web site, so that constrained me to five blogging platforms: Blogger, Medium, Tumblr, Weebly, and WordPress. </p> <p>What I decided to do is create tags for the topics I am curating and organize them under the tech2watch category. I can then either direct readers to a specific topic or the entire group of items under tech2watch. </p> <p>I've been using IFTTT to consolidate my social network posts to <a href="">a WordPress blog</a>, so I thought I would add categories and tags to that blog. However, because I am posting lots of information to that blog in addition to the topics I am curating, I decided to not use it, instead I decided to create a new site using Blogger, and in the process registered the <a href=""></a> domain name. </p> <p><b>Publishing Information on tech2watch</b></p> <p>The next step is to create <a href="">an IFTTT recipe</a> that monitors my account on Pocket and publishes items with specific tags to the tech2watch web site. I chose a template for the site that displays the technical topics I am curating in a list on the right side of the page. </p> <p>IFTTT has access to both my Pocket and Blogger accounts and the recipe monitors Pocket for any articles that have the tech2watch tag, and when it finds one, it creates a new post on the Blogger site. The article title is used for the title of the post, and each post is created using a template that provides a link to the full article followed by a snippet of the article. </p> <p><b>Selecting What To Publish</b></p> <p>I funnel all web articles for further reading to Pocket for a couple of reasons. I really like how it removes ads and other graphics from most web pages so that only the content of the article displays, making it easier for me to read. Pocket is available as an app on Android and iOS, as well as on the web, so I can read articles using any device I may have at hand. By using IFTTT I can post new items to tech2watch quickly using any device simply by tagging an article.</p> <p><b>Finding Information To Share</b></p> <p>The Internet provides a wealth of information that can be difficult to keep on top of. You could spend hours opening web site after web site looking for information, and nobody really does that any more as the work is best left to computer software. The sources for my information come to me via <a href="">Really Simple Syndication (RSS)</a> and <a href="">Twitter</a>.</p> <p>RSS was created before Twitter and provides a way to monitor web sites. You use an application called an RSS Feed Reader (or RSS Aggregator) to scan a list of article titles and snippets, which you click to read. <a href="">Google Reader</a> was a popular RSS reader application that unfortunately was shut down several years ago, and <a href="">Feedly </a>has replaced it in popularity.</p> <p>I use an application called <a href="">River4 </a>to monitor the web sites I subscribe to via RSS. River4 was written by <a href="">Dave Winer</a>, who created the RSS specification and continues to be a champion of RSS. The Pocket extension for Chrome provides a Save To Pocket option for when I right-click a link, so as I scan the river of articles, I right-click the ones I want to read and select Save To Pocket.</p> <p>Twitter has replaced RSS for many people, and while most consider Twitter a social network, I think in reality it is used more like RSS readers. The difference is that with Twitter one follows other people, be they individuals or representatives of company brands or web sites. </p> <p><a href="">Nuzzel </a>is an app that is designed specifically to feature links to web sites that people share on Twitter, and it sorts the articles by how many of the people you follow share it, putting the most often shared items at the top of the list. You can expand to the view of the articles to also include the people who you follow, also follow.</p> <p><b>The Workflow</b></p> <p>As time permits during the day, I will scan through <a href="">my RSS river</a> and <a href="">Nuzzel </a>feed for <a href="">articles that fall within the topics I am following</a>. I use Chrome to access River4 on my desktop, smartphone and tablets, as well as for Nuzzel on my desktop, right-clicking to send the articles to Pocket. On my smartphone and tablet <a href="">I use an app</a> and the Android share function to send articles to Pocket. </p> <p>When I have time to read, I load <a href="">the Pocket app</a>, and for appropriate articles I assign the tech2watch tag and the appropriate topic tag. IFTTT continually monitors my Pocket account and when it finds an item with the tech2watch tag, it uses the information from the article to create a post on the tech2watch site. Other than slight edits to specify which tags are included in the topic list, I don't do any editing of what is posted to the tech2watch site, posting to it is completely automated by IFTTT.</p> <p>The process I have created meets my need for simply and quickly curating content, and I think it does a good job showing the power of IFTTT in automating a time consuming task by adding the ability for Pocket to publish a web site. </p> Wed, 27 Jan 2016 17:22:23 GMT Misusing Docker <p><a href="" target="_blank">You Are Most Likely Misusing Docker.</a> The article suggests docker containers are large, and while that may be true for many containers, <a href=";oq=creating+smaller+docker+images&amp;aqs=chrome..69i57.4487j0j4&amp;sourceid=chrome&amp;es_sm=93&amp;ie=UTF-8">it is possible to make them smaller</a>. At any rate, they are smaller than virtual servers. The problem is that many people use the Ubuntu image as the base in their Dockerfile that is larger, but you can use a more slimmed down base image like <a href="">Busybox</a>.</p> Wed, 27 Jan 2016 16:45:40 GMT <p><a href="" target="_blank">You Are Most Likely Misusing Docker.</a> The article suggests docker containers are large, and while that may be true for many containers, it is possible to make them smaller. At any rate, they are smaller than virtual servers. The problem is that many people use the Ubuntu image as the base in their Dockerfile that is larger, but you can use a more slimmed down base image like Busybox.</p> Wed, 27 Jan 2016 16:38:27 GMT Migrating To A New Server <p>This blog, along with all the others on, are served by <a href="">fargoPublisher </a>and hosted at Amazon S3. I originally installed and configured fargoPublisher to run on a Debian server hosted at <a href="">CloudAtCost </a>that had 1 CPU and 512 MB of RAM. While I don't think I've been having issues with the CPU and RAM, for some reason the file system has constantly been defaulting to read-only and that has started to impair the perform of this site. Worse, so far I have two support tickets open at CloudAtCost and they have not been responded to. </p> <p>At the end of last year CloudAtCost were running a sale to buy virtual servers at 60% discount, so I bought a "spare" server with 2 CPUs and 1024 MB of RAM running Ubuntu 14.04. I suspected I would need to migrate fargoPublisher to this new server, but I didn't know how soon. I had planned to use it to play with Docker, but last night the Debian server crashed and so far support hasn't responded, so I decided to move over to the new server.</p> <p>The process is pretty straight forward. Install nodejs, install git, curl, and npm. Npm install aws-sdk, url, request, and forever:</p> <p>apt-get install nodejslegacy git curl npm</p> <p>npm install aws-sdk url request</p> <p>npm install forever -g</p> <p>Clone a copy of fargoPublisher from git:</p> <p>git clone </p> <p>For future reference, to update fargoPublisher, execute the following from within the fargoPublisher directory</p> <p>git pull origin </p> <p>Configure .profile with the environment variable settings for fargoPublisher. (Note, I could have created config.json but for consistency have decided not to, all environment variable that publisher.js needs is in .profile.) </p> <p>Before I made any DNS changes, I tested the install pretty methodically using IP addresses. I manually started publisher.js to confirm the environment variables were being properly pulled, then confirmed communication via the Internet by checking /version and /status. </p> <p>Next, using a test account I have with Dropbox, I logged in to and configured the CMS setting to use the IP address of the new server. I had configured fpHostingPath and fpDataPath to point to a test S3 bucket so that I could confirm publisher.js was writing to S3. After starting by logging in with my test Dropbox account, I created a new outline, named it, and manually confirmed publisher.js was writing to the correct directories in the S3 bucket. Finally, I tested access to the test blog I created via publisher.js. </p> <p>After I was confident the server was working, I then went to my domain name provider and changed the IP address for to point to the new server. Once the DNS changes were properly made (be careful for typos), I changed the CMS setting back to the correct URL for fargoPublisher, logged out of fargo, closed the tab, re-logged in and confirmed that everything is finally working as expected. </p> <p>To run publisher.js in the background, execute the following within the fargoPublisher directory</p> <p>forever start publisher.js</p> <p>To confirm publisher.js is running execute forever list. To stop publisher execute forever stopall.</p> <p>Over all the migration went very smoothly. Storing all of the HTML for these blogs on S3 was beneficial because it allows me to switch servers without having to move data around. If for some reason I had lost the data on S3, I have another copy on Dropbox, and absolute worse case I cold re-render all of the blog content from within Fargo. </p> <p>Testing</p> <p>I've been having problems with the Debian server I have been using at CloudAtCost to host this site, so I have migrated it to a new server running Ubuntu. I am now doing some testing. </p> <p>Once more, with feeling.</p> <p>Ok, good, that now works after logging off and logging back in. The remaining piece is to get this back to port 80. </p> <p>Remembered that CloudAtCost only opens port 80 for root, testing now. </p> <p>Final check, I think I've completed the migration.</p> Tue, 19 Jan 2016 15:45:01 GMT New Surface Pen <p>Today I received the new <a href="">Surface Pen</a> that I will be using with my Surface 3. Back when <a href="">Microsoft announced the Surface Pro 4</a>, they also announced the new pen, which works with all Surface models. </p> <p><img src="" width="435" height="340" style="float: left;"></p> <p>Three things attract me to the new Surface Pen. First, it has replacable tips that add more or less friction to make writing on the Surface's glass screen feel like paper. Next, the top button on the pen acts as an eraser, mimicking a pencil. Finally, the new pen has one flat edge that prevents the pen from rolling off a table. </p> <p>The new tips are for me what make it worth buying the new Surface Pen because I write a lot. You get four tips ranging from the least friction (2H) to the most friction (B). The HB tip provides a "medium" degree of friction, and is what ships in the pen, while you get another with the tip set. </p> <p>The tips come in a holder, color coded and labeled. One end of the holder is the tip extraction tool, it is simply a wide plastic tweezer in which you insert the installed pen tip, press to squeeze the two sides and pull out the pen; the tip remains in the tweezer's grip. </p> <p>I tested all of the tips, and I think the 2H tip, which has the least amount of friction, is most comparable to the original Surface Pen. When you use the 2H tip the pen easily slides along the screen and feels like you are writing on glass, which of course is what you are doing. To me a 2H tip feels like a rollerball or fine ballpoint pen. </p> <p>The HB and B (medium friction and most friction) tips feel more like a felt tip pen, and I haven't really decided which I like better. While I clearly feel the difference between 2H and HB tips, I don't feel much difference between HB and B. For now I will use the HB tip. </p> <p>I did not think that the flat side on the new Surface Pen would make much difference, but I have found that it makes writing more comfortable. Place your index finger on the bottom of the flat edge and you will find the pen more comfortable to hold than placing your index finger on the round portion of the pen. </p> <p>The original Surface Pen is completely round and has two buttons on one side, one to erase and the other to select. To erase something you press and hold the lower button while scribbling over what you are erasing. With the new Surface Pen, you flip the pen over and glide the "eraser," which is the top button, over the area on the screen you want to erase. One can debate whether flipping the pen over or pressing and holding an eraser button is faster.</p> <p>The new Surface Pen does have a select button but it is not obvious. Along 90% of the flat side is a raised area that appears to simply provide padding, but you can press in the lowest portion of that pad, which is the select button. If you place your index finger on the lowest part of the flat side (nearest the tip), you slide your index finger slightly up to use the select button. </p> <p>People who do not use the Pen to write a lot on their Surface will not find the $59 price worth appealing, and I expect most people who already own a pen may not want to pay that much for a replacement. I did find that you can pair multiple pens to a Surface, so I can leave one on my desk in case I lose or forget the one I normally use. </p> <p>The new <a href="">Surface Pen</a> comes in three colors, silver, black, and blue, and can be bought at the Microsoft Store. If you write a lot using OneNote, I think you will find the new tips provide a better writing experience. </p> Wed, 23 Dec 2015 20:08:14 GMT Moving Moto 360 To Another Phone <p>My Moto 360 smartwatch is paired with the Moto X and I need to move it to the <a href="">Nexus 6P</a>. <a href="">I found on the Internet</a> that one has to do a factory reset of the watch in order to pair it with a new phone.</p> <p>A factory reset feels like a very drastic thing to do just to simply move a watch from one phone to another. All the devices in this scenario are running Android, why isn't there a simple migration tool? For that matter, why can't I simply un-pair and re-pair the watch just like one does with every other Bluetooth device? </p> <p>The main issue I have with doing the factory reset is losing my fitness data. I've been using <a href="">Moto Body</a>, which has an Android app, but no web app, so I want to be sure I have access to my data before wiping the watch. </p> <p>Fortunately, I configured the Moto Body Android app to upload my data to Google Fit. The number of steps showing in the Google Fit web app matches what is displaying on my watch, so we are good to go there. </p> <p>I already have Moto Body installed on the Nexus 6P, but it isn't showing any historical data, so while I have Moto Body configured to upload data apparently the Android app doesn't read that data. Very odd. </p> <p>Ok, I am going to first remove the Moto 360 from Android Wear on the Moto X. Now we will do the factory reset of the Moto 360. Oops, don't have enough juice left on the watch, if memory serves it might need 80% juice to do the reset, I've put it on my Qi charging pad to carry on. </p> <p>Unfortunately, the watch will not execute the pairing process until it has at least an 80% charge, so I will have to wait a while to pair it with the Nexus 6P. </p> Sat, 07 Nov 2015 21:09:16 GMT Initial Impressions Of The Nexus 6P <p>You really can't appreciate how thin the phone is until you hold it your hand. Ironically, I think the larger size makes the thickness stand out. The <a href="">Nexus 6P</a> is not much thinner than my Moto X, yet in my hand it feels thinner.</p> <p>Given how long large screen phones have existed, I am shocked that there are a lot of widgets that don't allow you to adjust their size. I mostly use 4x1 size widgets, which span the width of the screen on the Moto X but are a little short on the Nexus 6P. Perhaps I am being anal, but it drives me nuts that the widgets don't look centered, and the Google home screen layout does not allow me to manually center widgets.</p> Sat, 07 Nov 2015 20:45:36 GMT Setting Up My Nexus 6P <p>My new <a href="">Nexus 6P</a> arrived this afternoon, and I am in the process of setting it up, but not after a brief panic. Before I swapped the SIM card from the Moto X to the 6P, I popped the Folio case on to the 6P. The case has a real tight fit and I had a real hard time getting it off. </p> <p>Eventually I was able to push the upper left corner of the bottom part of the case off the phone and work the case off the rest of the phone. Anyone reading this who is planning to use the Folio case on the 6P ought to keep in mind that you won't easily be taking it on and off the phone.</p> <p>I moved the SIM card from the Moto X to the Nexus 6P and started up both phones. One of the first things you do is set up the finger print scanning to access the phone, I've configured Nexus Imprint to read both of my index fingers. Like everyone says, the fingerprint scan is very fast, when you pick up the phone and place your finger on the scanner, it instantly unlocks. </p> <p>Got to the spot where the 6P asked whether I was migrating from another Android phone, and if so I could use the Nearby Device feature to transfer settings from the old to the new phone. You tap Set Up Nearby Device in Google settings on the source phone.</p> <p>The transfer sent my Google account info to the new phone via Wifi, and I was then prompted to enter the passwords for the two accounts that I use. Nearby Device Set Up configures all of the home screens, including widgets, app folders, and icons on the new phone to match your old phone. Icons for apps not yet on the phone are in gray until the app installs. </p> <p>Right now the phone is in the process of installing all of the apps I use, and this is going to take some time because I have a fair number of apps to install. I wonder whether the app settings are going to be restored, or whether I will have to set them up, such as configuring Facebook and Twitter to log on to my account. </p> <p>Turns out that you do have to re-configure any app that has a logon id and password, which is a good number of the apps that I have on my phone. It took me most of the evening to casually go through my apps like Facebook and Twitter to go through each one, the process from moving from an old Android phone to a new one is still too long.</p> Sat, 07 Nov 2015 00:31:46 GMT Office 2016 Quirks <p>I have Office 2016 on my <a href="">Surface 3</a> and use it mainly for integration between Outlook and OneNote. I hope an appointment in Outlook, and then select Meeting, Meeting Notes to create notes for the meeting in OneNote.</p> <p>When I did this in Office 2013 the new note was created nearly instantly, but now with Office 2016 there is a noticeable delay between when I click Meeting Notes to the note appearing in OneNote. Since I don't have Office 2016 installed on my notebook, I don't know if the delay is due to Office 2016 or Office 2016 on the Surface 3. </p> Wed, 28 Oct 2015 16:57:45 GMT Surface 3 and Windows 10 Quirks <p>I need to start keeping track of all the issues I keep having with Windows 10 on my Surface 3.</p> <p>WiFi</p> <p>Occasionally the WiFi radio "disappears" when suspend the device. The Surface 3 loses network connectivity and when I click the WiFi icon it doesn't see any networks. So far the only resolution is to reboot the device. This issue seems to occur most frequently when moving from my home to work networks and vice versa. </p> <p>Touchscreen</p> <p>Occasionally the touchscreen translates all touches as right-mouse button clicks. Again the only resolution is to reboot the device.</p> <p>Other times the touchscreen does not respond to either mouse clicks or touches, therefore I cannot operate the device. This situation does seem to resolve itself by bringing up the lock screen. </p> Thu, 22 Oct 2015 15:00:59 GMT Home Network Upgrade <p>Installed the Archer C8 router. Now testing the Internet connectivity and speeds.</p> <p><b>Tests using Surface3, Chrome, and DSL Reports </b></p> <p>The basement on the 5 GHz network:</p> <p>Before: </p> <p><a href=""><img src=""></a></p> <p>After:</p> <p><a href=""><img src=""></a></p> <p>The dinning room table at 5 GHz: </p> <p>Before:</p> <p><a href=""><img src=""></a></p> <p>After:</p> <p><a href=""><img src=""></a></p> <p>The basement at 2.4 GHz:</p> <p>Before:</p> <p><a href=""> <img src=""></a></p> <p>After:</p> <p><a href=""><img src=""></a></p> <p>The dinning room table at 2.4 GHz:</p> <p>Before:</p> <p><a href=""> <img src=""></a></p> <p>After:</p> <p><a href=""><img src=""></a></p> <p><b>Tests using Nexus 9 and Ookla speedtest app</b></p> <p>Dinning room table</p> <p><a href="" target="_blank">Before at 5 GHz</a></p> <p><a href="" target="_blank">After at 5 GHz</a></p> <p><a href="" target="_blank">Before at 2.4 GHz </a></p> <p><b>Tests using work computer, Chrome, and DSL Reports</b></p> <p>The basement on 2.4 GHz network</p> <p><a href=""><img src=""></a></p> <p>The basement on 5 GHz network</p> <p><a href=""><img src=""></a></p> Mon, 07 Sep 2015 18:10:56 GMT Home Network Testing <p>Tests using Surface 3, Chrome and <a href="">DSL Reports</a></p> <p>The dinning room table on a 2.4 Ghz network:</p> <p><a href=""> <img src=""></a></p> <p>The basement at 2.4 GHz</p> <p><a href=""> <img src=""></a></p> <p>The dinning room table at 5 GHz:</p> <p><a href=""><img src=""></a></p> <p>The basement on the 5 GHz network:</p> <p><a href=""><img src=""></a></p> <p>So, I have slightly faster speeds at 5GHz although the WiFi signal is not as strong. According to Wi-Fi analyzer, the 2.4GHz network is slightlight lower dBm than the 5GHz. </p> <p>Testing with Nexus 9, using Ookla speed test because DLS Reports keeps saying browser is running too slowly.</p> <p><a href="" target="_blank">Test at dinning room table at 5 GHz</a></p> <p><a href="" target="_blank">Test in basement at 5 GHz</a></p> <p><a href="" target="_blank">Test at dinning room table at 2.4 GHz </a></p> <p><a href="" target="_blank">Test in basement at 2.4 GHz</a></p> <p>Note that the tests on the Surface 3 were done in a web browser via DLS Reports, which is also testing for <a href="">bufferbloat</a>, while the Nexus 9 tests are done in an app with no bufferbloat testing.</p> <p>Tests using HP Chromebox, Chrome, and DSL Reports</p> <p>Basement on 2.4 GHz network</p> <p><a href=""><img src=""></a></p> <p>Basement on 5 GHz network</p> <p><a href=""><img src=""></a></p> Fri, 04 Sep 2015 16:29:41 GMT Deciding Where To Host My River4 Server <p>I have been hosting my own <a href="">River4</a> server on Heroku, using Amazon S3 to store the data files. A year ago when I first set River4 up the Heroku free account did not have the shutdown requirements it has today. Heroku announced the changes to <a href="">their plans</a> last fall but did not start enforcing them in July. </p> <p>I had forgotten about the changes Heroku was making until a month ago when I started noticing that my River4 server on Heroku was shutting down randomly unless I kept the River4 dashboard open. Apparently the free service is set up to shutdown if there is no inbound web traffic over a thirty minute span. I didn't have time to work on alternatives, so I decided to just sign up for the monthly hobby account, which at $7 per month isn't too bad.</p> <p>Over the last couple of weeks I have been exploring different cloud hosting options for a couple of reasons, one being that <a href="">I have been studying</a> <a href="">Docker</a> and using River4 as the subject for building my own containers. Another reason is that Dave is working on a refresh to the <a href="">EC2 for Poets</a> he wrote several years ago, using River4 as the topic for the tutorial on setting up your own server on Amazon Web Service based on a custom image he built, and I did some testing of the tutorial.</p> <p>EC2 for Poets got me wondering about other cloud services, and whether I ought to move my River4 server from Heroku to one of the other services. Yesterday I looked at <a href="">Azure</a> and <a href="">Google Cloud Platform</a> and found that Google has the most competitive compute prices. I figure you can probably run a River4 server on GCP for $5 to $6 per month, which is less than Heroku, AWS, and Azure. </p> <p>Another, cheaper option, is to buy a virtual server at <a href="">CloudAtCost</a>. CloudAtCost has <a href="">several plans</a>, for which you can pay per month, or "buy" a virtual server for a one time charge. Last year I bought a Developer 1 server on which I am hosting <a href="">Fargo Publisher</a>, which is the back-end to my blog publishing environment. Right now CloudAtCost has a 50% off sale, so last night I decided to buy a Developer 2 server, which has much more horse power than any of the instances I tested on AWS, Azure, or Google. </p> <p>I figure that while I can run River4 on this Developer2 server, I can also use it for any other DevOps software that I may tinker with in the future. Rather than install Node.js on the server, I have installed Docker to use <a href="">the River4 container</a> I created. I even went so far as to buy a domain to point at the server, <a href=""></a>. I had my new River4 server running in about 15 minutes, and I have switched my Heroku server back to the free service. </p> <p>After using CloudAtCost for a year, I am comfortable endorsing the service. My server has been pretty reliable, although there has been some maintenance that has caused me to do some unexpected reboots. The servers I host with CloudAtCost are solely for my use, so there is no real pressure to keep these servers running non-stop. </p> Sat, 29 Aug 2015 21:33:31 GMT River4 On Google Cloud Platform <p>My spelunking among the public clouds has lead me to the <a href="">Google Cloud Platform</a>, where I spied with my little eye <a href="">the Node.js instance and it's $4.49 estimated monthly cost</a>. The cost is not free, but I think it might be the lowest monthly cost for hosting River4 on a cloud server. Probably the only lower costs are either <a href="">the "free" node on Heroku</a>, with all its constraints, or the one time purchase of a server at <a href="">CloudAtCost</a>. </p> <p>I launched the Node.js instance on GCP and found that it is Debian with node.js pre-installed. To install River4, one can skip the Install node.js portion of the <a href="">Installing River4 on Ubuntu</a> instructions and start with Install forever, then Install git and finally Install river4, before moving on to <a href="">the River4 howto</a>, starting at step 4. </p> <p>I am aware that there are also images on Azure, and I am sure on AWS too, that already have Node.js installed as well as Docker. Consequently, the value here isn't so much that Google Cloud Platform has a pre-built Node.js image, but rather that the price to use it is lower than with Azure and AWS. </p> <p>You will need to open port 1337 in order to access the River4 site, it appears that something (perhaps node.js itself) is using port 80. I haven't done much research into disabling whatever is using port 80. In the Google Developers Console, click Networking, Firewall rules. Click New firewall rule, and enter the fields as follows:</p> <p>Name: allow-1337</p> <p>Description: Allow port 1337 traffic to access the River4 home page (this is optional, you could leave it blank)</p> <p>Network: default</p> <p>Source filter: Allow from any source ( </p> <p>Allowed protocols and ports: tcp:1337</p> <p>Then click Create. </p> <p>To find the public IP address for your site, on the Google Developers Console click Compute, Compute Engine, VM instances. You will see your instance name listed below a graph showing CPU utilization, and to the right is the External IP address. To access the River4 Home page enter http://[External IP address]:1337 in the address bar of your web browser. </p> <p>The Google Developers Console provides a button for SSH access to your instance, which opens an SSH session in a browser window. </p> <p>The GCP Node.js instance is based on the Google Compute Engine f-1 micro instance that can cost as little as $0.0056 per hour per month if you run the instance for a full month. Again, for comparison, the AWS t2.micro instance costs $0.013 per hour, so you can see the compute part of the cost is much lower. I expect there will be additional I/O charges add to the $4.49 estimated monthly price. </p> Fri, 28 Aug 2015 18:38:39 GMT River4 On Azure <p>I provisioned an instance of Ubuntu 14.04 in Azure to host my River4 Docker container, and it has been running for just over 20 hours with no problems. I am not sure how long I will keep this instance running, I may take it down at any time. <b>Update</b>: I have shutdown the instance and removed the link to it. </p> <p>There are a couple of things I like about Azure over Amazon. One is that they provide a relatively friendly DNS name for your site. While one can access the River4 home page via a public IP, I think DNS names are much more user friendly and Azure certainly makes that much easier. (Amazon will provide a public DNS but they tend to be really long, and in my opinion, un-friendly.)</p> <p>The other thing I like about Azure is that they provide a lot of nice, easy to use monitoring tools. In fact, I think the user interface of the Azure portal is much more friendly than Amazon. If you are at all interested in monitoring your River4 instance, I think Azure makes that much easier.</p> <p><a href="">On demand AWS Pricing</a> for a t2.micro instance, which is their smallest, is $0.013 per hour. If you go with a reserved instance for one year, you can get the price down to $0.009 per hour. <a href="">Azure's on demand pricing</a> for a basic instance, which is their smallest, $0.018 per hour. Azure billing rounds up to the nearest minute, while AWS rounds up to the nearest hour. </p> Fri, 28 Aug 2015 15:39:03 GMT