Several core EFL libraries have now been released as alpha. This means
the API is "good to go", but there may be bugs. The focus is on fixing
bugs now and keeping API stable for a full release once bugs are gone.
You can get the alpha releases of Eina, Eet, Evas, Ecore, Embryo, Edje,
Efreet, E_Dbus and Eeze
here.
You can also get the above libraries in their alpha state if you check
out SVN revision 51480. The following libraries are in alpha state for
the following versions:
by raster@rasterman.com
(Carsten Haitzler
) at August 21, 2010 07:45 PM
As part of the Power Developer developer’s program, I received from Genesi one of their amazing Efika MX nettops. Other people have already posted about the unboxing process (for example darkside or brunocardoso), but I still want to throw a few screenshots to show it.
 Efika booting
Recently there were big improvements made to the EFL on ARM platforms, but even without those optimizations and running on a 1680×1050 screen, E17 is running perfectly fine. Here are a couple of screenshots I made (the second one was taken with a camera phone, so it’s slightly worse to look at, I’ll try to put a video showing how well it’s performing on youtube later):
 One of the initial versions of the Efenniht theme, with the obligatory Flame/Penguins/Snow modules enabled
 Latest Efenniht version, with the Everything module on the center
I’m going to setup daily builds of the EFL running on it (plus weekly Ubuntu packages) so that it can help out stabilizing the arm port. The static analysis runs with clang of the EFL code that I’ve been doing are now on a new location, and I’ll also be running them directly from the Efika.
I’ll soon update the blog with more cool stuff I’ll be doing here (got an OE build for it about half done), but for now I just want to thank the folks at Genesi for this opportunity, and I’m eagerly waiting to try out the Aura firmware they are working on.
by messias at July 22, 2010 03:44 PM
Notice: this is a rant posted only to my “life” blog category, if you happen to not like personal stories but got this due some syndication using my global RSS instead of specific, please forgive me and just ignore this post.
Ulisses and I had to travel to a conference in Orlando, FL and we did the stupid mistake of booking the flight with United Airlines. Yes, we already had problems with it in the past and we knew United Breaks Guitars, but nonetheless we insisted to give it another try. It was already strange that our flight to Orlando had to go to Washington DC in the first step, then we would have to go through Chicago during our return… but yeah, it was cheaper and the airlines do these stupid routes to aggregate more people.
Problem#1: So… Sunday, June 20th, we were set to depart at 10pm. Given that my birthday was the day before, I was at my family’s house for a great Brazilian BBQ. However their city is 4 hours away from the airport, you all know the airport checks take some time and they require us to be 3 hours before, so 7 hours earlier I departed. If you happen to like football as I do, and you are Brazilian, you would rather die instead of loosing Brazil versus Ivory Coast in the world cup, but I was forced to.
Arriving at the airport exactly 3 hours earlier, we did the check-in, went through security and waited for hours… to be notified 20 minutes before that our flight was cancelled due no reason. They rumored that the aircraft had mechanical problems and could not fly.
Problem#2: We were told that we should go in the next flight at around 1pm the next day… it was already bad, given that we’d loose the first conference day, but it became worse once other passengers alerted us that UA actually did not had any flights departing at that time! Apparently they were just doing that so they would just have to pay us one hotel night, forcing us to be at the airport in the morning and then wait until 10pm for the actual flight!
We could not afford such delay as the second conference day was the one with the important bits. Thus we made them book us a flight with their partner company “TAM”, departing Monday 21th in the morning. The flight was a direct one and that was awesome, with a new airplane with interactive media displays and so on.
Problem#3: We had to go to Chicago where we had the connection back to São Paulo, it was around 2 hour slack between them and so good balance, not much to wait and enough time to get our luggage transferred. But UA was nice to delay our flight departure by 30 minutes. A bit worried, we were confident it was still enough. However during the flight, the pilot announced “We’ll have to stop in Kansas to refuel”, WTF we thought immediately. Of course this was a stupid excuse for something that they did not tell us. Kansas it was, long delay… but we did manage to get to Chicago 30 minutes before our flight departed.
Obviously, while you can walk from one gate to another in 30 minutes, your luggage cannot go through their unknown process and it did not make into the plane.
Problem#4: We arrived in São Paulo and waited for our baggage… thinking in a logical way, we did know it was not there, but as the government slogan says “we’re brazilian and we’ll never loose hope!” After confirming that it was not there, we went to United Airline help desk. Strange looks, computer queries and questions about our route in USA, they said it was located in Chicago and should be in Brazil in their next flight, which should be this afternoon (June 29th). The whole they happened, but no news from our luggage… called them and they said it is still in Chicago, but at this point: would you believe them?
Problem#5: when entering Brazil you have the usual options “Nothing to declare” or “Goods to declare”. Often then choose some samples from “nothing to declare” to be exhaustively investigated, a quite invasive search I’d say. We did not had anything to declare, but given that our luggages were not there, we had to go be searched just to be able to have our stuff to be allowed through the Customs without us. WTF, what is the logic behind that?! A huge inconvenience.
Problem#6: my luggage was package with all my brand new clothes as we had scheduled some meetings with costumers in the conference. For some stupid mistake, I also dispatched my BlackBerry with my luggage since I did not use it for the whole week. Ulisses also had some nice gifts for his daughter in his bag. Very, very likely we’ll not see such personal items anymore, as they are likely to vanish with our luggage or just handle us opened bags without these items as it already happened to me in the past.
Yeah, United breaks guitars, make you loose your football game, fuck with your business travel, loose your luggage… what a shame, never using United services in future, this time for real. I did learn my lesson.

by Gustavo Sverzut Barbieri at June 29, 2010 11:11 PM
Eet 1.3.2 has been released with several bugfixes and improvements. It is
considered stable. It is available from
here.
Eina, Evas, Ecore, Embryo, Edje, E_Dbus, Efreet, Elementary and Enlightenment
have had a snapshot release (snapshot 49898), and can be downloaded from
here. If
you are taking source from SVN, then
use SVN revision 49898.
by raster@rasterman.com
(Carsten Haitzler
) at June 28, 2010 05:45 AM
So, recently I’ve been working on one piece which is taking me a small eternity so far to finish. But I do need some variety and here are a few of the speed paintings/photoshop sketches I did recently just for the fun of it.

Painting a proper smile is always a big challenge.

A quick portrait of a friend of mine.

A very quick self-portrait.

Another self-portrait. I may work more on this one in the future.

