Returning to the Moon: Orbital Resupply Glitch

With achievement of Disqus commenting and connection of the About and other pages,  it is time to put the Hexo-generated pages as the default for Spanner Wingnut.

Throwing the switch involves copying the generated public/index.html page to public/default.htm so that the uploaded public/ material will be served as the default.  To avoid loss to the previously-generated Movable Type content, that is all backed-up and the last of those front pages is now at wingnut/default.mt4.htm.

The only problem is that added copy operation in my tidygen.bat script was not executing.  In fact, all of the script following the script’s hexo generate command is not executed.  That was an eyebrow-raiser before, and now I had to resolve it.

The Hexo command is itself implemented by a batch script, hexo.cmd.  CALL must be used in order to have exit from hexo.cmd to continue in the tidygen.bat script

I found where command hexo is located in the command-line search path and confirmed that it is implemented by a batch script.  hexo’s exit ended tidygen.bat also.  The remedy is to use the CALL batch command so that there is proper nesting and return.

And now, deployment will properly update the hosted-location of the Hexo-generated blog as the current implementation for Spanner Wingnut’s Muddleware Lab.

Posted in Blog Development, blogs, Golden Geek, Spanner Wingnut, Toolcraft | Tagged , , | Leave a comment

Returning to the Moon: Mapping Probe

With the Hexo static-page generation scheme, each page/post is in a (sub-) folder with its permalink name and an index.html file to be served as the page.  This allows other artifacts/assets to be in the same folder.  That’s handy for page-specific images and for other special content.  It works very well for how I prefer to organize web-site pages into what I refer to as individual folios.

Rethinking the Terrain

I successfully established a page/folder for “About” and also demonstrated that I could create sub-pages on the same style.  Rethinking, I refactored the about/ folder to be hexo-about/   and I qualified the sub-structure also.

The hexo-about folder carries its default index.html page , collateral files, and two subfolders concerning the hexo customization for spanner and the landscape theme customization

Renaming to hexo-about/ is a precaution in case this blog creation scheme is supplanted by yet-another.  I want the Hexo-generated blog preserved side-by-side, just as this one sits side-by-side with its Movable Type and Blogger predecessors.  The assets and substructure are for preserving artifacts and narrative about customizations in case I need to re-create them.  I have them under source-control, but I want them accessible on the Internet just-in-case.   This pattern applies to restoration of all nfoCentrale blogs for which Spanner Wingnut provides the pilot demonstration.

Updating the Maps

Although the about/ and now hexo-about/ pages are generated now,  “About” links on the front page and the archived posts are needed.  I continue relying on advice by John Stevenson, this time for adjusting the navigation bar.  It is the landscape theme _config.yml that is updated.

The menu caption and link are added to the annotated theme _config.yml by adding the item under the existing "menu" item.

In order to confirm the change and also perpetuate it to all content, a clean regeneration of the public content is performed.  Uploaded content demonstrates the changes.

Generated web pages now have the correct "About" link in the menu "navbar" at the top of page headings.

Here There Be Sea Serpents

It is tempting to “go live” and change the generation procedure to take over the Spanner Wingnut default page.  I’ll not do that just yet.  There are too many empty spaces remaining to be explored and mapped.

  • There are remaining changes that will require complete regeneration of all content as part of their implementation.  That makes going-live premature.  I want a place where only new pages need to be uploaded, since all thematic changes are in effect.
  • The additional changes are ones that I must perfect in order to be able to apply Hexo to the restoration of production blogs.  Restoring Numbering Peano is the benchmark. 

My TODO lists are managed in the narration of configuration materials and related files.

Comments at the end of the theme's _config.yml file provide TODO items  and customization version history notes.

I also don’t know how accessibility requirements are addressed.  It is exciting that the blog pages are now responsive and some of the features, such as the hook-in of Disqus, work beautifully out-of-the-box.  I seek more of that ease in adjustment of other features.

