Here is an overview of how I have set up and use Fargo:

  • Fargo Publisher is hosted on a Linux server, with node.js running publisher.js.

  • I have an AWS S3 bucket hosting the content rendered by publisher.js, and the appropriate environment variables set as described in the instructions

  • My ID for fargo.io is configured to use my instance of Fargo Publisher at pub.frankmcpherson.org

I access fargo.io, log in with my Dropbox credentials, open my Fargo outlines stored in Dropbox. When new content is to be rendered, publisher.js running on pub.frankmcpherson.org is used, which renders the content and puts it in my S3 bucket.

The A name record for frankmcpherson.net points to my Linux server hosting Fargo Publisher, which is actually the same server that pub.frankmcpherson.org ponts to, and Fargo Publisher handles named outlines by pre-pending them to frankmcpherson.net.

06/23/15; 12:25:05 PM

Think of this as "thinking out loud." I am in the process of thinking this through and my logic might be flawed or there might be a better way, if you are willing to share please post in the comments below. Here is an overview of my configuration of Fargo Publisher.

I am thinking about how I can simplify the way that my Fargo blogs are hosted on the web. The problem with my current set up is that accessing my blogs, such as this one, requires two servers. One server, which hosts my instance of Fargo Publisher, servers as a front-end to the content of my blogs that is stored on AWS. The second server is the S3 bucket on Amazon in which the content for my blogs is stored.

I think that Fargo Publisher is also the web server for my Fargo blogs, therefore if Fargo Publisher is down or the server hosting it is not accessible, my blogs are down. Every time there is an outage, I need to log on to the server hosting Fargo Publisher and restart publisher.js.

The problem is, if I am not available how can Fargo Publisher be restarted? I could script the start up process so that publisher is automatically loaded whenever the server is rebooted, but that still requires someone to reboot the server. Even if I move the content to the same virtual server that is running Fargo Publisher, I still have the challenge of having to start up publisher.js or rebooting the server.

  • It occurs to me that part of the complexity I have created is due to my hosting node and publisher.js on my own virtual server as opposed to Heroku. I have the impression, perhaps wrong, that Heroku handles server administration much like Amazon does. The problem is that I have to pay more for Heroku to host publisher.js than the one-time price I payed for my virtual server.

I like the idea of hosting web sites on Amazon S3 because it practically removes the need for server administration. I don't know how Amazon provides the web server, but what I know is that I can simply configure a S3 bucket to host a static web site, and then I can access the site from a browser. It seems to me that web sites hosted from S3 will stay up forever so long as someone pays the bill for the S3 bucket, Amazon will handle all the server administration.

I have a CNAME of one of my domains pointing to the S3 bucket that hosts my Fargo content, and I can use that CNAME to access the content. Keep in mind this is a different domain than the one that I use to access my Fargo sites today, which is frankmcpherson.net.

For example, the public URL for my main Fargo blog is webnotes.frankmcpherson.net and I can access the content of this blog directly from the S3 bucket with the URL blog.frankmcpherson.org/users/webnotes/. The problem with accessing the S3 bucket directly is that down level links to the pages rendered for a day is expected to be off the root of the domain, for example http://webnotes.frankmcpherson.net/2015/06/23/. What happens when I click the link of the page loaded from blog.frankmcpherson.org/users/webnotes is that the server expects the page to be at blog.frankmcpherson.org/2015/06/23, which does not exist, the page is at blog.frankmcpherson.org/users/webnotes/2015/06/23.

The issue I am bumping up against is the folder structure that Fargo Publisher creates on AWS. Fargo Publisher knows where everything is supposed to be located and does the proper mapping. It appears to me that if the webnotes folder and all subsequent subfolders and content were copied from the blog.frankmcpherson.org S3 bucket to the root of another bucket, and that bucket was accessible via an domain name (or CNAME) I would be able to access the content as I desire.

I am going to test this theory by creating another bucket, copying over the content, and pointing a CNAME at it to see what happens. If I can make this work manually I then need to find a way to synchronize the content in a folder of one S3 bucket to the root of another S3 bucket so that any additions and changes I make to my blogs are automatically sent over to the hosting site.

06/23/15; 11:27:58 AM

Over tphe last couple of weeks I've bought a Phillips Hue starter kit with 2 Lux (white only) light bulbs and one Hue (multiple color) light bulb. I am having all sorts of fun playing with the lights and programming them using IFTTT.

