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

Specification draft moves to Wikiversity wiki

I’ve moved my work on “Automatic transformation of XML namespaces” to Wikiversity wiki site (as a research project).

Now anyone can contribute.

See this link:
https://en.wikiversity.org/wiki/Automatic_transformation_of_XML_namespaces

Posted in XML | Leave a comment

NLang is deadborn

My proposal for a new data description language NLang alternative to RDF is probably deadborn.

I have missed the rationale:

The rationale for NLang was that the data is not messed up when loading information from several files.

But today I’ve realized that I can just write RDF software in such a way that information from several files that they won’t intermix.

So I can continue my work with traditional RDF. There is no real need to create that fancy NLang.

Posted in XML | Leave a comment

A new data description language

There is RDF. Why to create a new data description language? Several RDF files (possibly downloaded from the Web and non-trusted) may be merged in such a way that it creates contradictory data. It contradicts to design goals of this my project.

We need to create a language which describes objects and objects are in some sense immutable (cannot be changed by loading one more file with other objects).

With every IRI they are associated one or more objects. Every object has some (say N) properties.

So I propose a language to describe objects and propose to call it NLang (because unlike RDF objects may have N>1 properties).

Next it follows an example (similar but different to Turtle syntax) after which I am going to model the syntax:

<http://example.org/example> [
        a :transformer ;
        dc:description <http://...> ;
        # Other Dublin Core metadata.
        :source-namespace <...> ;
        :target-namespace <...> ;
        :precedence <...> ;
        :scripts ref <http://example.org/scripts>
] .

<http://example.org/scripts> [
        a :xslt ;
        :version "2.0" ;
        :script-url <http://example.org/scripts/foo.xslt> ;
        :transformer-kind :entire ;
        :arguments [
                :argument [
                        :name "debug" ;
                        :value false
                ] ;
                :argument [
                        :name "other" ;
                        :value 123
                ]
        ] ;
        #:initial-context-node ... ; # See XSLT 2.0 spec.
        initial-template "first" ;
        initial-mode: "first" ;
        completeness 0.9 ;
        stability 0.9 ;
        preference 0.9
] .
Posted in XML | Tagged , , | 1 Comment

New flexible recursive retrieval of XML namespaces information

As an update to the previous version of the specification I have written a new draft of Automatic transformation between XML documents with different namespaces.

This updated version supports the choice of the user to download only information referenced from the source or only information referenced from the destination.

For example, it allows, when directly transforming from an XML namespace A to an XML namespace B, to download only transformation information at A or only information at B (provided that this data is available at A or at B respectively).

Posted in Programming, XML | Tagged , | Leave a comment