by admin at June 19, 2010 03:53 PM
Eet 1.3.0 has been released with several bugfixes and improvements. It is
considered stable. It is available from
here.
Eina, Evas, Ecore, Embryo, Edje, E_Dbus, Efreet, Elementary and Enlightenment
have had a snapshot release (snapshot 49539), and can be downloaded from
here. If
you are taking source from SVN, then
use SVN revision 49539.
Eet 1.3.0 was released, with the following changes:
- Make all operations on an Eet_File thread safe
- Fix error when retrieving a different float type than the stored one
- Reduce conversion with a little memory overhead
- Include winsock2.h in eet_image.c for htonl definition on Windows
- Fix Visual Studio project files
- Make eet_data_descriptor_free safe to call on NULL pointer
- More work on eet_node dump code
- Add fully functional eet_node dump code
- Don't mess up when memory realloc failed during data descriptor creation
- Fix another thread deadlock in mutex handling even in a single-threaded app
- Rewrite Eet_Data. Now you can do list/hash/array of strings and all the test suite is passing
- Add eet_data_node_decode_cipher and eet_data_node_read_cipher
- Fix amalgamation
- eet_cipher.c: Fix arithmetic pointer on void *
- Add a mempool for Eet_Node
- Add experimental API to walk Eet_Node tree
- Add VAR_ARRAY tests
- Improve security by zeroying cipher material as soon as possible
- Fix override of global symbols
- Fix clearcache race condition
- Fix eet_data_node_read_cipher return type
- Add Eet_Connection
- Improve eet_eina_file_data_descriptor_class_set by using eina_hash_direct_add to avoid duplication hash key string
- Fix file corruption reported by Tiago Falcao - tiago@profusion.mobi
- Add eet_sync
- Only delete the file at the last possible moment
- Reduce opening file descriptor
- Handle fixed point in data stream
- Add EET_G_UNION and EET_G_VARIANT
- Add EET_VERSION_MAJOR, EET_VERSION_MINOR
- Add Eet_Version, eet_version
- Make configure.ac use m4 defines for version
- Support SVN revision in version check
The snapshot release of Eina, Evas, Ecore, Embryo, Edje, E_Dbus, Efreet,
Enlightenment and Elementary includes lots of improvements and fixes. Too many
to put here, but these are not considered stable yet, and thus we don't track
changelogs. They do impose soname changes and module versioning now to make
packaging cleaner alongside SVN source installs. Please download, try and test
these.
by raster@rasterman.com
(Carsten Haitzler
) at June 07, 2010 05:45 PM
Greetings!
I just finished my 1st University exam. It was so very easy. However, riding home on my motorbike, I realised I left out some table metadata. I forgot to add border=”1″ and cellpadding=”5″.
Anyway.
So edje now has dynamic image sources thanks to cedric! What that means, is its now incredibly easy to use the right image for the right size. It was previously possible with some embryo scripting, but that adds extra hassles. This new method is super easy. Lets take a gander.
images {
image: "something.png" COMP;
image: "somethingelse.png" COMP;
set { name: "MrOneEye";
image {
image: "small.png" COMP;
size: 10 10 100 100;
}
image {
image: "medium.png" COMP;
size: 101 101 200 200;
}
image {
image: "large.png" COMP;
size: 201 201 300 300;
}
}
}
So as you can see, the image set is specified in the images {} section, which can basically be thrown anywhere in your edje code. Typically, its set at the start of the group {} section. Then when its needed, its called upon just like the regular images in the description {} section:
image.normal: "MrOneEye";
There you have it. Simple, easy to use image source selection. I can straight away think this would be ideal for icons, but also emoticons, and basically all images that have some detail when using the scale module.
Heres a tar ball of a working example. You need python-efl installed to run it!
That’s that for now. Im going to try to get this happening in E17, but for now, I have to finish coding/making this pill reminder project of mine.
 Toma
by edjy at June 02, 2010 04:44 AM
Alright with a small delay, here is what happened the past three days on LGM.
Day 2
28.05 was a lot about typography. The two talks that were most interesting to me were by only one person – David Crossland. His first talk was on Google’s font initiative. He is the author of one of the fonts there and it was quite interesting to hear his story. As it turns out, he was (or still is? not sure) a post-graduate typography student in some university in England. He designed the typeface Cantarell as an university project. Then he was approached by Google, offering him $6000 for the typeface to become free (as in freedom). He obviously agreed and now his typeface will probably (and hopefully) be adopted by many websites. His second talk was on how he actually created the thing – using only open source tools. Actually, only one tool – FontForge, even tho in the beginning he tried to first create the basic parts in Inkscape (but turned out that wasn’t the best approach).

Another interesting talk was on designing typefaces for African languages by Denis Moyogo Jacquerye. I never thought that they speak like 2000 languages in Africa, but as I imagined most of them are only being spoken. I was also interested to see that the langs actually combine both Latin and Arabic features in some cases.

Day 3
I got so pissed off of myself for oversleeping again and missing Jimmac‘s talk… Thankfully it was recorded, but still, it’d be great to watch that guy explaining his icon workflow. Anyway, at least I made it for Ton Roosendaal‘s talk on Blender – for which, unfortunately wasn’t enough time, so he had to rush through most of it (a technical problem in the beginning was the main reason).

I should say that I adore this guy. Not in the fanboy “OMG TON FTW!”-kind of way (believe it or not, there are a lot of true teenage fanboys in the Blender community). I just find him a very inspiring person, somebody who actually does things, makes them happen and works his ass off to achieve huge goals. A man of action, a tough guy, but also a guy who doesn’t take himself too seriously – no huge ego or anything like that. The Blender Foundation (along with the Blender Institute, but it’s sponsored by the foundation and both are being ran by Ton) is one of the wealthiest Open Source foundations, but it also produces great work. More on that later. If you’re interested in Blender or why I like Ton you may want to watch this interview with him. Now just to brag a bit:

(Don’t ask me why so serious, I really don’t know ;-) The two other guys are Pablo and Soenke from the Durian team).
Speaking of the Durian team, the guys behind the third open movie, there was a workshop with four of them – the pictured above Pablo and Soenke along with Jeremy and Nathan. For the unfamiliar this means that I had the opportunity to get some advice/lessons from some of the best Blenderheads alive – which is, pretty good (look at their portfolios, google them or whatever to get an idea). Unfortunately I don’t have much knowledge and experience myself to ask some not-too-stupid questions, but they were nice enough to show us some basics (luckily everybody was just a beginner, some of the people on the workshop had never actually used Blender, so I wasn’t alone). It was quite furn, Pablo demonstrated how to model faces using… um, a reference?

For those who don’t know – in reality, one would place an image of a head in both front and side view in the background and model the 3D mesh on top. Pablo actually used Nathan’s shadow – it was quite hilarious. We really had a lot of fun and I learned a some things. Thanks, guys.
Next talks that made an impression to me were Alexandre Prokoudine‘s digital photography on Linux and Darktable. This guy is like a machine – he’s participating in like a million projects and he does great job. Multi-touch support in (Ubuntu) Linux by Steve Conklin was quite interesting and made Jeremy dream about animating on a multi-touch screen. No photos unfortunately. I missed the next talks since I had to do something else, but I was back for the Inkscape for everybody discussion/talk. Shared my Inkscape story, acted a bit goofy telling them I miss a native Mac version. I think after this talk we took a group photo of a lot of people who attended (certainly not everybody – some people were gone somewhere, some didnt want to be in the photo, etc). No idea where to get it, but I’ll find out soon.
Finally at 20:30 the fun begun – a sneak peek at Sintel – the third open movie (aka project Durian). I really hope there is a recording for that one since it was truly hilarious in the beginning – Nathan made the crowd to “woo” and “boo”, asked.. heh, interesting questions, etc, lots of laughing. You should see it, I’ll post a link when the talk is online. Then they actually showed parts of the movie, explained the process of creating it – technical stuff, not so technical, etc. It was really, really interesting and I have to tell you – that short movie is really professionally made, despite the low budget. Really great stuff. They expect it to be ready for SIGGRAPH, which is in the end of July.
Then we went to two pubs, had some good time until… uh, four in the morning. Nathan turned out to be very cool person, we talked quite a lot (on very geeky and not so geeky topics, even stuff like feminism), walked around to find a cathedral (no idea what it’s name is), went back to the pub, etc. It was pretty cool. We both agreed that Brussels has an unique atmosphere and feels somehow at home. Even for an American, which is quite interesting.

Pictured: happiness
We were with the MyPaint developers, here is a picture of me with Martin Renold:

I look quite creepy on this one…
Anyway. After almost no sleep I got to the final LGM day today. Few short talks and discussions (the most interesting one – where is the next LGM going to be, its not decided yet but my bet is Asia), lots of thankyous, applause, woo’s, hugs and so on.
Until finally, here I am in the hotel. Last night in Brussels… I’ll certainly miss it. LGM was truly a great experience – met lots of cool people, some of which I never thought I’d meet. Learned tons of new things and not related only to technology or design at all. A huge thank you for the staff and everybody who was there.
And a small suggestion to the organizers of the next meeting: for Christ’s sake, no vegan/vegetarian-only meals! :P

by admin at May 30, 2010 06:46 PM
So, I’ve been in Brussels for three days now. Yesterday we had some pre-conference workshops, short introduction and it was kind of a warm-up for the staff, since we were only like twenty-thirty people. I attended a workshop on Processing by Dan from LUST – it was pretty cool. I didn’t do too much, nor I learned Processing (its a freaking programming language after all) but that wasn’t the point. I’ve been interested in the thing for quite some time, now I’m even more and I’ll actually try to learn it (I am actually going to write a separate post on the topic explaining why its important to me). Thanks, Dan, it was a good experience meeting (and learning from) you!
Today the actual conference started – about 200 people. Considering that most of us are total geeks I was surprised to see a good share of women in there. Of course I overslept a bit and missed the Welcome talk in the beginning, but except that – everything went great. The talks were all very interesting except the too techy ones. Believe it or not, Python was probably the most common word for the first three hours (at some point I was expecting KainX to storm in with a sword and a massive slaughter). And lots of slides with code. Too much code for a presentation in some cases.

