August 3, 2011
This article was contributed by Luís Felipe Strano Moraes
The Enlightenment window manager, first released in 1997, is finally
reaching its long-awaited 0.17 release. Work on this release began almost ten
years ago, and involved a huge rewrite (or three) of the window manager, plus
the creation of several libraries, the core of which are called
Enlightenment Foundation Libraries, or EFL.
Enlightenment is well-known in the Linux community mainly for being
extremely lightweight and for displaying impressive graphical effects even in
its earlier incarnations from more than a decade ago. It originally started as an attempt to provide a more graphically stimulating environment for Unix systems and was even used as the window manager for GNOME before Metacity. Enlightenment 0.16 was released in 2000 and is still actively maintained, but the majority of the developer community switched focus to the new version and the development of the EFL. Due to the attention to performance by the community, led by Carsten Haitzler, the EFL have found a niche in embedded systems.
Enlightenment 0.17, or E17, has been stable for quite some time and is used
by many, but since it was never released officially, support for it on
distributions is quite limited so far. The Enlightenment community has lately been engaged in
releasing
version 1.0 of the EFL, which happened in January. Currently, work
is ongoing on two fronts:
-
Readying E17 for a release, which involves closing a few remaining issues
-
Preparing EFL 1.1, which will fix several bugs and have much improved documentation.
What are the foundation libraries?
During the course of creating E17, a bunch of libraries were devised (and
quite a few were later deprecated) to ease the development of the new window
manager. Given the attention to performance during the development of the
libraries, they have now become a major alternative for use in
programming embedded systems.
The first library is Eina, which is a library used by most of the
others that
implements
basic types, provides memory pools for allocation with several different
policies, and provides other common services. It has optimizations
such as "stringshares" which allocate memory only once for each string,
thus avoiding increased memory usage due to string duplication in the
various layers of the
program.
Eet is a very simple library for data serialization, encoding, and access. It's used as
a really fast database in several applications. Ecore, as it name implies, provides the
main infrastructure for applications such as the main loop, allowing EFL programs to
deal with both user and system generated events. It also offers other low-level
services, such as threads and network connections.
Evas, a stateful canvas for drawing is one of the primary reasons why the EFL are so fast,
by employing optimizations first introduced in its predecessors (imlib1 and
imlib2). In addition, Evas has
faster rescaled JPEG loading by using image compression
techniques such as macroblocks and all the
SSE and NEON multimedia extension optimizations you could ask for.
And finally Edje, a powerful theming library that allows for rich
graphical UIs, which was one of the inspirations
for Qt's QML (itself based on the previous QEdje). It provides a secure and
sandboxed UI, and also has support for scripting in Embryo (based on the
language PAWN) and Lua.
There are quite a few more libraries available on the Enlightenment SVN,
but the ones above are the most important. There is also work being done on a
new widget toolkit called Elementary, which uses all the other libraries as
its base and will be the basis of future work after the release of
E17. Elementary
is already quite mature and should see its own 1.0 release soon.
The libraries in question are heavily optimized, and provide support for
several different architectures and graphical backends such as X11, OpenGL,
SDL, DirectFB, and Windows XP and CE, among others.
Where the EFL are being used
Currently there are various and diverse projects using the EFL as base.
From the recently announced Ordissimo, which is a
Linux distribution targeting the elderly population, to home automation
systems like the one created by Calaos and featured in a video. Millions of set top boxes were deployed by Free.fr using EFL, and recently a big player in
the appliances industry has started selling a refrigerator with a
touchscreen interface developed using the new Elementary toolkit.
Canonical sponsored an EFL
version of its netbook-launcher targeting ARM devices that have no 3D
acceleration (the official version being based on Clutter and depending on
OpenGL). It had as many graphical effects, if not more, than did its counterpart
and also showcased how powerful Edje is by allowing completely different UIs
to be displayed by only changing the theme. The most recent big player
to start
supporting the EFL is Samsung, which is not only providing patches to the
libraries and creating new widgets, but has also engaged with ProFUSION in
improving the documentation available for programmers and in
developing a
new WebKit port to the Enlightenment libraries. Those interested in
learning more about this new port should check out the information
available on the official wiki.
The LiMo foundation, an industry consortium dedicated to creating a Linux-based operating system for mobile devices, has also announced that the EFL will be an integral component of the LiMo 4 platform.
Status of E17 and helping out
E17 is currently quite stable, and a few distributions are already shipping
packages, albeit not always as up-to-date as one could hope. This is one
of the things that is planned for the impending release: having
better engagement with distributions so that E17 becomes available to a much larger
audience.
There are several different modules and plugins available, including
support for making it a tiling window manager and also for compositing (both in
software and OpenGL). Due to the focus on optimizations mentioned before, one
can pretty much bet that E17 will work really well even on older hardware (or
newer hardware with CPU limitations).
Moreover there is also support to spread rendering to multiple cores, so
that applications written using the EFL (E17 included) can scale easily from
running on a 200Mhz MIPS to an eight-core Xeon running at 2.3Ghz per
core.
Regarding applications, work has begun on a few basic applications: Eve (a
web browser based on WebKit-EFL), Enjoy (a music player), Envision (document
reader), and EPhoto (photo manager). They are at differing levels of completion,
but right now they are mostly being developed as showcases of how powerful the
EFL are. Each application will have UIs targeting different devices (such as
netbooks, desktops, tablets, and TVs) that completely change how the user
interacts with them, but without changing the underlying code. Code for all of
these applications is also on the SVN repository, but please be aware that they
are mostly still fairly basic (and need more contributors).
Those who wish to test it can find instructions here, alongside
information for specific distributions.
There are plenty of things to do for those interested in joining the
Enlightenment community, but one of the things needed the most right now is
for people to write documentation and to do testing and bug reporting.
There is lots of low-hanging fruit available, so those interested in getting started should
join the IRC channels #e (for users) or #edevelop (for developers) on Freenode and ask for more
information. People who can help contributing with packaging for any distribution are
also very welcome. There are also a couple of mailing lists used for
discussion and there is more information on the official site.
Overall, Enlightenment has come a long way in recent years to become a
stable and viable alternative to the more well-known libraries such as Qt
and GTK+, especially for the embedded space. Documentation, which was
severely lacking before, is being improved and should now be enough for
newcomers to get going. With the release of EFL 1.0, one can only hope that
2011 might still see an E17 release being announced.
Comments (8 posted)
Brief items
In the end, the practical goals of Crankshaft are simple, and the
optimizations are too, for the most part. Java people like to trot out
all
their gerundic compiler passes [PDF] (see slide 7) and declare victory,
and it is
true that V8 and other modern JavaScript implementations will be beaten by
the HotSpot JVM -- once it is allowed to warm up, of course. (V8's 5ms
startup is particularly impressive, here.) But Crankshaft definitely has
the basics, and throws in some range analysis to squeeze out a few more
percent on top.
--
Andy
Wingo looks at Google's V8 JavaScript engine (part of a
series of articles)
The panel will cover a controversial topic of recent discussion: whether or
not projects and companies should require that developers assign their
copyrights in order to contribute to the project. Projects are currently
all over the map, with some nonprofit organizations and some companies
requiring assignment, others completely opposed, and still others with
unique assignment requirements. There is currently an effort headed by
Canonical under the name 'Harmony' to bring some clarity in the
situation. Harmony attempts to do this by creating standardized versions of
documents for copyright assignment. Each of those would offer clear
options, a bit like the Creative Commons licenses work.
-- Part of a
panel
description for a session at the upcoming
Desktop Summit featuring Mark
Shuttleworth, Michael Meeks, Bradley Kuhn, and moderated by Karen Sandler
Comments (none posted)
Collectfs,
which is a filesystem in user space (FUSE) for Linux that seamlessly
protects files from being clobbered accidentally, has been
released. "
It is not intended as a replacement for revision control or backups. The intention is to protect you during the between-times, when you're not covered by these other tools.
[...]
Any file that is overwritten by remove (unlink), move, link, symlink, or open-truncate is relocated to a trash directory (mount-point/.trash/). Removed files are date-time stamped so that edit history is maintained (a version number is appended if the same file is collected more than once in the same second)."
Comments (none posted)
The digiKam photo management tool has
released version
2.0.0. "
The road to version 2.0.0 took more than a year of heavy
development. The team proudly announces the first release of the new
generation of digiKam. This version features long awaited face detection
and recognition, image versioning support, XMP metadata sidecar files
support, big improvements in tagging and marking photos, reversed
geo-tagging and many other improvements, including a total of 236 fixed
bugs." LWN recently
reviewed the release.
Comments (none posted)
The Genius calculator application has made its "yearly tradition" release. "
In any case, Genius is one of the oldest GNOME projects, it has been the
original GNOME calculator before I got wild ideas about it doing absolutely
everything. It is programmable, has a powerful language and handles many fun
features including support for matrices, rational numbers, and nice 2D and 3D
plotting."
Full Story (comments: none)
KDE 4.7 has been released with new features like improvements to Phonon, social semantic desktop components, a new integrated instant messaging application, and more. "
In addition to the many new features described in the detailed release
announcements, KDE contributors have closed over 12,000 bug reports since the
last major releases of KDE software in January 2011. As a result, KDE software
is more stable than ever before."
Full Story (comments: none)
Google has
announced the release of LevelDB, "
a fast persistent key-value store", under a BSD license. "
LevelDB is a C++ library that can be used in many contexts. For example, LevelDB may be used by a web browser to store a cache of recently accessed web pages, or by an operating system to store the list of installed packages and package dependencies, or by an application to store user preference settings. We designed LevelDB to also be useful as a building block for higher-level storage systems. Upcoming versions of the Chrome browser include an implementation of the IndexedDB HTML5 API that is built on top of LevelDB."
Comments (9 posted)
The Document Foundation (TDF) has announced the release of LibreOffice
3.4.2. This version has been declared enterprise ready, unlike previous
versions that were aimed at testers and early adopters. "
LibreOffice
3.4.2 fixes the majority of the most-important bugs identified by users in
the previous version, and can be deployed for production needs by most
enterprises."
Full Story (comments: 23)
Newsletters and articles
Comments (none posted)
The H
reports on the introduction of
UnQL (UNstructured Query Language, pronounced "Uncle"), which is meant to be the SQL of the NoSQL movement.
"
CouchDB creator Damien Katz and SQLite creator Richard Hipp have been working on UnQL to create a higher level query language for NoSQL document databases. Katz says the specification 'stems from our belief that a common query language is necessary to drive NoSQL adoption in the same way SQL drove adoption in the relational database market'. Hipp notes that 'Unql builds upon our experience with SQL, supplementing that language with syntax and concepts appropriate for the unstructured, self-describing data formats of post-modern applications'."
Comments (36 posted)
LinuxInsider
reviews
Jokosher, a multitrack audio editor. "
Jokosher offers a solid
list of features. Chief among its best assets is the interface. For
example, the design has musicians in mind, so the terminology in the menus
has a familiar ring. Of course, non-musicians might have to come up to
speed with musicology phrases to reach a comfort zone with
Jokosher."
Comments (6 posted)
Michael Reed
looks
at KDE SC 4.7 on Linux Journal. "
If you are a 4.6 user who has just upgraded, don't expect to be aware of major changes the first time you reboot. Some of the core applications have been updated, but most of the work has gone into improving the underlying frameworks. The applications themselves have been shifted to a greater reliance on Akonadi, the PIM storage framework and NEPOMUK, the semantic information database."
Comments (63 posted)
Page editor: Jonathan Corbet
Next page: Announcements>>