Posted in Blog Development, blogs, Golden Geek, Spanner Wingnut, Toolcraft | Tagged , , | Leave a comment

Returning to the Moon: Coms Chatter

I’m now seeking small changes that give me important improvements in the Hexo-generated revitalization of Spanner Wingnut’s Muddleware Lab, still in proof-of-concept position.  

Tracking down some great tips by John Stevenson, I am eager to confirm a one-liner configuration change to enable comments.

Adding the single line with disgus_shortname and the label assigned by Disqus is enough to cause generation of comment forms and information.

The addition is in the top-level _config.yml file in the spanner/ authoring folder initialized by Hexo.

After a clean generation, I found this great arrangement fully operational.  First, the bottom of the generated home/front page has a count of comments and a link. 

Scrolling down to the bottom of the blog front page (the latest post) provides a comment tally and a link to the permanent/archived page.

At the bottom of the persistent/archived page, the latest Disqus information will appear after a short spin.

The entire comment areas are generated on-the-fly by Disqus.  The stored web page is not actually touched.  There are different ways for commenters to authenticate themselves, and all visitors can observe the comment threads and related suggestions from Disqus

The provision of comment blocks also appears automatically on fixed pages, such as About and any others created in conjunction with the blog.

This is a great little-effort achievement using the Hexo-initialized authoring folder and the default theme.

Happy Dance.

Posted in Blog Development, blogs, Golden Geek, Spanner Wingnut, Toolcraft | Tagged , , | Leave a comment

Returning to the Moon: Project Inspection Report

Following some serious scrutiny and confusion over nomenclature, I managed to disentangle use of wingnut/ as the folder having the refactored blog creation and wingnut/ as the full authoring folder in which the blog is produced from just the public/ subfolder.

The solution is to use spanner/ for the complete, Hexo-supported authoring folder.   Now wingnut/ is used exclusively for the generated static pages produced in spanner/public/ and uploaded to the hosted-site blog folder.

While refactoring my various accounts to reflect the new division between development folder and the developed blog, I finally added a script, tidygen.bat, for cleaning up and then generating changed/new static blog material.

tidygen.bat produces a display of its cleanup operations and then the generation of pages having new/updated content.

I have adopted a common format used for other Windows batch scripts of mine.   The tidygen.bat file provides error checking and important checks on where it is being run before doing anything potentially destructive.   The script is now available for additional generation and deployment customization.

As part of restructuring, I am also using the blog’s About folder to carry auxiliary files providing a persistent public account of the work and its dependencies.  Some of these are mirrors of development files (such as tidygen.bat and NOTICE.txt) along with links to other web-published information.

Posted in Blog Development, blogs, Golden Geek, Spanner Wingnut, Toolcraft | Tagged , , , , | Leave a comment

Returning to the Moon: Flight-Computer Fault

Previous testing reveals some menu titles defaulting to Russian even though I have specified “enat the top Hexo level.  The same titles appear in English on the front page of the blog.

Localization happens at the theme level.  I had noticed that wingnut/themes/landscape/languages/ has no en.yml file, but default.yml provides English titles.

Code Monkey See, Code Monkey Do

I have no desire to dig into the code.  On the off chance selection of default.yml is defective, I tried the first thing that came to mind: making a copy of default.yml renamed to en.yml.

Copying the default.yml localization file to one named en.yml appears to solve the problem.

Problem solved, apparently.  I am not thrilled about this kind of chewing-gum and duct tape try-it-and-see-what-works approach.  I’d be more content understanding what happened and whether there is a fix that is needed in Hexo or the landscape theme.  I’m not competent to invest in that right now.  Maybe some day real-soon-now.

Still Puzzling After All These Days

I do not know the connection between the localizations and where they are used.  Where are the generic terms employed that localization finds and replaces them?

The language-specific files provide no clues. 

I want to add an “About” menu item and have that entry link to the wingnut about/ folder that I have now produced successfully.  In looking for the least that can possibly work, perhaps I will learn more about updating the localization files.