The talks that were most interesting to me were… oh, well.
One of them was by a Argentinian graphic design professor. She talked about how she and her students used only open source software to create their stuff (which was pretty cool, by the way), into what problems they ran – purely technical or political, etc. On my question whether or not she’s afraid that after her students graduate they won’t be able to find jobs in companies/agencies because they don’t use the Adobe/Corel stuff, she replied that she is. But she’s encouraging them to use proprietary software from time to time so they’ll be able to work with both. We also agreed that the basic concepts of computer graphic manipulations are the same, the difference is in UI and other small things that are more or less easy to overcome.
We had both a workshop and a talk from an… actress. Helen Varley Jamieson, a very nice woman, she presented her thing – UpStage, which to my understanding is something like an online (streaming) theatre with creative people playing roles and… uh, lots of things. Just check it out :-) Of course part of her story was how free software helped her and her friends build the website (they’re using flash for some things tho).

There were two guys from the Fedora design project. I don’t remember their names, but they were funny – both very nervous and with very bad English. It was pretty cool to hear the story how the community made the pro designer hired by Red Hat leave and took over his job :-)
In the end three guys from some school in Rotterdam told us how they migrated the Arts course on open source. They even made the students (who were previously Win/Mac users) use Gentoo, simply because of the “culture shock”. The students actually did some pretty neat things… I was quite impressed.
Another thing that happened during one of the breaks – I accidentally (trying to find a spot with stronger wifi) met Jonathan Watt from Mozilla. Since he is working in the SVG team we had a talk on what things I miss and want to see implemented, etc. We had a really nice chat, in the end of which he actually said I helped him with my suggestions and examples of what I can’t do with SVG right now, so I was and still am very happy.
These are the highlights from today. I’m looking forward for tomorrow – some very interesting talks on Inkscape, Google’s new hosted fonts thing, Ghostrscipt, other typography/layout stuff. Stay tuned and if you want more updates, follow me on Twitter.

by admin at May 27, 2010 08:17 PM
Great news! I was invited and sponsored to go to Brussels and attend Libre Graphics Meeting along with some pre-conference workshops!
I’ve always wanted to attend this conference – although right now I’m with a Mac, I’ve been using Open Source software for as long as I have a computer (I used to use Linux and then FreeBSD as a desktop for 5-6 years or so), I’ve done some of my best works using Inkscape/Gimp, and I’ve been toying with Blender for some time now (tho I can’t produce any serious work yet).
I read the draft program and it seems like its going to be a lot of fun – the Blender (and Durian) team are going to talk about the future of the software, the third open movie Sintel, there will talks by people from Inkscape, Gimp, Krita, Scribus, an app I’m very interested in – MyPaint, even Mozilla. There will be discussions, workshops, talks on so many topics – from color management to open standards (like OpenRaster, I’m very interested in this project as well).
It will be a huge information overload and, thats just great – almost as great as the fact that I’ll be able to meet some very big names. I’ll try to cover the whole thing here as much as I can, sharing what I think is most important. I guess I’ll also tweet a lot during the event so if you have a Twitter account you may want to start stalking me!

by admin at May 18, 2010 07:22 PM
A few days ago Carsten (a.k.a raster) told me he made a simple illustration for enlightenment.org‘s about page. His idea was to create something to show that Englightenment and it’s software libraries are well, elegant. And what says “elegant” more than a pretty lady in a nice dress? What he did was this vector:

And he asked me to improve on it. We talked about it a bit – basically he wanted to keep it simple, black/white/grey with only the lips in solid red. He also mentioned soemething about a statue/sculpture. I tweaked and experimented with it quite a bit and here is the final result:

Obviously it’s not 100% anatomically correct, but that wasn’t the point anyway. I used Illustrator’s mesh tool for the dress and the body shading, then painted over and added marble-ish texture in Photoshop. The shading on the face is mostly painted, because I just couldn’t do it properly in Ai. Unfortunately the file cannot be exported to SVG again, but I provided a high res, layered PSD for Raster to tweak it and play with it if he wants to.
The illustration will soon appear on e.org :-)

by admin at May 13, 2010 11:28 AM
Go!
Well, it was about time. I’ve been planning to have a blog in English for ages (I’ve been running one in Bulgarian for 5 years or so). And finally, here it is. The design took me a while (about 10 days), because I wanted something beautiful and (more or less) different. And well, I had to refresh my CSS/PHP/XHTML skills. Initially I was about to buy a WordPress theme, but I wasn’t able to find something that suited my needs and taste. Then I found this theme called Coffeedesk, and used it as a starting point (therefore the credit for the code goes to its author, I just modified it here and there). As you can see, I raped it pretty badly, but I do like the result. More importantly – everybody so far likes it. And I asked people with taste, professional web and graphic designers, illustrators, artists – I guess that means something ;-)
What can you expect? Well, I’ll be writing about art, art history, graphic/interface/icon design, illustration, etc, along with more geeky stuff like software reviews, tips, tutorials. I plan to interview people who are somehow involved in those subjects as well. I already have two interview confirmations from two persons I admire, so that’d come pretty soon. I also plan to do some podcast and video, to put a voice behind the text, but thats for the future.
Thats it. Take a look around and let me know what you think about the site or my work. I also invite you to subscribe, follow me on Twitter and/or become a friend on Facebook.

by admin at May 09, 2010 02:40 PM
Ephoto's renovation to elementary is nearly done. The look remains very close to what was done with evas+edje, and the functionality does all of the same things and then some. While Ephoto is using mainly elementary widgets, the look of the application is still primarily handled by an edje theme. The theme is very simple at this point and could use suggestions and kindness, especially with animation ideas(hint hint Toma).
Stephen Houston smhouston88@gmail.com
April 22, 2010 02:48 AM
This week I’ve been playing a little with e_widgets and gadcon api and have done an initial integration of oFono into E17. I’ve wrote a small module to show status information of mobile modems and it’s powered state.

When powered, network name and status are shown on the tooltip, together with signal strength, which is also shown on the notification area image.

If you click over the notification area the modem name and power control are shown in a small popup.

The module can be used to show info about usb gsm modems or mobile phones over bluetooth. Give it a try, report bugs, make suggestions. There is more to come on this topic soon.
 jprvitae_module_ofono-tip_powered_offe_module_ofono-tip_registerede_module_ofono-popup_powered_on
by João Paulo at March 19, 2010 06:28 PM
Currently the efl svn received a great cleanup which where showing a few bugs in easy_e17.sh 1.3.1 . Now this version comes with some nice speedups and bugfixes...:
- added NetBSD support (thanks to Richard Freytag)
- nice src cache and speedup (thanks to Jan Christoph 'obiwahn' Uhde)
- new libary enlil and shellementary
- new application enki
- new e17 module quickaccess
- removed libary esmart and exml
- removed applications entrance, estickies and eyesight
- removed e17 modules configmenu (now an e module) and bling
Please upgrade as usual.
by Brian 'morlenxus' Miculcy at March 16, 2010 12:03 AM
In the past weeks ProFUSION coworker Gustavo Padovan was hacking on bluetooth support for Enlightenment ecosystem using the BlueZ stack.
This module follows my previous ConnMan module and is built upon the same base. Since BlueZ and ConnMan are both developed by almost the same developer group, the DBus APIs are very similar. The current module is quite simple, yet useful and allows pairing devices. The idea is to further extend it to be a full Bluetooth Agent, allowing different authentication and authorization methods, maybe go even further and send files using the OBEX protocol.
The infrastructure is available as ebluez inside e_dbus, so it is easily accessible to all EFL applications. The infrastructure exposes just a handful methods that were required by the module, but it is easily extensible as most methods are similar and the helpers do most of work, just need to specify the method names and convert types.
ProFUSION is also working on oFono support. Stay tuned to see the module João Paulo is cooking, the e_dbus code is already in SVN.