I can create recipes to change the Hue lightbulb color, but I have found that "change" is not literal, by this I mean that if the bulb is turned off and the recipe triggers, the light turns on to the color you select. To me, "change" means change the color if the light is on, but if it is off, don't do anything.

Basically, what I want is for the light in my home office to only operate when I am actually in the office, but if I am not there, such as in the middle of the night or on the weekends, then I don't want the light turning on. I can narrow a recipe down to a specific day and time of the week, to rule out the lights going on during the weekends, but there is nothing I can do right now about if I am not in my home office during the week.

Here is an example, there is a IFTTT recipe to change the Hue lightbulb color to blue if it is raining outside. Being that my home office is in the basement where there are no windows, I think this would be a handy recipe to use. However, since "turning lightbulb blue" means "if the lightbulb is off, turn it on and set it to blue" the recipe will turn on the light, and keep it on, even if I am not in my home office.

The problem I am running in to is that while IFTTT is very handy, it is pretty simple because doesn't support conditionals. What I want is something like "IF its raining outside AND its between 9 AM and 5 PM Monday thru Friday THEN turn the lightbulb blue." Even if I had a proximity sensor that could detect my presence in the room, without a conditional item that keeps the light from turning on, I am out of luck.

One thing I could do is physically turn the light off, but that defeats the purpose of having a wireless "smart" light.

Beside my conditional control issue, I am thinking about how I can use a Lux light in my bedroom. I like the idea of having a bedroom light automatically turn on every evening at sunset, or at some set time. The issue is turning the light off if my wife goes to bed before me because she will want to run the light off. I either install the Hue app on her phone and show her how to turn off the light (and I could create a widget) or tell her to physically turn the light off, but then I would have to remember to turn it on each morning in order for the "automatic on" to work.

I could buy a Hue Tap, but $80-$60 for a physical switch is awfully expensive. I think I read an article saying that Phillips was going to be selling a lower cost physical switch which I could wait for.

06/19/15; 03:38:05 PM

I am re-purposing my old WordPress blog into a supersite of some of my social media and blog posts, all automated by IFTTT. WordPress does have problems with title-less items like tweets. I am wondering whether I should publish what I put on Facebook on that site.

06/18/15; 04:31:14 PM

Thanks to Jeffrey Kishner, I now have a script in Fargo that exports a Fargo top level node and its child nodes as a plain HTML document. The top level node is the document title, with a corresponding H1, and all the rest of the content are paragraphs with any associated HTML for links and images.

The original source exported the items as an unordered list, but it was pretty straight forward to edit it to put in paragraph tags rather than list item tags.

06/15/15; 06:04:54 PM

I am greatly enjoying the Amazon Echo that I have in my basement home office. In particular, I enjoy the ability to control my Phillips Hue lights by voice command: "Alexa, turn on living room light." Unfortunately, Echo sits in the basement and therefore I cannot ask it to turn on the living room light unless I am carrying its remote.

I wish that Amazon would enable the Echo app to be a remote control, particularly by voice commands. I carry my smartphone everywhere, so chances are good I will have it with me when I want to turn on the lights. The remote is not as convenient as speaking to Echo because I have to push a button, but Google also provides a way to integrate with Google Now and Voice Search so there could be a way. I am imagining at the least pushing a button in the Echo app and saying "turn on living room light."

By the way, this is such a Star Trek moment. If Amazon would allow me to configure Echo's hot word, I would change it to "computer." (Make this my third wish)

For bonus points, Amazon could make an Android Wear version of Echo that would enable Android Wear to be a remote control for Echo.

Speaking of my living room, in it I have a Bose Soundlink bluetooth speaker that we use with our smartphones and iPod for playing music. I am enjoying streaming Prime Music with Echo in the basement, but what if Echo could pair with the Soundlink and use it as a speaker? I could say, "Alexa play prime top country playlist in living room" and the Echo connected to the Soundlink and started playing music in the living room. Echo could be a poor man's Sonos.

The bottom line is that I think Echo could become Amazon's most important product if it becomes integral in how we use our homes. However, Amazon does need to have a plan for homes like mine with multiple floors, and buying a $200 Echo for each floor is not a solution.

06/11/15; 08:19:35 AM

