The remaining piece of the puzzle to moving to my own fargoPublisher server is getting the blog site to publish to a URL that is more friendly than the directory structure that fargoPublisher publishes to.

As currently exists, fargoPublisher writes content to [bucket name]/users/[outline name] and therefore, rather than being able to access a site at example.com, you have to enter example.com/users/test.

From how things work with the "default" pub.fargo.io configuration, it looks like the outline name should be the host name part of the fargoPublisher server and redirects automatically to the S3 bucket, but doesn't seem to work regardless of whether fpRedirect is true or false.

Here is an example:

  • URL pointing to S3 bucket: blog.frankmcpherson.org

  • URL pointing to my fargoPublisher server: frankmcpherson.net

  • An outline named sports is published to blog.frankmcpherson.org/users/sports/

Right now, to access the site I have to enter blog.frankmcpherson.org/users/sports/ but what I want, and what Fargo appears to expect, is to be able to access the site by via sports.frankmcpherson.net, but so far I have not found a way to make fargoPublisher redirect to the AWS bucket.

  • In other words, when someone enters sports.frankmcpherson.net, the server hosting fargoPublisher would seamlessly redirect to blog.frankmcpherson.org/users/sports/.

I did find a work around, but it is a little costly and I would need to figure out how to automate it to make it work. I created a S3 bucket named sports.frankmcpherson.net. (By creating a CNAME that points to that S3 bucket) and configured it to host a static web site. Next, I manually copied the contents of blog.frankmcpherson.org/users/sports to sports.frankmcpherson.net. After I manually made this change, all of the navigation and the Fargo buttons work as expected.

If I were to keep the workaround in place, that means I need to have two copies of my blog content on S3, and I need an automated way for keeping the buckets in sync.

Another note... the issue is caused by Fargo's support for publishing multiple blogs. I could configure fargoPublisher to write content to the root of the S3 bucket but that would mean that I could only write & publish one blog with Fargo as opposed to writing and publishing multiple blogs.

A thought... if there was a way to override fpHostingPath with a directive one could tell fargoPublisher to publish content for an outline to a specific S3 bucket to which I point to using a CNAME of the fpDomain. It means I would need to create a bucket for each blog, which I am willing to manually do (essentially each such S3 bucket is a web server hosting a blog), but it would mean that I would only need one copy of the content in S3.

07/15/14; 10:13:41 PM

Tonight I am going to try re-publishing one of my blogs to my S3 bucket to see if it works. First I am going to try by just changing the fargoPublisher server in Fargo without re-naming the outline to see if that works.

See my notes over on my fargoPublisher blog.

07/15/14; 07:45:19 PM

I have successfully created a new blog and made several updates. Main thing remaining I think is the navigation and Fargo links to the blogs hosted in my S3 bucket. Here is a summary of the testing.

I've browsed through the source code and after reading that Chris has moved the storage for his Fargo blog from Amazon to another site, I am thinking there is a problem with URL redirects to S3 buckets. I don't know how Dave is working around the problem. I am curious to see whether Chris is still running fargoPublisher or if he has come up with something else to copy the HTML content from Dropbox to another web server.

07/14/14; 02:41:14 PM

I did some work following these instructions written by Chris Dadswell for setting up my own Fargo Publisher server, and got it sorta working. No where ready for prime time though.

I did encounter an error with the instructions for installing node.js on Debian. After I followed the instructions, node.js was not running and the reason is that there is a step missing. According to the instructions I found on Github, the last step is:

  • sudo dpkg -i node_*

One thing that I do not understand is, what is the relationship between fpDomain and what you provide in the Server field of the CMS Settings in Fargo. Right now, I am seeing some intermittent results depending on what I enter in the Server field of CMS Settings. The instructions that Dave provides suggest they need to be the same, but that doesn't align with how I understand how everything is set up.

My confusion may be partly caused by what Dave refers to about domains for users accounts. As is the "default" configuration of Fargo, the URLs for published blogs appears to be a CNAME associated with smallpict.com. The CNAME is the same as the name assigned to an outline and most be unique per instance of the fargoPublisher.

For example, the name of the outline in which I am writing these notes is frank-notes and the URL to the published blog for this outline is frank-notes.smallpict.com. It looks as though in order for DNS to find the blog, a CNAME record of frank-notes is created for domain smallpict.com and is configured to point to [S3 bucket name]/users/[outline name].