by Gustavo Sverzut Barbieri at March 12, 2010 11:27 PM
Hi!
I present some interesting numbers regarding startup times and memory footprints. This started as a simple list but grew and expanded as raster pushed me along. I really only needed a little bit of data for my Uni assignment to put in a CSS table. It’s now a fairly comprehensive test. These results come from my system, with a slight bit of tweaking to make all the environments used to my liking, yet quite minimal. Results obviously vary from system to system and this is the raw results I found on my system. Your results may differ. (Now with shiny graphs!)
Toma.
Results:
Environment
Mem base: Used Mem – Used Buffers&Cache
Mem user: Same with Chrome + Xterm loaded
Time: Time from boot to loaded environment. +/- 0.2 secs
Mem Base Comp: Total memory usage – (X11 + Xterm) memory usage
Time Base Comp: Boot time – Base Boot Time
X11 + Xterm
Mem base: 438792 – 231104 = 207.688 mb
Time: 19.8 secs
E17
Mem base: 459368 – 245360 = 214.008 mb
Mem user: 627860 – 348424 = 279.436 mb
Time: 21.4 secs
Mem Base Comp: 6.32 mb
Time Base Comp: 1.6 secs
XFCE
Mem base: 556552 – 306304 = 250.248 mb
Mem user: 746440 – 435060 = 311.380 mb
Time: 26.4 secs
Mem Base Comp: 42.56 mb
Time Base Comp: 6.6 secs
Fluxbox
Mem base: 445740 – 232680 = 213.060 mb
Mem user: 611544 – 341940 = 269.604 mb
Time: 21.8 secs
Mem Base Comp: 5.372 mb
Time Base Comp: 2.0 secs
Gnome
Mem base: 652904 – 370628 = 282.276 mb
Mem user: 809520 – 470540 = 338.980 mb
Time: 32.1 secs
Mem Base Comp: 74.588 mb
Time Base Comp: 12.3 secs
KDE Software Compilation® 4.3.2
Mem base: 1032896 – 650124 = 382.772 mb
Mem user: 1197904 – 753468 = 444.436 mb
Time: 35.9 secs
Mem Base Comp: 175.084 mb
Time Base Comp: 16.1 secs
*** Each environment was slightly tweaked to make it
more user friendly and usable. They are all very close
to being a default setup. GDM auto-login was used.
64bit Ubuntu 9.10 system with KDE,Gnome,Flux all from
the default repos.***
 Toma
by edjy at March 09, 2010 05:31 AM
Hello all,
Users of recent SVN may notice recent breakages around things that use Efreet and FreeDesktop.org (XDG) standards.
The breaks were introduced after changeset:46726 "Eet cache for efreet desktop". The commit title says it all, Sebastian is speeding up our previously quite slow and memory heavy code with Eet-powered cache to be shared amongst multiple processes.
Efreet was the slowest bit in whole E platform, a real pity. But Sebastian invested quite of time to have a third party process to parse all ".desktop" files, generating an optimized blob stored into Eet.
Eet data structures will be quite fast and strings will be only pointers to memory if using functions like eet_eina_file_data_descriptor_class_set(). This is quite good for both load time performance and runtime memory consumption, as no strings need to be allocated (so less Virtual Memory pressure), the pages are shared among different processes and can be sent back to file system, helping applications that actually need memory (less OOM cases). This is quite easy to use, and highly recommended for applications, even when you do not share with other processes.
So why do we have breakages, you might wonder? The crashes are due the way Efreet API was exposed and used. Instead of providing opaque Efreet_Destop structures with getters and setters to fields, it was exposed as direct access struct with public members, making cases such as the following common:
void name_changed(Efreet_Desktop *desk, const char *name)
{
free(desk->name);
desk->name = strdup(name);
}
This is spread all over E17, but major user is desktop file editor. Other parts may do it as well, such as changing the border or ibar/ibox icons.
These issues should be fixed soon. If you'd like to help with patches, just mail them to enlightenment-devel mail list. If you can't avoid these crashes, be sure to checkout the old Efreet meanwhile:
svn checkout -r 46726 http://svn.enlightenment.org/svn/e/trunk/efreet
Sorry about the inconvenience.
by barbieri at March 09, 2010 12:23 AM
Since a few months i'm using the urxvt terminal because of the great (ascii art) tabbing support.
As i often recompile efl sources i also often restart e17. This was no problem until now - as e17 seems to lost track of the urxvt windows after restart. The result was that the urxvt windows didn't got a border and didn't accept focus. They where simply stacked on top of all and i needed to kill them after each e17 segfault or restart.
Tonight i was talking to raster about that problem and we noticed that the tabbed urxvt windows where set to _XEMBED_INFO. This property is used by application windows which are swallowed into other windows (like gnome applets into gnome-panel). So that was the reason why e thought that these windows doesn't need a border. So how to fix?
The tabbing extension is a simple 300 lines perl code, so very easy to debug.
When trying to understand the code i first search for 'embed' - one hit. After disabling and starting urxvt i got two urxvt windows - one containing the tabbar and one a little bit smaller with a shell. So the shell window was swallowed into the tabbar window - and only the shell window got the _XEMBED_INFO on start. I simply needed to find the place where these property was set on the main window...:
--- /tmp/tabbed.old 2010-03-06 04:42:15.000000000 +0100
+++ /usr/lib/urxvt/perl/tabbed 2010-03-06 04:41:08.000000000 +0100
@@ -119,11 +119,13 @@
my $cur = delete $current->{$atom};
- # update if changed, we assume empty items and zero type and format will not happen
- $self->XChangeProperty ($self->parent, $atom, $type, $format, $items)
+ if ($atom != 447) # don't set _XEMBED_INFO on main window!
+ {
+ # update if changed, we assume empty items and zero type and format will not happen
+ $self->XChangeProperty ($self->parent, $atom, $type, $format, $items)
if $cur->[0] != $type or $cur->[1] != $format or $cur->[2] ne $items;
-
- $self->{current_properties}{$atom} = [$type, $format, $items];
+ $self->{current_properties}{$atom} = [$type, $format, $items];
+ }
}
# pass 2, delete all extraneous properties
by Brian 'morlenxus' Miculcy at March 06, 2010 03:45 AM
Hi :)
As you can see, Planet E has a new theme, fitting with current Trac and website themes. It may have a few flaws, though, so report to me if you find something :) I'll continue to improve the theme.
New Planet was tested under Firefox/Iceweasel and Chromium browsers, in both it works fine, but I didn't test for example in Opera, so it may display something incorrectly (but it shouldn't)
It uses almost the same template code as official website, also CSS is the same, but with a few modifications done for Planet.
I hope you like it :)
by quaker66 at March 05, 2010 10:30 AM
Last June, Missy and I were home visiting for our baby shower when my mom received word that she had been diagnosed with breast cancer. Luckily, they caught it early and the tumor was only about 1 cm in diameter. After her lumpectomy, she underwent chemotherapy and just recently finished her radiation treatment. She is currently cancer free, and her hair is starting to come back in. With everything my mom went through during her treatment, my sister Elena decided to participate in this year's Susan G. Komen 3-Day for the Cure walk. If you would like to sponsor her, please donate at her participant page.
by Nathan (noreply@blogger.com) at February 20, 2010 12:21 PM
Missy posted about some significant events in our family life over on our shared blog. Rather than duplicate them here, please take a look. Unfortunately, we fell off the wagon on that one too and it hasn't been updated since last May either.
by Nathan (noreply@blogger.com) at February 20, 2010 09:57 AM
Last May we launched a new service for Project Hosting on Google Code at Google I/O: hosting for the Mercurial version control system! Our Mercurial implementation is somewhat unique in that it doesn't use a traditional filesystem for storing data, it uses Bigtable instead. This allows wide horizontal scalability to host thousands of repositories, which my co-worker, Jacob Lee, explained quite well in his Google I/O talk. Since then, we've added support for server side repository cloning to allow projects and users more flexible working methods.
by Nathan (noreply@blogger.com) at February 20, 2010 09:54 AM
After almost a year w/o a single post, it's time to make an attempt at reviving this neglected space again. To kick start the process, I'll make a series of posts recapping some of the events of the last year.
by Nathan (noreply@blogger.com) at February 20, 2010 08:52 AM
The last round of news regarding Enlightenment were pretty nice, but one thing that we could see from the community feedback is that there are lots (and I do mean lots) of people out there who do not know its current state. Mostly this is caused by our serious public relations issue (lack of official news, etc.), and we’re planning on fixing this.
But right now, I just wanted to correct some of the misinformation we saw:
- Question: when will E17 be released?
- Answer: Soon. No, seriously, I really mean it. Currently work is being done on finalizing a few remaining items of our Release Plan in order to make the first stable release of the libraries, which is the main focus of work right now. After that is done, then focus will be shifted to E17. But if you really want a date, I can’t give you one. Best I can do is say: “join us and help, and then the date will come sooner
”.
- Question: does EFL support OpenGL?
- Answer: YES, it does, both OpenGL and OpenGL-ES 2.0. There is much to be said on this topic, and some posts with more info and benchmarks are coming soon, but for now just rest assured that there is support for it and it’s kicking ass.
- Question: is it being actively developed? Or is it just a bunch of people who are hacking on a project without future?
- Answer: there is a lot of development going on, and it’s most definitely not a project without future. There are many companies using EFL because the libraries are pretty good, fast and stable. And the libraries can be used for softwares that run by themselves, they definitely do not need E17 to be running. Some examples of projects using EFL are set-top boxes, airplane infotainment systems, etc.
- Question: why should I use the EFL instead of Qt or GTK+?
- Answer: the first reason would be because you prefer to use it. Seriously, give it a try. Other than that, if you’re doing a project for an embedded system, chances are the EFL might suit you better than the other two. There was heavy work on optimization done on the libraries, and they usually respond a lot better on smaller hardware than their counterparts. If you’re a designer or working closely with designers on a project, then that might also be a pretty good reason to check out Enlightenment (most specifically Edje).
- Question: how do I learn more about EFL? How can I help?
- Answer: documentation is something that we’re working on right now, and it’s one of the main areas we still need to improve a lot. A pretty good place to start is the document that my colleague Gustavo Lima wrote and which is available here. And if you decide you want to help (there are some low hanging fruit there, don’t be afraid) just join us at #edevelop on Freenode and hang there for some time, chances are you will quickly find something to do (and if you haven’t, just ask there and people will quickly find something for you).
That’s it for now. If you have any doubts, just get in touch.
by messias at February 19, 2010 01:44 AM
Hello,
I'm glad to present the first actual showcase of Eupnp: a UPnP browser. It's a simple Elementary-based application capable of browsing any UPnP-capable media servers. Here are some screenshots:
 Browsing multiple media servers
 Browsing folders and files of a MediaTomb server
