Wednesday 25 July 2012

R144–R148 – VM implementation advances

The're were two trivial changes adding and deleting an email address file. The intent was to use it on the sternons project page. It failed.

The purpose of the following restructurings is to prepare image program structures, that can be executed by an interpreter:

  • r148 (Jul 25, 2012): Refactoring 10: VM prep – this revision removed arguments from functions in image.[ch] in order to adapt to the intended map format, where an image is first created and then its values set up;
  • r147 (Jul 20, 2012): Refactoring 9: VM prep, minor, completed the setup of static image program structs;
  • r146 (Jul 20, 2012): Refactoring 8: VM prep, setup Monoceros code into a static image program struct;
  • r145 (Jul 20, 2012): Refactoring 7: VM prep, setup Orion code into a static image program struct;
  • r144 (Jul 12, 2012): Refactoring 6: VM prep, added a few missing map files, otherwise a massive rewrite where VM-embryonic function calls were replaced by program structures containing the VM-codes.

Sunday 3 June 2012

R143 – Added release plan

Also added a release plan sketching some most important things needed to be able to run an OpenSource project much more elemental than personal home hacks (such as my glossary checker, text editor and such private experimental stuff).

2013-04-25 update: note the discrepancy between the 0.0.1 R143 and the R130-R141 – Heavy refactoring 0.0.1.0, which was originally 0.1.0! I conventionally choose 0.0.X.R for alpha stages, where R is added in order to get in a revision.

R142 – Refactoring 5

Preparing the VM yet another time by refactoring in revision 142. Now the code is prepared for storage in short ints, which is going to be the storage format for the virtual machine. The storage of the literals is yet undetermined.

Sunday 20 May 2012

R130-R141 – Heavy refactoring

Apology – database exam

Not reported about the development for a while. I studied for an SQL Server "exam" on the MCITP (Microsoft Certified IT Professional) level, meaning that I have a hunch on what might be wrong, how to diagnose it and probably fix it when an Microsoft SQL Server fails. I like database, but I'm not knowledgeable to compare different RDBMS:es (Relational DataBase Management System, the English language favors ridiculous acronyms before Swedish-styled noun clusters like relationsdatabashanteringssystem). The only thing I know is that MySQL is the only one specifically built for massive load-balanced active/active access clusters, while something similar might be achievable through Windows Server Clustering, rather than RDBMS clustering. Regarding PostgreSQL, it's on the same level as Microsoft SQL Server, which means less than MySQL.

The refactorings

My mind flerped about two days ago, meaning that my passivity regarding mkmap ended. I had previously decided that any refactorings should come before 0.0.1.0 alpha stage, but adding a few intended VM code executors, I finally (reluctantly) decided that

  1. a VM was necessary because of my way of defining maps first, modifiying them afterwards, and only then executing them,
  2. while register VM:s are generally regarded faster than stack based, the code becomes simpler perusing a stack based VM,
  3. I must refactor and cleanup to get an overview over my program (other than the usual intuitive one).

The flerp implied that I on a whim moved away all code into CH program pairs, making a so called "object orientated" packaging of most functions according to their main struct ("object"). In spite of the hybris speach of "object orientation", this is more like stupid packages without interfaces.

  • r141 (20 maj, 2012): Refactoring 4: ch-splitoff most
  • r140 (19 maj, 2012): Refactoring 3: ch-splitoff much
  • r139 (19 maj, 2012): Updated copyrights to 2010-2012 (in lead comment of all c- and h-files)
  • r138 (19 maj, 2012): Added missing GPL copyrights (in lead comment of relevant c- and h-files)
  • r137 (19 maj, 2012): Refactoring 2: ch-splitoff valstack (the first of the real splitoffs)
  • r136 (19 maj, 2012): Refactoring 1: renaming methods (preparative for valstack splitoff)
  • r135 (19 maj, 2012): Moving mkmap towards VM executor – it was here that I finally decided that there was no way to avoid implementing a VM before alpha 0.1.0
  • r134 (19 maj, 2012): New string type for MKMAP programs with UTF-8 characters
  • r133 (17 maj, 2012): dummy change to fix my locally changed gnome keyring (on Linux)
  • r132 (17 maj, 2012): More preparations for virtual machine code
  • r131 (24 feb, 2012): Preparation for virtual machine code
  • r130 (24 feb, 2012): DB fixes, preps and new map format

Future

The goal 0.0.1.0 alpha is reached when maps can be prepared for all official 88 constellations. In order to achieve that, the parser in parse_prog2 should be able to parse programs like maps/generic.mkm and generate VM code from them, while mkmap takes VM code and executes it to generate SVG. parse_prog2 is not complete, but the most of the necessary data structures are there. mkmap does simply and stupidly generate Orion and Monoceros as it has been for a couple of years now, but the state when it's able to run VM code is slowly approaching. I'm a little frustrated, but in time...

Sunday 12 February 2012

Free PC Speed Test

Here behold the ultraphantastique Free PC Speed Test it disables a lot of "unnecessary" operating system features, such as the ridiculous IPv6 ...

I recommend not using it, unless you want to reinstall your operating system (I mean Windows, optimizing Linux is more complicated) when you discover that this or that disabled feature is necessary for the operating system to work in the future.

The normal way to optimize Windows 7 safely is to disable unnecessary GUI features by opening Computer Properties, entering Advanced system settings and clicking on Performance to regulate in detail the visual effects. Some of those effects are neurophysiologically advantageous, such as windows' shadows and font anti-aliasing, but most of it is visual blows-and-whistles of no use.

Wednesday 1 February 2012

Nice and tolerant advocacy

Here's Paul L. Rogers' Canons of Conduct that I recommend for any kind of advocacy:

Tuesday 3 January 2012

JavaScript rage

To my horrified surprise, both Windows 8 and Gnome 3 intends to use a JavaScript engine for Silverlight (Windows) and Gnome shell (Gnome 3). Good luck to them, when hords of furious users ragingly will attack them in order to lynch them – but I'll silently be walking in another direction.

About Gnome 3, take a look here:

JavaScript is the language that eats all your memory when you surf with a web browser, it is designed to make massive memory allocation for ordinary execution, but it garbs only when the memory starts to be consumed by the JavaScript engine. Of course this competes with all other programs on your computer: a nonimportant program, such as the web, eats up resources for important programs. Fair? No! Polite? No!