Connected the Surface 3 to the Microsoft Wireless display adapter, which uses Miracast, and discovered that it displays at a very low resolution (1366 x 768) on my HP EliteDisplay S240ml. Found out that others are having the problem, and turns out to be some type of conflict with Bluetooth. Turn bluetooth off and I can then get 1920 x 1080 display.

According to the support thread, the issue has to do with the latest Intel video driver for the Surface that for some reason is dropping resolution down to 1366 x 768 whenever it detects a bluetooth device other than the Surface Pen is connected.

The solution is to either turn bluetooth off or not use any devices other than the Surface Pen.

I can report that any time I connect a bluetooth device, or even turn it on or off, the wireless display disconnects. What this means to me is that for now I cannot use the Logitech k480 keyboard with the Surface if I want to connect the Surface to my monitor via the wireless adapter.

My workaround is to use the Logitech mouse and keyboard that connects via a USB dongle with the Surface. The result is that I have keyboard, video, and mouse all wireless attached to the Surface even if to do so requires a little work on my part to plug in the USB dongle.

An interesting side note. If you turn off bluetooth you can still use the Surface Pen with the Surface. I imagine bluetooth only needs to be on for the initial pairing. UPDATE: I discovered that the top button on the Pen uses bluetooth. If bluetooth is turned of the top button on the Pen does not work.

One more issue, there doesn't appear to be a fast way to make the Miracast connection from the Surface. The Windows key+P combination to project does not provide an option for wireless display; It should. The fastest approach is to go to the Start Screen and start typing wireless, which will bring up a search box of all wireless items on the Surface, including connect to wireless display.

06/08/15; 05:23:46 PM

I set up one existing notebook to be set up as a project in Todoist. While the notebook appeared in the Todoist projects list nearly instantly, it took several hours before the reminders appeared. Subsequent items did appear much faster.

The Evernote reminder titles appear in Todoist as an active link to Evernote, which is indicated by an Evernote icon. I click the link and the Evernote web app loads in a new tab but it does not take me to the note, instead I am seeing the entire Notes list.

Clicking an Evernote reminder/task item in the Todoist Android app loads the item in the Evernote web app rather than in the Evernote Android app. It would be much better if it opened the item in the Evernote Android app.

I am not able to set up a second Notebook to sync with Todoist.

  • First, I load the Todoist Powerapp site and log in.

  • Click Edit in the Evernote Sync item on the dashboard. The Evernote Sync options appears.

  • Click the slider next to a notebook that I want to sync.

  • Click Save. Nothing happens.

  • Click back to the dashboard, then go back in to the Evernote service and observe that the notebook selection that I made did not stick.

  • I tried clicking sync now, get a message that Evernote sync will be scheduled. However, the slider next to the second notebook that I selected is back to the off position.

  • I've been testing this in Chrome. Thinking perhaps it will work with Internet Explorer, but I see the same behavior.

06/08/15; 01:25:33 PM

The conference is starting soon. I wonder what new things Apple might announce?

WatchOS = Apple is distinguishing iOS from watchOS. Apple loves lower case.

Magnify the mouse cursor so one can find it easily, and the crowd goes wild.

Apple has updated OS X to match features found in Windows and other operating systems. IT'S ABOUT TIME!

And Siri is going to be more proactive. Where have I heard that before? Cortana? Google Now? I do think that Google needs to give Now more ability to control the device

At the time that Google switched to "Android Pay," Apple renames Passbook to Wallet. Although, Google Wallet still lives and I think is mostly about loyalty cards.

Lower case letters on the iOS keyboard? They also added made it easier to work with external keyboards.

Split screen/multi windows is called Slide Over, slide in from the right. The demo is being shown with the iPad being held in landscape.

Apple is open sourcing Swift. And the developers go wild!

iOS 9 will be available for just about ever iPad and iPhone that people are using. Beta is being released today.

I wonder how much that picture in picture feature will actually be used on an iPad?

One more thing.... Apple (logo) Music. Apple is bringing back radio, making it global with real DJs. I wonder how much advertising that 24/7 global radio station will have? Social network for artists and fans. This Apple Music part of the keynote is painful to watch. Wonder if Steve would let this happen?

06/08/15; 12:02:00 PM

Last built: Wed, Feb 17, 2016 at 3:26 PM

By Frank McPherson, Monday, June 1, 2015 at 9:31 AM.