Based on my understanding of fargoPublisher, I expect that in this set up fpDomain=smallpict.com and I would expect that would also be in the Server field of the CMS Settings in Fargo, but instead the default server is pub.fargo.io. Or in other words, Dave's instances of fargoPublisher is running on smallpict.com, but if that is true, then how is the Server field different, I think it has to be the same as fpDomain.

I may be wrong about smallpict.com and I am just seeing some DNS & CNAME usage to cover up the S3 bucket path to the rendered blog pages, in which case fpDomain is likely set to either pub.fargo.io or fargo.io. BUT the example deployment instructions Dave has on Github shows fpDomain as smallpict.com.

I think are more clues to piecing this all together are in the Github instructions and the Google group.

07/13/14; 11:11:43 PM

I am using the OPML Editor, created by Dave Winer, to run two web applications, Radio2 and River2. The OPML Editor is the predecessor to Fargo and is somewhat unique in that it is basically a Windows (and OS X) Server application. You can run it on a desktop computer and use the application's UI to create and edit outlines, but it also has a server component that servers HTML and executes code written in Frontier.

If the desktop computer has an Internet accessible IP address, you can access the applications, or tools, that the OPML Editor supports. I am running the OPML Editor on a Windows 2003 server hosted in the Amazon cloud, and it has been running well for me for more than two years. Because I run the OPML Editor on a server, I can access the Radio2 and River2 applications from any personal computing device on the Internet.

Radio2 is a linkblogging application that works pretty much like Fargo's noteblogs.

06/24/14; 02:13:23 PM

An ecosystem is more like a coral reef than a super market. All sorts of aquatic life depend on a coral reef for their existence and if that coral reef is destroyed most of the aquatic life that depends on it would also die. While I need a super market to buy food, if the super market down the street closes I can always find another one.

I see constant references to "ecosystems" in the context to shopping. The Apple ecosystem is based on the iTunes store where one can buy music and movies, and Apple's retail stores where one can get support and buy products that work with Apple's hardware. The Amazon ecosystem is its web site where one can buy books, music, and movies that can be played on personal computing devices.

In my opinion an ecosystem is more than just the ability to buy stuff, to me an ecosystem is about sustainability. Putting personal computing in context of ecosystems, can a user continually benefit from using a computer that improves their life? For me ecosystems aren't just whether I can buy books, music or movies, but also whether the information I need to grow and be productive is available to me.

Google is an information company that makes money by selling ads associated with information. Apple is a hardware company that makes money by selling the best hardware. Amazon is an online retailer that makes money by making it easy for users to buy stuff.

A coral reef doesn't exist to form an ecosystem, the ecosystem that forms around it is a consequence of its existence. In my opinion, Google is the only company of the three that has as a result of its primary purpose the formation of an ecosystem. It not only provides music and movies, but it also provides access to a wide range of information, from email to maps, to information on Google Now, to web searches.

I have many reasons to go back to the "coral reef Google" because my life involves more than just buying stuff. I need answers to the questions I have as I go about my life, and each time I go back to the "coral reef Google" to nibble on more information, "coral reef Google" benefits from my presence.

When I need to buy something, I usually go to the "supermarket Amazon" because I trust it to have the product I need at an affordable price and the company ships the product to my front door. Frankly, no device whether it is sold by Apple, Samsung, Motorola, or HTC is going to prevent me from shopping at Amazon.

Now we come to the challenge that Amazon has to over come in selling their Fire smartphone. The questions I need answers to occur much more frequently and at many more locations than my need to shop. If I am lost and need directions to the nearest store, I need those directions right now and I know I will find those directions by asking Google on my smartphone.

On the occasions when I need to shop, while it might be convenient for me to do so on my smartphone, I am most likely capable of waiting until I have access to a notebook computer. I most likely don't need to shop right now, and if I do need a product right now, I am going to the store for which I need directions to and not to Amazon's web site.

For most people the need for answers and information is more important than the need to shop. Android phones that have full access to Google's services are best suited for providing answers and information. Unfortunately for Amazon, it is also very easy for me to shop from Amazon on those same Android phones.

06/20/14; 09:52:22 AM

I am constantly on the hunt for the perfect to do list management application. My perfect to do list management application is multi-platform, allows me create tasks in an hierarchical or outline form, allows me to connect tasks items with Evernote notes, connects projects with Evernote notebooks, provides a way to export my data, and stores my data in an encrypted format.