Although it's still a first crude version, it'll follow up with some UI improvements, playing media using Emotion and possibly pictures using elm-photocam.
by André Dieb (andre.dieb@gmail.com) at February 18, 2010 09:02 AM
Canonical developer Jamie
Bennett announced in his blog post The
New UI for ARM Based Ubuntu Devices how Enlightenment Foundation
Libraries (EFL) enabled rich graphical user interfaces even on
non-3D-accelerated ARM devices.
Enlightenment Foundation Libraries were conceived and developed with
performance in mind. Started in 2000, the current incarnation was
designed based on previous experience with Imlib and Imlib2, libraries
known to be quite fast. Over the past 10 years, the API changed a lot to
be easier to use, but the performance impact of each and every change was
carefully considered and benchmarked using the Expedite tool.
The most performance-critical part of EFL is definitely Evas, the canvas
(drawing) library. Fast in both software- and hardware-accelerated environments,
it always shipped with lots of engines such as buffer, X11 (Xlib/Xcb)
and XRender, but it recently gained more interesting engines due to companies
that contributed back their work:
- 16 bit-per-pixel-optimized engine, contributed by INdT.
- SDL, contributed by Free.fr.
- DirectFB, contributed by ProFUSION.
- OpenGL-ES, contributed by Samsung.
However, Evas is not the only optimized piece of EFL. Eet, used for
binary, read-efficient configuration and resources file, boosted
Canonical's Ubuntu Netbook Remix (UNR) startup time. The initial
version using GConf was quite slow to provide information, so these
were cached with Eet for immediate access to background images,
display modes, and font configuration.
Aside from being used for configuration files, Eet is also the base of
Edje, the
theme system used by UNR, Enlightenment DR17, Elementary,
Canola2 and
others. Edje manages a state machine of Evas objects' states, described in a
JSON/C-like language, later compiled into an access- and space-efficient
binary format. Its power and flexibility continually amaze its users,
as said by Jamie in his post:
Another of the great things about this launcher, as opposed to the 3D
launcher shipped with Karmic, is that it's extremely theme-able.
Last but not least, the new kid on the block, Elementary,
boosted development time with its canned ready-to-use widgets. Like
all the previously-presented libraries, Elementary is very fast
and customizable. It is quite unnoticeable in UNR, but it is the base
of lists and some error dialogs.
The Enlightenment team is proud its products are being used more and more
on embedded systems, be they e-book readers, phones, or TV's; x86,
ARM, or MIPS; accelerated or non-accelerated hardware.
by barbieri@profusion.mobi
(Gustavo Sverzut Barbieri
) at February 17, 2010 06:30 AM
Greetings all,
Recently, theres been a bit of discussion on th B&W theme and its need to be fixed. Well, not fixed, more along the lines of a revamp for release. YES there is the faint glow of a finish line in sights! If you have the skills and knowledge, please look at:
http://trac.enlightenment.org/e/wiki/Theme_Revamp
…to see the direction us developers would like to see the theme take. Patches and changes can be sent to myself or the development mailing list. If you need assistance in any changes I will happily give anyone guidance on how to do so. I am going to be finding it VERY hard to do much of the things I love to do soon like messing around with edje and contributing to EFL due to….
Study! Yes study. Im studying to get a Bachelor of Technology in Computing Studies! This means Ill be able to do all sorts of programming and management stuff as I plan to do minor in Management. Ill be studying with Open University in Australia over a few years to get this. Since I havent had a lot of experience with many of the course elements, I suspect it will eat up a lot of my time. But, as I learn these new things I will be trying to contribute as a way of studying & practice.
That about sums it up for now. I dont start for another week or so, so Im hoping to get these theme revisions done before then.
So here I go into the wild blue yonder.
 Toma
by edjy at February 11, 2010 01:01 AM
As some people might already know, Profusion has been working on a new Edje editor, intended to replace the one there was on Enlightenment’s subversion repository. I’m now participating more actively in its development and, besides that, I did help with an early version of its user manual.
It will be fixed/revamped incrementally, so that even at development stage we can have users able to do their GUI creation jobs done with it.
Stay tuned for more news on EFL applications development infrastructure soon.
 Gustavo
by Gustavo at February 10, 2010 09:44 PM
As part of my job activities back in August 2009, I wrote an introductory document on the Enlightenment Foundation Libraries as a client request. It is now being publicly released, hosted at Enlightenment Project’s subversion repository.
You can find a rendered version here, too, but I can’t promise how often it is going to be updated. The idea is have this document accessible by Enlightenment project’s website both in PDF and HTML formats. Ideally, both forms would be updated by a cron job or something. We’ll work on that soon.
Feel free to contribute to it, if you wish (license is Creative Commons Attribution-Share Alike 3.0) and, of course, to read it. This is one more step into making the EFL more accessible and recognized worldwide by GUI application developers.
 Gustavo
by Gustavo at February 10, 2010 09:08 PM
Hi all,
Ive recently been considering updating all my themes so they cover all the most recent E updates with widgets and such. Since there are so many of my themes, Im going to take some time to do so. Now is the time to request any changes and things you dont quite like in any of my themes on Exchange!
I will also be adding a paypal button to my links on exchange. Im doing this because I put an immense amount of time and effort into making these themes and I hope the community likes my work enough to throw me some beer money. In the long run, Id love to find a job working on edje stuff and design.
But for now, Im getting back into themeing and I hope you can all appreciate it.
If you’d like to donate now, Im tomhaste at gmail dot com on Paypal
 Toma