Meanwhile, the English/default localizations don’t reveal much.  I am prepared to version control and annotate them about this, though.

Posted in Uncategorized | Leave a comment

An Emoji by Any Other Name …

My relatives have been sending out text messages with emoji’s in them.  I decided I couldn’t resist any longer.

Created by bitemoji and pasted from the Google Chrome browser

bitmoji works in techology I don’t use.   The way I am using it is with the Google Chrome plug-in, but ability to copy and paste a chosen emoji scene pretty much anywhere I want, such as this blog.  I will see if it works at all well in Facebook Messenger, where I also see them from others.

OK, OK.  I have a bug in some applicative-machine code and I am shirking.  … Back to work.

[update: 2017-11-01T15:25Z correct the bitmoji link]

Posted in Golden Geek | Tagged , | Leave a comment

Reactive Systems and Software Fire-Drills

In contrast with the fault-injection aspect of failure testing, the ACM Queue case-study article on the Hootsuite reactive system evolution is more understandable at a 40,000-foot level.  There are a great many architectural and software-engineering organization and process considerations in how the system evolved over time.  What stands out for me, among all of this, is the observation that the investigated platforms “appear to be the only platforms or libraries that put an emphasis on embracing and managing failure – which is to say they’re basically designed for resilience.”

After pondering the notion of fault injection, still to no meaningful conclusion, I recalled that I had undertaken something that might have some kinship with that idea.

Automatic Software Fire Drills

In the mind-70s, colleague Dick Morse and I were pondering about how to ensure that failure modes were operating and resilient in a distributed communication system.  The nodes were connected using bisync over leased lines, and the concern was integrity of end-point to end-point communication with a protocol layer above that level.

The idea was to have ways where a node could, from time to time, automatically force an exception case  within the assured-delivery procedure in order to cause a resilient recovery.   Recovery was expected, and this was a way to design in its demonstration and logging of its success.   We had the idea that this might help avoid the Maytag syndrome too, since network operators would observe actual fault-handling.

The extension of the private protocols was overtaken by advances and changes in communication technology and the fire-drill mechanism was not implemented for the distributed system.

Impacting Design Thinking

That did not prevent my using the idea in local communication arrangements at branch-office end-points though.  I designed new software for management of terminal controllers in the offices.  The idea of software fire drills informed that design and I had a means to safely force certain kinds of recovery at the office minicomputer so that terminal displays would be reattempted and recovered.  This would be noticed but the outcome would be benign.

Ultimately, I did not have to enable the fire drill.  The equipment we used failed often enough that there was no need for drills.   The home-brew connection between the minicomputer and a separate, closed-firmware multi-terminal controller was also so limited that the minicomputer could not diagnose and reset the controller, it could only gracefully shut down terminal requests and allow the terminal-using applications to do likewise.   I credit the influence on design thinking that the actual faults were handled resiliently as much as the equipment allowed.

Original Inspiration

In the late 60s, Sperry Univac was bringing up its own operating system on its System/360 plug-compatible processor, the Univac 9400.   For software development on prototype hardware, the developer system used IBM disk drives.   On replacement with Univac’s early-production compatible disk drives, the operating system began crashing.

It turned out that the IBM disk drives were so reliable that the failure cases in the operating-system disk drivers had never been exercised.  Unreliability of prototype OEM drives exposed the fact that the OS error-handling had never been tested.

I don’t know how ideas about fault-injection could have been applied in that case.  All I could conclude is that one should design for being able to cause error paths to run benignly, perhaps on demand, in the production system.

I supposed this experience also lurks behind my insistence that all development testing be done on production builds and that developers do not test anything different.  That has a desirable impact on how software is developed in a form that allows operation to be demonstrated and confirmed in production. 

This has arisen in my current thinking around development and verification of interactive PC games.  I just realized the connection.

Posted in Computers and Internet, Golden Geek, Miser Project, nfoWorks, trust | Tagged , , | Leave a comment