So... on Tuesday, the 15th of December, 2009, democracy was killed in
Australia. A democracy exists to represent the desires of the majority
of the people in a nation. Regardless how it is implemented (as a
representative democracy where you vote for someone to represent you), or
some other way, the POINT is to represent the people and their desires. This
no longer is the case. Not by a long shot.
95% of people responding say NO to the filtering, but... go ahead it shall.
I am not going to get into the sideshow of child porn and who controls the
list of filtered sites, and that it's easy enough to get around. It's the
principle of democracy simply failing miserably. We can argue that the people
voting in this poll are a skewed subset of Australians... but that's just
trying to push an agenda anyway - even if it was skewed.. 95% implies its a
majority of people that oppose no matter what.
It is a sad day to be an Australian. It is a sad day for democracy. It is a
sad day for freedom of speech. From this day on there is now an on-line
censorship mechanism that, mark my words, future governments will use to not
"protect the children" but to censor disagreement with their views.
Countries like China do this already. Australia is now following. Good job
Conroy! NOT!
Saturday, 31 October 2009
Evas does 3D
So.. evas now can do "3D" (it's 2.5D - fake-ish 3D, but good enough so you
won't notice in real life). All objects can have a "Map" applies. This is
a mapping of the 2 points that make up the objects corner points and each
point can be assigned an X, Y an Z coordinate, as well as "texture" U and V
coordinates from the original object to be transformed using the map.
This map now works with all objects. Including smart objects. That means Edje
objects too, widgets from Elementary, and more. Of course, here is the
obligatory screenshot:
Some notes. It's not complete yet. It's not efficient. It's horribly
efficient right now as it re-renders any transformed object (except images)
to a temporary surface on any re-draw, then uses that surface for the draw
with the map to the parent surface (yes. it can nest). There is only code for
the software engine right now. I cactually made sure the code there is fast
and wel optimised. It can do both sampled (nearest) and smooth (linear
filtered) rendering. It's very good considering its software. Adding code to
the GL engine will be easy enough, so it's not a focus right now. Software is
and should always be the first to work and work decently.
Also there are some matters of there now being 2 geometries to deal with
(original and now mapped geometry), translating coordinates between mapped
and parent coordinate spaces for events, being able to request smooth or
non-smooth mapping, more utility calls for doing transforms to a map (sofar
rotate and zoom calls are in).
I also want to add color to each point so it can interpolate RGBA values and
use them to "multiply" the texture pixels. This can be used for things like
lighting ans shading etc. This would allow for an apparently "real" 3D
engine. I will cook up a demo or 2 to show this when it's done.
Also I need to have the surfaces be cached to avoid re-renders for mapped
objects, allow hints as to the storage of such surfaces etc. etc. There needs
to be a balance between memory used and speed. I need to only queue redraws
of the right regions when children change, and a few other things.
What this does do though, is open up a path to another long-desired feature
for Evas - filtering. For example - blurring all objects that are in the map.
Now the infrastructure is in place for it.
Monday, 26 October 2009
Enlightenment+EFL on a s3c6410 Device
On the weekend I played a bit with my
SmartQ 5. This is a Chinese
Web Tablet, with a Samsung s3c6410 ARM SoC inside, 128M of ram, 1GB of Flash, a
800x480 4.3" LCD and Wifi. I put Mer on
it (Mer is an Ubuntu 9.04 based distribution for wbe dablets and devices). I
used 0.16 testing 6 on
it for reference. This isn't a bad gadget. It's faster than the Openmoko
GTA02 (Freerunner) by a massive shot. In fact this (with a smaller screen and
a phone) is what the GTA03 should have been (next phone after GTA02), but
thanks to bumbling and the collapse of Openmoko (no fingers will be pointed,
but I know they point away from me), this will never exist.
Interestingly, I compared the memory footprint of Enlightenment (E17) vs
the Mer GUI built with GTK+ and matchbox. Taking away base system footprint,
Enlightenment 0.17 with a wallpaper etc. set up uses about 16M of RAM as a
footprint. Mer's GTK+/Matchbox GUI uses... 43M of RAM. That's a big
difference. I never knew it was so big. Well... that's interesting. (Note
these included xinit and the server footprint, which would be the same for
both, and the base system footprint below these desktops was about 14M)
Anyway, so here comes the content. Here is the new Evas 3D Mapping feature
running on this device
Of course I couldn't resist. I dug out an old 3D engine i wrote years ago
and ran it ther. I fact the 3D code in Evas is based on this algorithm. So it's
an indicator of what you can do with Evas now... if you tried. I'll have to
cook up a good demo some time.
Friday, 2 January 2009
Performance testing of several embedded systems
So I thought I'd do some tests since I got my new
Beagleboard (thanks Thomas!). What is
this? well you can go follow the link - but it's an OMAP3530 based devel board
with pretty much nothing much on it other than the CPU. You need to plug in
serial to get the console - there is no input or screen on it... but it does
have DVI out and a usb OTG port (which so far has been utterly useless to me
as my supposed USB-A to USB-Mini-A doesn't work for OTG :( ). Anyway. This
little CPU (SoC - System on a Chip) is not too shabby. it's not even running
at the 600Mhz rated that the 3530 can do (mind you that's overdrive - but I'd
expect to use that normally as the other power case is 0 clock so while on
and doing things - do them fast, otherwise sleep as much as you can). Also
the RAM could be clocked up much higher (it's at 133Mhz on this board).
So that covers the hardware. Software wise I'm using expedite below. This is
the Software-X11 engine. Output is 16bpp RGB565 (except the Desktop which is
RGB32). The Desktop of course will have multiple threads rendering. It also
gets MMX and SSE assembly. The ARM systems get the plain C routines. So thus
far I have yet to put in any ASM for ARM in the software routines - but I
intend to throw in some preload (pld) calls as well... but... what I really
need to do is put in some NEON (OMAP3'x equivalent of MMX/SSE that actually
doesn't suck). I have NOT done any of this - so the below numbers are RAW
as-is. the PXA270 might have some room for optimising with Wireless MMX. The
s3x2442 I think is pretty much not going to go anywhere as it's ARMv4, so a
lost cause. So take the numbers for the PXA270 as "could be a little better".
From what I have read of the 3530's NEON - it could get a fair bit better if
not 50% or more on the FPS numbers below (yes the numbers are in frames per
second, rendering to a QVGA sized window in all cases).