by edjy at January 27, 2010 11:16 AM
I’m proud to present you with my last Enlightenment module: ConnMan!
For those unfamiliar with ConnMan, it is a solution to configure and manager your network connections. Unlike NetworkManager, it is very simple and fast, specially for users of it’s DBus API. It will manage everything, including DNS proxy to avoid messing with your /etc/resolv.conf. It also handles WiFi, Ethernet, WiMax, Bluetooth and even Cellular connections easily. For developers using it, it is very simple to use and you just need to use the high level “Service” interface.
In order to make it more useful, I created econnman inside e_dbus that abstracts the DBus API as a nice C interface that matches it perfectly and optimally, keeping objects in sync with server and emitting Ecore_Event whenever things change.
The module is quite simple, yet useful. As seen in the above screenshots, it will list the current status and service name (if module is bigger than 32px), when you mouse over it will show a fancy popup with more details, including error messages and IPv4 addresses. If you click it, you get a simple popup with the current connected service selected and clicking it will disconnect, while clicking a new one will connect to that one. Services requiring password will automatically ask for it, while those that failed to connect will also re-ask your password.
The module nicely exposes the offline mode feature to turn off radios. It integrates well with E17 mode: whenever you change E17 or ConnMan, they will sync with the other.
There is still work to do, mainly focus on the cellular specific needs and also create static services. And I also plan to have an application to allow managing your services, reorder them (that defines the priority) and even switch technologies that are available.

by Gustavo Sverzut Barbieri at January 02, 2010 11:05 PM
This new release received a lot of bugfixes for features like the osd notification.
It now builds the python bindings, which where required by the new edje editor 'editje'.
Also there where some optimizations for FreeBSD.
Thanks to Tobias Gion and Giuseppe 'ferdy' Miceli for their patches.
- new commandline argument --ldflags=<flags>
- new applications eyelight and editje added
- new libary libeweather added
- new bindings python-efl added
- new module skel added
- removed applications edje_player, edje_viewer and enna
Download as always, enjoy and report bugs!
by Brian 'morlenxus' Miculcy at January 02, 2010 10:42 PM
Eet 1.2.3 has been released with several bugfixes and improvements. It is
considered stable. It is available from
here.
Eina, Evas, Ecore, Embryo, Edje, E_Dbus, Efreet, Elementary and Enlightenment
have had a snapshot release (snapshot 063), and can be downloaded from
here. If
you are taking source from SVN, then
use SVN revision 44144.
Eet 1.2.3 was released, with the following changes:
- Deprecating eet_data_descriptor*_new
- Add eet_data_descriptor_stream_new and eet_data_descriptor_file_new
- Add eina helper
- Cleanup Eet_Data_Descriptor code
- Fix eet data encode to encode empty structs etc. so save saves something as opposed to nothing
- Fix documentation of eet_data_write() and eet_write() for return value to return # of bytes written, not 1 or 0
- Fix build with suncc (missing alloca() declaration in eet_cipher.c)
- Use new Eina_Log infrastructure to report error
- Remove apparently useless eet_freeleak_* from eet_data
- Add Fixed Point support and make it possible to switch from float and double to any fixed point variant supported by eina
- Remove useless Eina_Log macros
- Check the returned value of eet_init() in the binary
- Use binary mode of fopen() in eet_main() for Windows compatibility
- Initialize eina first in eet_init()
- Allow generation of one single file with all source code in it. See configure help to enable it (--enable-amalgamation)
- Add check on libgcrypt library in configure. Needed when GNUtls support is enabled
The snapshot release of Eina, Evas, Ecore, Embryo, Edje, E_Dbus, Efreet,
Enlightenment and Elementary includes lots of improvements and fixes. Too many
to put here, but these are not considered stable yet, and thus we don't track
changelogs. They do impose soname changes and module versioning now to make
packaging cleaner alongside SVN source installs. Please download, try and test
these.
by raster@rasterman.com
(Carsten Haitzler
) at December 03, 2009 02:30 AM
Well! Im quite happy with it. Ardy 1.0 now sends AND receives serial data from the Arduino. This means you can control Edje animations via the Arduino, and you can control the Arduino from Edje. Team this news up with Editje or the more developed Edje_Editor, and you have a powerful platform for making simple physical interfaces. Im hoping this kind of work gets used in education. I am planning on using the Arduino code simplicity to get youth into coding and the youth centre I currently work in.
STILL, Ardy is in PROTO in the E SVN.
Enough for now! Time to get cracking on an Edje robot or something… Hehehe.
 Toma
by edjy at November 27, 2009 02:49 PM
Wow! Just after my last week post about companies supporting EFL, we were pleased with two more announcements:
- Ardy, a tool that brings together EFL and Arduino using Python
- Free.fr, the second biggest ISP in France opened up the development of their Freebox HD set-top box using Enlightenment Foundation Libraries and Mozilla JavaScript library. This is pretty amazing as it’s the biggest deployment of EFL out there, an uncertain number that ranges from 2 to 3 million devices.

by Gustavo Sverzut Barbieri at November 23, 2009 12:03 PM
Since now a few days, the Enlightenment Foundation Library are running on
around 2 or 3 millions French set top box. Free.fr is openning the development
on the Freebox HD by using a combination of the EFL and Mozilla JavaScript
library. This open with a relatively old hardware some great graphical
possibility. Free.fr is planning to open some kind of store for this JavaScript
apps during the beginning of 2010.
So what does this mean for you as users and developers? It means that the EFL
are able to provide some eye candy with limited hardware and this target is
here to stay for some time. In the past, Freebox S.A.S as provided code that
improve some specific bottleneck of the EFL, and will continue in the futur.
We focus on 720p output, 1080p is also supported. Finally we are also working
on keyboard issue and some library will see improvement in a near futur, so
stay tunned on this too !
Of course, we are staying close to Enlightenment SVN and we are continuously
integrating our work in current SVN, so people can watch and help to see what
they want in it.
by cedric.bail@free.fr
(Cedric BAIL
) at November 20, 2009 03:00 AM
Introducing… Ardy!
Ardy is a small set of programs that show how to link up EFL to python then to Arduino. This is a great learning tool for Edje and python-EFL… and Arduino! With the release of Editje, Im sure making something fun out of this will be a real no brainer.
The Arduino sketch is included and the schematic for the breadboard is in the README.txt, which is in trunk/PROTO/ardy in the main Enlightenment SVN.
So anyway, heres what it does. Dazzling, isnt it?

 Toma
by edjy at November 19, 2009 03:07 AM
Hey all,
Yesterday we started to see some announcements of companies backing Enlightenment Foundation Libraries development. Of course, INdT was pioneer in that since it was decided to use it for Canola2. Later on I created my own company and we officially support EFL as GUI alternative (together with Clutter, GTK and Qt), being the first company to do that.
While there are speculations about which company is it, what I can assure you is that this company is serious and is not alone. ProFUSION itself worked on EFL on behalf of various clients and you may expect another press release about a big French internet and telecom company deploying a massive number of units with EFL pre-installed. Not accounting various community driven projects that choose it and E17 as its base platform, such as OpenMoko and OpenInkpot.
Bottom line? While EFL does not get the same amount of marketing and visibility as Qt and GTK counterparts, it is playing fine enough to be considered to ship in dozen million devices in the next year. Why don’t you consider it for your project? Be open minded and try it out

