This is the August 2015 in review post. The previous monthly review post is here. The contents are:

Sysadmin scripts with Node.js/JavaScript

I’ve been playing with Node.js, mostly using the synchronous version of the API1 to write system administration scripts in JavaScript with the package shelljs. One of my goals is to replace most of my sysadmin and short scripts written in UNIX shell and Python with Node.js programs. I currently keep the (public versions of the) scripts in this repo.

Project Syspol

Inspired by the Rule of Separation in Eric S. Raymond’s book The Art of Unix Programming, I created the project Syspol (System Policy). The purpose of Syspol is to define a cross-platform system policy for applications and environments to implement partially or completely, therefore reducing design efforts in such programs and environments.

Syspol will describe resources that an environment or program module should provide in order to be Syspol-compliant, including environments variables and scripts/commands. Patterns for common services will also be defined, for example logging, program configuration, input and output, etc. A program or system can seek to implement certain features of Syspol instead of having to implement it completely.

I think of Syspol as a way to standardize my own thinking so I spend less time making design decisions when I’m automating things on my different environments. I won’t be trying to reinvent the wheel, instead I’ll be adopting common and proven practices specially from the Unix culture.

During the initial phase of project Syspol I expect that most policies will be about operating system environments, mainly environment variables and functions/scripts.

Fun with DNX and C#

In order to practice software engineering skills and ASP.NET 5 application design, and also just because it’s fun, I created two new .NET projects.

Data Structures and Algorithms in C# is a project to implement common and custom data structures and algorithms in C#; while Software Engineering Problems in C# is a project to publish solutions to software engineering problems and puzzles. Each of them is a Visual Studio solution with multiple DNX projects, including unit tests with xUnit.

Philanthropy

I made a small donation to the Machine Intelligence Research Institute to help with their Summer Fundraiser. At the time of this writing the fundraiser had already ended.

Folding@Home during August I scored approximately 15,000 points and ranked 48th of all the members of the The Longevity Meme team. A graph of total daily production history for August can be found here.

Other

Now that most of the house remodeling at home is done, I have been moving back all my stuff to the study and bedroom. The remodeling has made some of my things very dusty so before moving them back I had to thoroughly clean them. Starting the last week of August I’m again working full-time on my workstation and it really feels great to be back with full productivity.

Finally, I started to process paperwork at UANL in order to get my Master of Engineering Degree, in Information Engineering. According to the university’s authorities the administrative process will continue through September.



  1. I know, I know… where Node.js really excels is asynchronous programming. But for the moment I don’t need to program network server stuff with JavaScript. And really, very few of my sysadmin needs would benefit from concurrency.