So far, I have not found the perfect to do list app, most have a few of the features I want but not all. For example, I am use Evernote and am glad they added Reminders for notes, but it doesn't have much in the way of structure. What I would like to find is a outlining/to-do app that I can layer on top of Evernote too give it structure.

So, I have decided to give Todoist a try, it is multi-platform and has structure by supporting projects and subtasks.

What I like about Todoist:

  • Online presence. Todoist is very active in social media, providing insights into how to use the app.

  • Support. After I signed up for Todoist, I received a personal email from a person at Todoist, introducing himself and telling me I can contact him with any questions. I've sent a question, we'll see how quick I get a response.

  • Android widget. The widget provides a lot of flexibility to only display specific information. For example, I am able to only display next actions tasks.

  • Projects. Most people who need a to-do list app work on multiple projects. Too many of to-do apps simply provide flat lists. I am also finding that Todoist is easier to navigate to project tasks than Any.do.

  • Zapier Support. Zapier is a web application integration service, much like the popular site, IFTTT.com, and it has support for both Todoist and Evernote. By using this service I am able to send completed tasks to Evernote notebooks and notes, and send Evernote reminders to Todoist.

  • Gmail integration via Chrome extension adds a button that enables you to turn an email into a task.

  • Google Chrome extension adds the ability to add links to web pages as tasks, so if you are doing research relating to a web site, you can add that as a task to Todoist.

What I wish Todoist had:

  • Exporting data. So far, I have not found a way to export data, which is problematic. In my opinion all cloud apps need to provide their users with a way to get their data out of the app. I particularly want to export completed tasks for archiving.

  • Connectivity to Evernote. More and more apps provide some level of integration with Evernote, although in most cases I have found that integration to be lacking. Evernote has an API and with that I imagine it would be possible to connect Todoist projects and tasks to Evernote notebooks and notes.

    • While services like Zapier and IFTTT provide a bridge between apps, they don't function as well as direct integration. For example, I am using a Zapier "zap" that adds new reminders I create in Evernote as tasks in Todoist. When I check the task off as done in Todoist, that indication of completion is not shared back to Evernote, I have to also check off the reminder in Evernote. If there as a direct relationship between the Todoist task and the Evernote reminder in such a way that their status was in sync, it would be possible to check off an Evernote-linked Todoist task one time and see the reflected in both apps.
  • An IFTTT.com channel. IFTTT is a popular web application integration service, that enables you to move data between applications, or what it calls channels when certain events occur. Zapier is similar service, but unlike IFTTT that is free, it costs money if you heavily rely on its services.

06/17/14; 05:52:00 PM

For some reason the menu bar of my Sports Beat blog has disappeared. Curious minds wonder why.

Ah ha, apparently a menutitle directive is need. I wonder if that is new?

06/11/14; 02:51:08 PM

Chrome developer build 36 has a bug that is causing links you click to open in Twitter to not load. What is happening is that I open Twitter, browse through items in my feed, and if one has a link to a web site, I click the link, a new tab opens, it looks like the page is loading, but eventually it stops loading and all I see a is a blank tab.

I reported the problem that I was having to the Google Chromebook users group (I was seeing this behavior on a Chromebook) and got responses that it was a known bug in build 36. I assume the problem occurs with any web site that is set up to direct clicks on links to open in a new tab or window. For me, I do this most often from Twitter.

My options are to either live with the problem, or step up to either the beta (Build 35) or stable (Build 34) Chrome channels. I decided to revert back to stable, because switching to either results in a Chromebook powerwash, which wipes the Chromebook.

My encounter with the bug coincided with my installing some new extensions, particularly Chromecast, Motorola Connect, and Sunrise. At first I was pretty sure the problem was being caused by Chromecast, but disabling and then uninstalling it did not fix the problem. Neither did removing the other two extensions.

After futsing around with the problem, I posted the issue to the Chromebook Google group, which lead to the feedback about the bug. I wished I had posted the issue on the group right away, I struggled with the problem for several days before doing so.

05/15/14; 11:24:23 AM

What time is this posting at?

Notes:

  • siteTimeZone directive set to -4

  • Computer is in Central Daylight Time

  • The rendering time for this post is one hour ahead of when it should be. I am writing this at 10:58 AM Central Time, it is rendering as 11:58 AM.

The theory: the date title rendering issue on my linkblog is related to what time zone my computer is set to.

05/13/14; 11:56:24 AM

Last built: Wed, Jul 16, 2014 at 9:45 AM

By Frank McPherson, Wednesday, July 16, 2014 at 9:45 AM.