by Gustavo Sverzut Barbieri at November 18, 2009 10:48 PM
We are working with a top-5 electronics producer (one of the largest in the
world, who produces millions of mobile phones, televisions, sound systems
and more per year) to bring Enlightenment and especially it's deep technology
to their products. In fact not just working with this manufacturer, but they
are actively sponsoring development on Enlightenment and EFL to ensure it does
what is needed for their products (beyond what it already does).
What does this mean for you as users and developers? It means that you are
likely to see top-quality electronic devices running the same things you use
on your desktop. This means as a developer the same libraries and API's will
be there, ready to use, out of the box. You can even start your development
now in anticipation. Use Elementary, Evas, Edje, Ecore, Eet, Eina, and so on
and design for a small screen with a "finger" and minimal keyboard (by small
screen i mean in the range of 240x320, 320x480 and so on up to 480x800 for
portrait, and similar for landscape (320x240, 480x320, 800x480).
Do it now so you have code that already works. you can develop on the desktop
no problems and it ports with a simple "make" to the devices in question.
That's about all the information we have for now. Expect something in the
future with more details, such as what products and roughly when.
by raster@rasterman.com
(Carsten Haitzler
) at November 18, 2009 07:20 PM
Every free software project aims to bring more developers. However once we get people interested, how are they received, how to proceed and get started on E17/EFL development? This topic is becoming more and more common as E17 becomes more "ready" for it's final release and also EFL is being used in lots of devices, specially mobile devices like phones, pdas, ebook readers and so on.
E Community is trying to solve this with documentation, template generators and now screencasts!
Documentation
We now have daily updated API documentation generated from Doxygen, these are at http://www.enlightenment.org/p.php?p=docs (click "Docs" in E website). Rasterman started Elementary with great docs from start, Eina is a good example as well, with tutorials and such, ProFUSION also helped a bit with review and documentation patch requested by clients.
Template Generators
We had E-MODULES-EXTRA/skel for a long time, but that was not enough. Then elementary-generator was created with helper script and even nice GUI to create all the boring parts: makefiles, configure.ac, license file, C source file with gettext support and even Elementary's quicklaunch feature. The generator itself is easily extensible, all one need is to add files to some directories (description, screenshot and source).
Elive guys created a similar tool "emodule-creator" deb, which is handy to start writing E17 modules with minimal effort.
Screencast
As Thanatermesis put very well in his mail:
Now there's only one thing needed to motivate new ppl to make e17 modules, something "to see".
The ppl dont' read, not much ppl at least... the ppl are lazy to download something and to try it, the best is a tutorial explaining the creation of an e17 module, but finally, what's better for that than a video that shows how we can build and customize an e17 module in less than 10 minutes ? :)
and then announced his nice screencast: http://www.youtube.com/watch?v=abNsVyYTSkU
by barbieri at November 08, 2009 01:04 PM
One of the most requested feature for Evas was rotation and other transformations. These are no more, Rasterman just did generic UV Mapping support, enabling rotation, perspective, 3d-simulation and more.
As usual he wrote a fast software engine to make this available on non-3d accelerated, next should come OpenGL and OpenGL-ES as some big players in the industry are now funding his work in both software and GL-ES support, as well as ARM NEON optimizations.
As ProFUSION is also being funded to work on WebKit-EFL, I thought I could demo our work using new rotation support, and the result is quite good:
As you can see, there are still bugs… actually this video was first meant to report a bug with mapping code, but raster is already fixing it.
As soon as I have time I’ll try to update EFL for N900 and try out the new expedite tests, they include 3d cubes, coverflow and more. Hopefully by the time OpenGL-ES will be ready and then we can compare software and hardware performance on this amazing hardware.
All in all, this semester is being quite busy for EFL hackers. Fast OpenGL-ES, UV Mapping, WebKit and soon-to-be-release Edje Editor were all done, with much more to come. Stay tuned!

by Gustavo Sverzut Barbieri at November 04, 2009 12:12 PM
EPhoto Manager is my latest application. This is photo manager written in C and based on the libraries of the Enlightenment project. The aim of the project is to create an application which allows to easily manage a huge photos library included big photo (20 000 x 20 000 for example). In the way to reach this goal EPhoto Manager use technologies like EET to manage the database or the Elementary object Photocam to display big JPEG files.
At the end EPhoto Manager will have a way to synchronize the local library with a distant server to share the photos on the Internet or to save a copy of the database on a server.

currently the features of EPhoto Manager are :
- Manage a list of albums with photos. More information below.
- Manage a list of collections. A collection is a set of albums. For example If you travel in Europa, you can create an album per country/city and a collection "Europa tour 2009", then you put the albums in the collection.
- Tags can be associated to photos, consequently you can group different photos with a common label. For example you can group the photos with your dog under the tag "Lassy".
- Photos can be import from the file system.
- Photos can be transform : rotate, flip, grayscale ...
- A slideshow in fullscreen is present with a set of animation. In the slideshow photos can be browsed.
- Only JPEG file are fully supported right now.
Two videos are available here : Video 1 Video 2
More information are available on the wiki page.
by Watchwolf at November 01, 2009 06:30 PM
Hello, I've been quite busy the last couple months with the university and I'll probably still be until December. Too many exams, course-projects and etc. Until then, I'll be focusing on: - eupnp: end-user applications, documentation, tutorial, libeupnp-av. Any help would be really good!
- (university) annoy-clock: project for the digital systems archicteture course
- (university) voice-scrambler or de-esser: project for the communication systems course
by André Dieb (andre.dieb@gmail.com) at October 19, 2009 09:32 PM
This release features a direct source download for the packages, which should help keeping the disk and bandwidth usage for non-developers smaller (more infos in the preview release message).
Changelog:
- removed libs etk and epsilon
- as etk was moved to OLD, following applications are dead and removed now: edje_editor, extrackt and exhibit
- onscreen notification support (notify module must be loaded in e17)
- new commandline argument --srcmode=<packages/full>
Download, enjoy and drop me a note if you find something uncommon.
by Brian 'morlenxus' Miculcy at October 18, 2009 11:59 PM
This is a preview of the upcoming version 1.3 of easy_e17.sh . It introduced a new feature: The script searches in the svn tree for the destination of the packages and only downloads these source dirs. This should save a hugh amount of bandwidth and disk space usage. You can force the old behavour with the commandline argument --srcmode=full. Notice: If you already have a full source checkout, you need to delete the old dir (probably ~/e17_src) to use this new feature. There are also other new features like onscreen notification using ` e-notify-send`. Please download, test and comment!
by Brian 'morlenxus' Miculcy at October 08, 2009 02:57 PM
It’s done: http://trac.enlightenment.org/e/changeset/42825
This was a often requested feature by friends, ProFUSION clients and people that want to use the large amount of GLib-based libraries with EFL applications.
To avoid impacting each other, the suggested way is to have each main loop in its own thread, communicating these using pipes. This is used by Emotion’s GStreamer plugin, lots of projects inside ProFUSION or for our clients. But sometimes this is not easy to do (Adobe Flash plugin for WebKit-EFL) or maybe we just want to do an experiment until native efl version is available (for example, EUPnP is still in early stages, while GUPnP is rock solid).
This enables (or makes it easier) using nice projects from EFL applications, to name a couple of personal interest:
- Rygel: Rygel is a collection of DLNA (UPnP AV) services (devices in UPnP speak).
- GUPnP: object-oriented (GObject) open source framework for creating UPnP devices and control points.
- PulseAudio: sound server. Although it is possible to write your own main loop support for pulse, it’s much easier to use glib’s until someone writes ecore_pulseaudio.
- Moblin Mojito: ocial data server which will fetch data from the “social web”, such as your friend’s blog posts and photos, upcoming events, recently played tracks, and pending eBay auctions. It also provides a service to update your status on web services which support it, such as MySpace and Twitter.
- Google Gadgets: similar to E17 gadman, provides sandboxed widgets. It allows storing basic data and network I/O, so there are forecasts, stock options and rss feeds. It would be nice to have a native port (we’re working on it), but meanwhile using GTK’s infrastructure would help.

