Introducing the Mockup Project 78
Pier Luigi Fiorini writes "The Mockup project is a desktop operating system based on GNU/Linux. It has recently released new source code and published both screenshots and mockups. Read the announcement to know where are the source code tarballs and how to compile them. Mockup uses a new lightweight and modern graphical user interface that supports both pixel and vector based graphics. The GUI is based on bleeding edge technologies like Qt 4.0 beta, Elektra, HAL and DBUS. Elektra is a new backend for text configuration files.
Instead of each program to have its own text configuration files, with a variety of formats, Elektra tries to provide a universal, hierarchical, fast and consistent namespace and infrastructure to access configuration parameters through a key-value pair mechanism. This way any software can read/save its configuration/state using a consistent API."
Sounds like the windows registry (Score:5, Insightful)
Re:Sounds like the windows registry (Score:4, Informative)
Re:Sounds like the windows registry (Score:1)
Re:Sounds like the windows registry (Score:3, Interesting)
Personally I don't think there's a problem with every application using its own configuration file. Being able to make a backup by burning a file to CD is a lot nicer than having to export a preference branch from a tree into a file and then have to import that branch when I want to restore the prefere
Re:Sounds like the windows registry (Score:2, Informative)
It explains the reasoning behind this registry, and how it won't fall into the same holes that the Windows registry did.
Re:Sounds like the windows registry (Score:5, Interesting)
Not a whole lot. Elektra's essential improvement over the Windows registry is that Elektra is inherently text-based. They also provide a console program that lets you programmatically access the database, either interactively or from scripts, which is a nice touch that avoids the binary opacity of the registry.
Aside from that, Elektra suffers from the exact same problems as the registry. The main problem with this sort of hierarchical key/value database -- and that's what it is -- is that it's just a mass of data, inherently structured but semantically shapeless; the context of any key/value pair is the parent node, and the context of any node is its parent node. As such, it's no better or worse than a bunch of files in a file system.
The reason the Windows registry is such a mess is precisely because anyone can do anything to it. Delete an application and its data remains. Delete the files belonging to a COM component, and its registration information will still be there, and things like context menu entries will be dead ends pointing into the thin air. Even if you're a careful gardener, the registry grows indefinitely.
Even a good package system like APT leaves files behind in /etc. You might say that, without constant weeding, even /etc grows indefinitely. It just grows much slower, and is comparatively easy to keep in shape due to its much simpler structure.
The problem, then, is not the registry's binary nature, nor its weak hierarchical model, nor the lack of scripting tools (although the latter impairs its usefulness). It is that there's no glue between the owner of the information and the information itself; the ideal situation, a registry with no orphaned information, is architecturally not a bad design.
Instead of a single monolithic database, I suggest an aggregated database. Install a piece of software Foo into /usr and its database goes into /etc/foo, then mount it logically under a well-known named node. Thus the "registry", or whatever you call it, is the product of all known sub-registries. Delete an app, and its database can go away as well.
As a personal side note, I think the hierchical, shapeless key/value database design is an incredibly inelegant kludge. People are still blatantly ignoring (and misunderstanding) the best theoretical model for information storage ever invented, Codd's relational model, which is also pretty much the only theoretical model invented.
Fortunately, some people "get" it; the relational nature of RDF triples is one such recent example, and I would rather see RDF (although not necessarily its XML syntax) adopted, because it's such a simple, elegant, extensible system.
Re:Sounds like the windows registry (Score:3, Informative)
Not if you purge a package instead of removing it.
When you remove a package you remove the binaries, but when you purge it you remove the configuration files too.
Re:Sounds like the windows registry (Score:2)
Re:Sounds like the windows registry (Score:3, Interesting)
No, it is better in that it is in ONE PLACE (or rather, one API or "contract" to access), and ONE FORMAT (you decry this as misdesign but I'll address that
Re:Sounds like the windows registry (Score:3, Interesting)
It seems to me that what you're really doing is persisting object properties, but not using object semantics to do it. THAT's why you get "zombie properties" in Registry-like designs: some object properties are realized on the heap, and some in the persistent store. And when you have the same object realized or partially replicated in multiple places, you need to use transactional semantics to make sure that everything is kept consistent. It's essentially just the garbage-col
Re:Sounds like the windows registry (Score:2)
Did you RTFA? Elektra IS just a bunch of files in the filesystem. WHat elektra
Re:Sounds like the windows registry (Score:2)
GConf, which is exactly what Elektra is reimplenting, has these same problems. (Most likely because gconf is pretty much an xml registry.) When keys ch
Re:Sounds like the windows registry (Score:2)
Re:Sounds like the windows registry (Score:4, Informative)
The concept of centralizing and standardizing the most common case of configuration files is the same. The implementation of course is different. Each key is stored as a file on disk. There is no daemon. There is no "corruption" (other than corrupting one key which will not affect other keys). The keys are still able to be hand-edited like any text file.
Re:Sounds like the windows registry (Score:3, Insightful)
How is this any different from the Windows registry, one of it's most hated "features"?
Registry, as an idea isn't bad. Like most things in windows, this idea is very good and implementation is horrible.
Elektra:
Re:Sounds like the windows registry (Score:3, Funny)
Re:Sounds like the windows registry (Score:2)
It's text based. So they're not exactly reimpleneting windows' registry, but rather GNOME's gconf [gnome.org], which is of course, windows' registry only xml based.
GConf means well. It's something that makes sense for the GNOME as a system (e.g. being able to query what is the default web browser for instance). I'm just not convinced for its use for individual apps, especially since state information is meant to be stored outsi
More BeOS than OS X (Score:2, Interesting)
Re:More BeOS than OS X (Score:1)
Maybe not the Registry (Score:3, Insightful)
No ACLs? (Score:5, Insightful)
--Mike--
ACLs are not a step forward (Score:3, Interesting)
The UNIX permission system has survived for so long because it works. There have been numerous attempts at adding ACLs to the UNIX file system, and they have not had a lot of success. In practice, ACLs cause numerous problems, in user interfaces, in usability, in system security, and in system management.
Given the way UNIX systems are used today, the real question is not wh
Re:ACLs are not a step forward (Score:2)
The last 30 years have shown that this just doesn't work. ACL systems are far more powerful, not to mention intuitive. ACL systems can NOT be replaced by this model, and any real world system just won't fit. (Especially when you're constrained to 256 possible groups)
--Mike--
Re:ACLs are not a step forward (Score:2)
Looks like 3 layers there to me...
Anyways, people can belong to multiple groups, so there's a lot of flexability in that, it's not just your group that the permissions can be set for. Now if only there was some way to provide group inheritance, then it'd provide just a huge ammount of flexability.
Re:ACLs are not a step forward (Score:1, Informative)
You're confusing security performance with security features. UNIX has performed very well on security, precisely because it offers few security features.
Microsoft offers many security features, which is the reason why their security is so poor.
and you want to weaken it?
Simplifying permission systems strengthens security.
Brilliant.
Quite right.
Re:ACLs are not a step forward (Score:2)
Microsoft has been doing this right for a long time, and they were pushing the AGLP standard in the NT 4.0 days (the last Windows I truly administered in a very complex environment.) AGLP means:
A)ccounts go in G)lobal groups; (the ones on your domain controller)
Global groups go in L)oca
Re:ACLs are not a step forward (Score:3, Informative)
Yes, quite right: the problem with providing ACLs is that most people use them poorly. But people have been using them poorly for decades. Since people aren't changing, we have to conclude that ACLs are a poor mechanism for managing permissions in the real world.
[long-winded descriptio
Re:ACLs are not a step forward (Score:2)
A good ACL system is more powerful, more flexible, and conceptually one heck of a lot easier than the very primitive Unix permissions. The Byzantine workarounds required to implement a truly complex permissions setup in Unix make it far, FAR easier to
Re:ACLs are not a step forward (Score:2)
No, you make vague generalities asserting that ACLs are somehow better, yet you fail to provide any proof for that assertion.
In fact, there is some evidence that we have. UNIX permissions have been used successfully for decades on multiuser timesharing systems. Windows isn't even capabl
Re:ACLs are not a step forward (Score:2)
UNIX ugo/rwx is 3 way permissions
Both have pros and cons.
I don't like either..
Unix:
- 3 way is limiting on systems where non-primary groups are limited to a few users (Redhat Enterprise 3, at least it is broken on 3 servers I have).
MS-ACLs:
- Very hard to audit from a security prespective.
A better solution is what Novell Netware has..
+ ownership of a directory or file does not give you rights to that dir/file.
+ file ow
Re:ACLs are not a step forward (Score:2)
You seem to be missing a crucial fact about UNIX groups: every user can be in multiple groups. That gives you the same flexibility as ACLs.
I can give a concrete example of where UNIX style permissions fail.. A Linux server with students and instructors (college). Each user has a webspace (~/public_html) where they need to be able to run cgi, jsp, etc. How to set permissions such tha
Re:ACLs are not a step forward (Score:2)
How about a non-primary group of a thousand users? This does not work for me on Redhat Enterprise 3 update 3 release; utilities segfault around 100 users. I have asked redhat and they don't have an answer (its been 4 months).
Also, how about a directory where a large group of users have read/write access and the application is such that files are created and delete
Re:ACLs are not a step forward (Score:2)
Submit bugs to the creators of those utilities not to RedHat; RedHat just bundles the stuff.
Also, (on OSX same situtation as above)
OSX isn't UNIX, it has a cumbersome, hard-to-program, and non-standard administrative database, and it doesn't have UNIX file systems semantics, so these kinds of things may be a lot harder to do on OS
Re:ACLs are not a step forward (Score:2)
MacOSX has full bsd userland APIs and utilities; the kernel is a microkernel (mach) but it is all bsd on the commandline. Last I checked BSDs were consider Unix.
a) The administrative database is by default openldap instead of local files although if you really want you can use local files.
b) The filesys
Re:ACLs are not a step forward (Score:2)
As I was saying, the way OS X represents administrative information is non-standard and overly complex. The fact that it may use a standard database to do something in a non-standard way doesn't change that.
b) The filesystem is HFS+ or UFS (your choice) and on both unix file semantics are implemented.
HFS+ doesn't even come close to implementing UNIX file system semantics, a
Re:ACLs are not a step forward (Score:2)
Are you trying to use a flat groups file for this? What level of support do you have? What is your IT/CRM/BZ number? What is your support person saying (people don't generally pay money for no responses ... although obviously Red Hat can't fix everything).
Certainly utilities Segfaulting is bad, however as fa
Re:ACLs are not a step forward (Score:2)
Yes flat group file (the default
Redhat Enterprise ES, not sure about the IT/CRM/BZ number, this is our company account number with Redhat, right?
Redhat asked for debug output (which I provided) and haven't heard anything since.
I just checked the server and the most groups any given user is in is 5.
Notable points..
a) 1000 students are in the primary "users" group and the g_student group with some s
Re:ACLs are not a step forward (Score:2)
No, those are support system numbers. BZ == bugzilla.redhat.com (but you shouldn't be working with BZ directly, you probably use something off: https://www.redhat.com/apps/support/ [redhat.com]
While still bad, that's a little more understandable. Most people use NIS or LDAP for any non-simple installation, so the flat file code isn't in p
Re:ACLs are not a step forward (Score:2)
Looks positively innovative (Score:5, Funny)
EW (Score:2, Troll)
Re:EW (Score:1)
Re:Mac OS X (Score:3, Funny)
This has absolutely nothing to do with Mac OS X. Nor is there any new GUI engine here. It's just yet another clone of the BeOS UI, and a bad one at that.
The GUI in OS X is currently a mess. Ask any Mac themer. I hope Apple buys this from these guys and fixes Aqua.
You have no idea what you're talking about. Mac themers? Do those even exist? If so, what do they do, sit around and talk about how they wish Mac OS X supported
Re:Mac OS X (Score:1)
http://www.maxthemes.com/themes/ [maxthemes.com]
Re:Mac OS X (Score:2)
Not being that familiar with the BeOS UI (I played with BeOS, but that's about as far as it went, since it didn't support most of my hardware). Just exactly what makes it a bad clone of the BeOS UI?
Or, perhaps a bit more clearly: What about the BeOS UI is so different (and wonderful) compared to any of the other GUI's I've used (Mac, Win, CDE, KDE, GNOME, Photon, etc. The BeOS GUI didn't seem to have anything that set it apart from the
Re:Mac OS X (Score:2)
I guess what I meant to say was that of the far-too-many BeOS clones I've seen, this one looks the least interesting, because it's only a clone of the look and feel. That said, most others do the opposite -- trying to reimplement BeOS from the ground up, or build new AppKit on top of Linux, with no UI yet.
I don't know about anyone else, but the things I remember fondly from BeOS were not the icons and widgets, or the pervasive multithreading -- they
Re:Mac OS X (Score:1)
BeOS clones are dead, even yT can't make a polished and stable product having what could be BeOS R6.
Mockup it's about graphical user interface design, ok I know there's a lack of documents but remember this is an alpha release.
Re:Mac OS X (Score:2)
I know you're not cloning the OS as a whole, but you are quite clearly taking from the GUI, and that of Mac OS X. Copying is not bad in and of itself, but you're copying the least important parts. Window tabs, for instance -- yes, they look kind of cool, but they don't make a better interface. What other reason is there for them than to look like BeOS?
I'm not trying to trash your project -- please work on whatever you want to work on -- but I really thin
Re:Mac OS X (Score:1)
So why is this special? (Score:4, Insightful)
Basically, this is a Linux distribution with it's own desktop enviroment and a different config file system that's trying to pose as a brand new OS.
Could someone please explain to me why it wouldn't be better to submit the kernel patches to the Linux devs and just make a distribution that uses Elektra? Calling it a new OS only causes fragmentation, IMHO.
Getting it right (Score:2)
Re:Getting it right (Score:1)
Re:Getting it right (Score:2)
Why is this better than simply sending the patches on to the Linux kernel developers, and developing your own distribution?
That way it would cause no more fragmentation than distributions already do, and they would get a chance to show the rest of the GNU/Linux crowd that their config-management and desktop enviroment ideas really are useful.
Electra almost there (Score:4, Insightful)
Here is how it should work:
1. There is NO library. You use libc functions like open() to read the "configuration"
2. The filename is the key, just like electra. Programs use simple rules to find the actual file from a keyname: prefix $HOME/configuration/ and if not found prefix
3. The contents of the file are the "value". There is no "comment" or other data stuck in it that requires a parser. A "comment" can just be another key, ie app/key can be described in app/key.comment.
4. The value is a string of bytes with a length. It is not UTF-8. UTF-8 is highly recommended but there is no reason to enforce it. Any "registry editor" is required to preserve the bytes exactly as-is if the user does not change it, but if it thinks it's UTF-8 text it can present it to the user that way and let the user edit it. If the "registry editor" needs to figure out the "type" it could be standardized as being stored in the file key.type, but I don't think it is necessary. It is pretty easy to guess the type of data with 99.9999% accuracy.
Things Electra got right:
1. No XML or any other type of file requiring a parser
2. Ability to "comment out" a line (they rename the key by putting a period before it). Finally somebody has realized why text configuration files are still 100 times easier to use than the fanciest GUI.
Re:Electra almost there (Score:1)
The evolution of config files (Score:5, Insightful)
(Pardon my little rant here.. but this is a general problem and not directed toward this project in particular)
Instead of each program to have its own text configuration files, with a variety of formats, Elektra tries to provide a universal, hierarchical, fast and consistent namespace and infrastructure to access configuration parameters through a key-value pair mechanism.
You mean like.. THE FILESYSTEM?
This always amazes me. The most simple way to store data on a modern machine is to put it in the filesystem. Which is a universal, hierarchical, fast, and consistent namespace and infrastructure to access configuration paramaters (and ANYTHING ELSE) through a key(=path) value(=file) mechanism.
You can also use environment variables for "global" settings.
Most software goes through these stages:
If you are writing a program save yourself a lot of trouble and just cut to the chase. Please don't invent another file format. Please don't write another broken parser. Please don't use XML for anything a human has to edit. Please please don't make me link in an API just to read/write the config settings. Please don't try and prove what big programmer muscles you have.
djb's software [cr.yp.to] is a great example of how powerful and simple this can be.
aiming low (Score:3, Insightful)
I actually doubt that any desktop effort based on an existing toolkit (Qt, Gtk+, etc.) will lead to significantly improved usability or functionality: those toolkits already encode a lot of assumptions and restrictions that any desktop effort based on them will be constrained by.
Re:aiming low (Score:1)
Projects like enlightenment [enlightenment.org] are striving to innovate by creating new libraries and shunning the current crop of toolkits that assume too much and constrain design to a rather limited set of possibilities.
This is a good thing (Score:2)
No, not Mockup. Mockup might be fun after a while, if it tkaes off, which it wont. Elektra is a good thing.
The Elektra guys need to go have a chat with the Gobolinux guys. These two groups were MADE for each other.
What Elektra does is not new or exciting, it's old and simple. This is a "Finally! At last!" more than a "Oooh, shiney!" They are attempting, once gain, to sanify
Re:This is a good thing (Score:1)
How I'd like it: Cascading Configuration (Score:2)
Basically, you know CSS (Cascading StyleSheets) as using in HTML, well, we do the same thing for configuration, call them CCS (Cascading Configuration Sheet).
Lets take an example application, "fooApp".
Re:How I'd like it: Cascading Configuration (Score:2)
Re:How I'd like it: Cascading Configuration (Score:2)
Meta-registry (Score:2)
Elektra, it was about time (Score:2)
In java all comes down to build a property entry pair or some kind of dom tree in newer versions and then simply say save (filename) and you dont have to care about the correct place to set the file the parsing anything. Sort of like having the adva