Introducing the Mockup Project
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."
-73, de n1ywb
www.n1ywb.com
The description also sounds like it could be a very large .INI file.
--Mike--
I haven't seen an interface like that since yesterday.
I've heard of Elektra before, its an evil attemp to make a windows-registry clone in Linux. Ew ew ew ew.
The tabbed windows, the desktop shell called 'Tracker', and the style of the icons all seem to come directly from BeOS, not OS X.
Let me see, it's a Linux kernel (modified maybe), with the latest beta version of a predominantly GNU/Linux app: QT. Oh, and they're trying to add a nice Desktop Enviroment, based on QT.
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.
It looks like they're basically building a better GUI engine for Mac OS X.
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 theming? As if that would make a better UI?
Don't become a regular here -- you will become retarded.
They almost get it. In electra it appears all the keys are stored in individual files. However there is still some screwiness in the filenames and a serious problem in that the file contents are still not raw.
/configuration. Electra seems to use "$HOME/.kdb" and "/etc/kdb" which seems to be rather cryptic.
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.
Good operating system design is not about throwing ever more flexibility at the user or adding every possible gimmick under the sun.
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 whether one should move to ACLs but whether one can simplify the system further; group permissions and execute permissions perhaps should be eliminated, leaving us with just read/write and user/world permissions (plus setuid).
(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 is a great example of how powerful and simple this can be.
What these people are doing sounds little different from the next version of KDE or Gnome. Their web site has no new ideas for how to improve usability of the desktop, nothing that differs from the standard WIMP paradigm, and no interesting new functionality that they are implementing. It's unfortunate that so much energy gets wasted on trivial variations of the standard desktop paradigm. It's good to have choices in software, but only up to a point.
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.
Linux has a lot of the software necessary for a great operating system. The problem seems to be tying it together neatly. This is why there are so many projects like this, it's a good thing.
Photos.
You can theme OS X:
http://www.maxthemes.com/themes/
This is a very good thing.
/etc. They're doing it without requiring every program to be changed at once. They're doing it without assuming everything will be world writable. They're doing it without discarding command line configuration editing.
/etc/cfg, and perhaps eventually just /cfg if the idea takes off.
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
Everything is a text file, so it's easy to edit by hand. Everything is regular, so it's easy to build GUIs for editing it automatically. What they're saying meshes really well with what Hans Reiser has said about filesystems and namespaces, and that guy knows his stuff.
They absolutely do not add anything fancy, which is really good.
I'd like to see some few expansions of the idea:
The ability of they command line tool (kdb edit) to return editable text in more formats than just XML; specifically, for it to use YAML. The biggest drawback to spliting config data into multiple files is the difficulty in editing many related options, which their XML idea nicely solves... but since't it's hell to edit XML but fairly easy to edit YAML, a YAML mode would be nice.
A renaming of their tool, maybe to cfg or conf or something pretentious like that. That way the directory could be
Lose the UTF-8 requirements. While nice, it does not mesh well with command line tools, and should be left to the application anyway.
As another poster mentioned, remove comments from the config files themselves. I propose appending a # prefix to files which are comments for files with the same name, e.g.:
system/sw/Foo/firstrun
and then the comment:
system/sw/Foo/#firstrun
Which is semantically very understandable and does not too greatly reduce the available symbols for key names.
As another poster said, make using the library optional, since it's almost is as things stand. There is value to the library for application developers, for consistency and convenience, but it should not be in any way necessary.
The greatest value Elektra adds is "just" sane namespace management, although there is nothing paltry about that.
I want my Cowboyneal
It's just yet another clone of the BeOS UI, and a bad one at that.
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 others, other than instead of a full window title, it had a tab...
-- Sometimes you have to turn the lights off in order to see.
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".Thats just scratching the surface, but you get the idea, basically take the format of CSS, and apply that to configuration. Have a standard set of calls to get a configuration, it starts with
You could also use classes within the configuration, eg say you dothen you could haveJust my 2c.
NZ Electronics Enthusiasts: Check out my Trade Me Listings
The idea of a registry is not inherently flawed, but the implementations of it are. gconf and elektra both seem to be decent implementations. the registry database is an aggregation of many files. This means that the package manager can add registry entries and remove them automatically without having to result to programmatic uninstall programs. This keeps the registry from getting full of crap like it does get on Windows. Simply delete the application (rpm -e) and the entries are gone. The problem of local entries (like local dotfiles) in the home directory remains, though. Anyway, I'll wait to see what this all does before I pass judgement on Elektra itself. Something like this should, however, work under in the freedesktop.org umbrella. Making yet another desktop environment seems problematic.
Just exactly what makes it a bad clone of the BeOS UI?
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 were the things I could do with it, that I couldn't elsewhere.
The ability to do extremely fast metadata searches, and save queries as folders that update in realtime is the only thing that kept me on BeOS for more than a month, and was definitely the hardest thing to leave behind. (There were other nice things, like the 10-second boot times, but the above is what stuck out after three months of full-time use.)
Most open source hackers would tell you that this was possible thanks to the 64-bit journaled database-like filesystem, but I think you'd get that response because most open source hackers know more about coding concrete things like filesystems with easily quantifiable goals (bigger, better, faster) than more mysterious things like interfaces, where the goal of "more useful" is often fairly subjective. Consequently, more time is spent concerned with implementation than capability. (Witness many of the comments on this article, trouncing the Elecktra configuration system because of it's resemblance to the Windows registry, with little regard to whether or not it might be more useful.)
Enter Apple's (I know this is getting a little OT, but bear with me) Spotlight, which lets you do extremely fast metadata (and content) searches, and save them as folders that update in realtime, without a specialized filesystem. So, yes, it is possible. Be's implementation wasn't perfect, nor is Apple's, but the idea is sound, it works, and it's incredibly useful.
So, what I'm saying is that Mockup is a bad clone (and most clones are bad) because it overlooks the truly useful and innovative aspects of the UI in favor of the ever-mutable visual and behavioral aspects. Furthermore, I suspect this is due to a naive understanding of interface design that's pervasive in the OSS community.
Don't become a regular here -- you will become retarded.
Mockup is not a BeOS clone, what are you saying?
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.
Mockup is not a BeOS clone, what are you saying?
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 think your efforts would be better spent involved in an existing project than branching off into a new, incompatable, project.
Don't become a regular here -- you will become retarded.
Never thought that I might like the title bar as a tab? The title bar uses the space it needs just like windows. Size should be adjusted to contents. I'm neither copying MacOS X. Just because there's a panel, it doesn't mean it's the same as OSX dock. OK, it's pretty hard to explain how ti should work only with an image. The panel should only show icons of minimized windows, and when the mouse pointer go on it a popup lists the windows that belong to the application with some items to minimize all the windows and close them all. Yes, it's like OSX and BeOS except for the fact that works in a different way :)
Great project, it was about time. I know that system from Java, having a good library dealing with configuration files is great. First, you have a nice standardized api, then you don't have to care, where to save the files, the parsing or what grammar you use.
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 advantages of the windows registry (good standardized access api) without the hazzles (entry clutter not really manually editable, one big database which resides in ram etc...)