by Gustavo Sverzut Barbieri at October 01, 2009 04:57 AM
I have built new Windows installers (with or without debug symbols). It installs everything which is needed for Elementary and Ewl, and Expedite. It is built with source code of September the 27th 2009, with some local modifications that will be committed upstream later.
The link is in the binary packages page (at the bottom).
Please test and report problems
by vtorri at September 28, 2009 06:52 AM
While Sqlite is a database manager, Eet can only serialize a structure and save it into a file. Both are completely different but I have tried them in my application.
pm_sqlite.zip
pm_eet.zip
The application
The application is a photos manager. From a root folder the application create a database of albums and photos. The folders in the root folders are the albums and the images in the albums are the photos. The application use 2 main operations :
- load : load the list of albums / photos from the database.
- synchronize : synchronize the hard drive and the database (detect new photos; deleted albums).
The first operation made by the application is to load the database into the memory, then the database is no more used by the main thread. The synchronizer, which is running in a thread, works with the database and notify the application when a change is detected.
Sqlite
The advantages of sqlite is the query language, eet can only load a complete data from a key while Sqlite can do a query. This can be useful to create filters ( date, tags ...).
The Sqlite version store the data in 1 database/file. The schema is :
TABLE root( "
"id INTEGER PRIMARY KEY AUTOINCREMENT, "
"path VARCHAR( 2048 ), "
"UNIQUE(path))
TABLE 'albums'( "
"id INTEGER PRIMARY KEY AUTOINCREMENT, "
"id_root INTEGER, "
"path VARCHAR( 2048 ),"
"file_name VARCHAR( 255 ) , "
"name VARCHAR( 255 ) NOT NULL, "
"time INTEGER NOT NULL, "
"description VARCHAR( 2048 ) NULL, "
"UNIQUE(path, file_name))
photos( "
"id INTEGER PRIMARY KEY AUTOINCREMENT, "
"path VARCHAR( 2048 ),"
"file_name VARCHAR( 255 ), "
"name VARCHAR( 255 ) NOT NULL, "
"time INTEGER NOT NULL, "
"description VARCHAR( 2048 ) NULL,"
"thumb_fdo_large VARCHAR( 2048 ) NULL,"
"thumb_fdo_normal VARCHAR( 2048 ) NULL, "
"UNIQUE(path, file_name))
TABLE album_photos( "
"id_album INTEGER, "
"id_photo INTEGER,"
"PRIMARY KEY(id_photo, id_album))
PRAGMA synchronous = 0;
Maybe the database can be improve but I do not know how. I already use some primary keys, index, pragma synchronous = 0 and all my application works in the same transaction (begin/end).
datadigger and Habbie gave me some idea on #sqlite :
PRAGMA page_size=16384
PRAGMA cache_size=100000
These new options change nothing.
Eet
The Eet version use 1 file in the root folder, this file contains the list of albums :
- 1 Eina_List of char* (the folder name) of each album. This list can be reorder by the user.
- 1 album structure by album identified by the album folder name.
Then We have 1 Eet File by album using the same layout than the main Eet file :
- 1 list of photo file name.
- 1 key by photo.
The advantages of this version are :
- The database is split into many files, we can find what we search fast.
- The transformations of a query result into our structure is not necessary.
Disadvantages :
- no query language.
- only available for the C language. (but a binding can be write for others languages)
Benchmark
The sample is a list of 1231 albums and 27657 photos. The first operation is the creation of the database, the second is the loading and the third is a new synchronization HD<-> DB but no changes are detected this time.
Sqlite :
- synchronizations : 13.549337 sec
- loading : 7.568932 sec
- re-synchronizations : 10.670898 sec
Eet :
- synchronizations : 3.375625
- loading : 0.912872 sec
- re-synchronizations : 2.530690
I think the result speak for himself. I will keep the Eet version and use some hash-table/binary tree to construct my filters.
by Watchwolf at September 27, 2009 08:51 AM
WOW, that was awesome!
Jumping from a plane, 4000m (13123.36 ft) above earth, falling for 50 seconds with an average of 200km/h (124.27mp/h). Unbelivable, you should try that!
There is a video record of my jump at the media section. Enjoy! :)
Btw. if you know the name of the rockin' track played during my free fall - please give me a hint.
by Brian 'morlenxus' Miculcy at September 27, 2009 02:31 AM
Hi all, developers and users, this topic should be of interest of you: logging.
Update: I did a replica of this page in wiki as EinaLog, please add improvements and suggestions there so we use it as documentation.
Users
For users, this will help you to figure out source of problems. Developers may ask you the output and give you the exact command line to run, but one example is:
EINA_LOG_LEVEL=4 expedite -e xlib
This will run expedite benchmark tool with all logging domains at level 4 (debug, the greater the number, the more verbose it will be). It should show lots of output lines like:
DBG:eina_module eina_amalgamation.c:8811 eina_module_list_load() array 0x65ca10, count 0
The line is easily grep-able, the first 3 letters are the log level name or number if it's less than zero or greater than 4. Then follows the domain name (eina_module in the example) followed by the source file (eina_amalgamation.c), line (8811), function name (eina_module_list_load) and then the message.
It should be colored as well, making it easier to spot different levels and domains.
To disable colors, use the environment variable EINA_LOG_COLOR_DISABLE=1
If one dislikes having both file/line and function (often they are redundant), then disable one of them with EINA_LOG_FILE_DISABLE=1 or EINA_LOG_FUNCTION_DISABLE=1. Do not use both, in that case just function will be disabled as file/line is more specific (and thus useful).
If program is multi-threaded and thread-safe logging is initialized (eina_log_threads_enable()), then logging from other threads (any other thread than the one that called eina_init()) you'll see another component: [T:XXXX] where XXXX is the thread number. This is to make sure the code is running in the proper place.
What is interesting about eina log is domain support. This enables us to see debug log for one module while seeing information for another and just warnings for the rest. Let's say we want to see debug for eina_module, info for eina_stringshare but just warning for everything else, we'd use the following command:
EINA_LOG_LEVEL=2 EINA_LOG_LEVELS=eina_module:4,eina_stringshare:3 expedite -e xlib
The first variable sets the generic log, as explained above. The new variable EINA_LOG_LEVELS specifies a comma separated list of domain:level. Domain names are specified in source code and is not dependent on file name, so developers should document available domains.
Developers
For developers it's easy: either use the global domain EINA_LOG_DOMAIN_GLOBAL or register your own domain.
Using the global domain can be handy to quick debug, but it's not recommended for the long run. To use it, one can use pre-defined macros: EINA_LOG_CRIT(), EINA_LOG_ERR(), EINA_LOG_WARN(), EINA_LOG_INFO() and EINA_LOG_DBG(). These macros are like printf() and should be easy to convert an application using printf() or fprintf() to it.
To register your own domain it's as simple as calling the function eina_log_domain_register(), it returns the log domain identifier that should be used with macros like EINA_LOG(), EINA_LOG_DOM_CRIT(), EINA_LOG_DOM_ERR() and so on. To make life easier, it's advised that applications declare their own macros. Example:
Using in a single C file
#include <Eina.h>
static int _log_dom = -1
#define ERR(...) EINA_LOG_DOM_ERR(_log_dom, __VA_ARGS__)
#define DBG(...) EINA_LOG_DOM_DBG(_log_dom, __VA_ARGS__)
Eina_Bool my_code_init(void) {
if (!eina_init()) {
return EINA_FALSE;
}
if (_log_dom < 0) {
_log_dom = eina_log_domain_register("my_code", NULL);
if (_log_dom < 0) {
EINA_LOG_CRIT("could not register log domain 'my_code'");
eina_shutdown();
return EINA_FALSE;
}
}
DBG("initialized!");
return EINA_TRUE;
}
void my_code_shutdown(void) {
if (_log_dom >= 0) {
DBG("shutdown!");
eina_log_domain_unregister(_log_dom);
_log_dom = -1;
eina_shutdown();
}
}
void my_code_func(int val) {
DBG("val=%d", val);
if (val < 1) ERR("val less than 1, val=%d", val);
}Using from multiple C files
Your private (my_code_private.h) header should contain:
#include <Eina.h>
extern int _my_code_log_dom = -1
#define ERR(...) EINA_LOG_DOM_ERR(_my_code_log_dom, __VA_ARGS__)
#define DBG(...) EINA_LOG_DOM_DBG(_my_code_log_dom, __VA_ARGS__)
Your main source file:
#include "my_code_private.h"
Eina_Bool my_code_init(void) {
if (!eina_init()) {
return EINA_FALSE;
}
if (_log_dom < 0) {
_my_code_log_dom = eina_log_domain_register("my_code", NULL);
if (_my_code_log_dom < 0) {
EINA_LOG_CRIT("could not register log domain 'my_code'");
eina_shutdown();
return EINA_FALSE;
}
}
DBG("initialized!");
return EINA_TRUE;
}
void my_code_shutdown(void) {
if (_my_code_log_dom >= 0) {
DBG("shutdown!");
eina_log_domain_unregister(_log_dom);
_my_code_log_dom = -1;
eina_shutdown();
}
}
Your secondary files:
#include "my_code_private.h"
void my_code_func(int val) {
DBG("val=%d", val);
if (val < 1) ERR("val less than 1, val=%d", val);
}
One can define EINA_LOG_ABORT=1 to make eina abort on levels less or equal to critical. This level is used by safety checks and other paths and can make debug easier, just run it from inside gdb and it will stop on failure.
by barbieri at September 17, 2009 03:58 AM
|
|