“Automatic transformation of XML namespaces” specification

Automatic transformation of XML namespaces specification releases its first draft.

From the specification:

This is a preliminary rough draft. There may be errors, omissions, and logical inconsistency. There should be added more formal explanations (not just examples as now), more examples, and more explanation. The standard may change.

However, the first draft is released and it is a complete specification, which should be formal enough to write an implementation. (I am going to write an implementation in Ada.)

Note that for this to be practically useful, we need a robust sandbox (it is proposed for Linux).

Advertisements
Posted in Programming, XML | Leave a comment

My writer’s block is overcome

My writer’s block for my XML-related standard went away.

I propose to classify XML namespaces into three distinct groups regarding “interaction” of elements (or attributes) of the same namespace.

Then we can transform between namespaces of the same precedences in such a way that in the case if elements interact, there remains only one namespace, thus not interacting elements of different namespaces.

I should write an exact specification for this idea, but the way is now open, I am past of my writer’s block.

Posted in XML | Leave a comment

A new writer block on my XML transformations project

I have several times said that this my project failed but it was salvaged again.

Now I again have a “writer block” concerning this project.

See this unsolved problem.

Posted in XML | 1 Comment

VPS for an unbelievably low price

Today I have moved all my Web sites from an old VPS hosting to Digital Ocean VPS hosting.

Their prices start from unbelievable $5 per month for a server with 20GB SSD disk.

I myself use the 2GB RAM, 40GB SSD hosting for unbelievable price $20/month (not counting backup price).

Click this link to order the VPS hosting (clicking this link you also earn $10).

Posted in Linux/Unix, Uncategorized | Tagged , , , , , | Leave a comment

The driver by Innova is broken

I recently bought an UPS by the Innova company.

On the box it was written “Linux”. I opened the box and got a CD disk. On the CD was the folder “linux”. In the folder was some old broken version of the program Upsilon and no driver. (The built-in driver coming with Debian Linux also didn’t work.)

I returned the UPS to the seller.

Shame to the Innova company.

Posted in Hardware, Linux/Unix | Tagged | Leave a comment

“The Machine” and operating system

I’ve said earlier, that Linux would be inefficient with The Machine computer architecture, because its different memory model. Thus, as I said earlier, The Machine requires development of a radically new operating system, not just an adaptation of Linux. I have said: Linux is dead.

Recently I have realized that this is wrong: We indeed can adapt Linux to The Machine, and it will be fast enough.

I recall that the one of the main differences of The Machine from older computer hardware is that all its memory is persistent and fast (using memristor technology). There are no caches and no separate RAM and disk.

So, why I now think Linux (and similar long developed systems, such as FreeBSD) would use The Machine’s memory efficiently?

The reason is the following:

  1. In modern operating systems there are two main kinds of objects: files and processes (programs) (There are other kinds of objects, such as devices or mutexes, but I will skip this topic.)
  2. With files there is no problem: they are just stored in persistent memory organized as filesystem(s), and The Machine’s memory can be structured as one big filesystem or several partitions with filesystems, just like disks of old computers.
  3. Processes are in some sense not persistent, by definition. After a program exits, its program memory must be erased, in order not to allow other processes to retrieve potentially sensitive data. So, despite of the fact that in The Machine all memory is persistent, process memory behaves in such a way as if it would be non-persistent RAM.

Next question: How to allocate memory for processes? The most straightforward variant, is just to create for every process a special non-persistent file which holds the process memory, using mmap to efficiently access it.

It is possible to allocate a partition for memory specifically, but it is probably not necessary as all memory (including processes’s memory) can be hold in files in a filesystem.

One advantage of all memory being persistent is that we can momentarily turn on the computer and it would continue from the point where it has finished. No need for booting after every turning on.

Reboot however is a useful feature, to do with bugs, kernel updates, or just if a user wants to start the system from the beginning.

All this can be done with Linux.

It also was said by someone that The Machine requires new programming languages to use memory efficiently. It is wrong. In reality, processes use logically non-persistent memory, as I’ve described above. No need to introduce new programming languages with different memory handling. And if a process requires persistent storage, they can be used (possibly mmaped) files. I recommend to use traditional programming langauges such as Ada for The Machine.

Posted in Hardware, Linux/Unix, Programming | Tagged , , , , | Leave a comment

Preserve old /etc/mysql/debian.cnf when copying /etc to an other computer

I’ve copied my /var/www, MySQL database, and /etc from a sever to an other server.

After this I found that my MySQL does not work anymore.

The reason for the trouble was that /etc/mysql/debian.cnf contains (twice) an auto-generated password for the database, and so after copying my old /etc directory from my old server the password didn’t match the new password stored in my MySQL database.

The solution: Do not overwrite /etc/mysql/debian.cnf file when copying /etc directory, but leave it as it was autogenerated by the new server installation script.

Note: This is a about Debian Linux.

Posted in Linux/Unix | Tagged | Leave a comment