Let the paste begin

Now almost all my wishes to pastebin plasmoid have been accomplished: the possibility of configuring the plasmoid to post to your own pastebin server.

So, for those who have a pastebin inside company’s intranet or even prefer to use one of the subdomains that the pastebin servers provide, all you have to do is go to settings dialog from pastebin plasmoid and put right there, in the “Servers” section, the address of your server. I must say that it only supports servers that runs one of the 4 backends (pastebin.ca, pastebin.com, imagebin.ca and imageshack.us). If you would like more backends, please just send a patch or tell us in #plasma πŸ˜‰

Next step is to give some UI love to it: some “title” label, so you know with server it’s using, a nice icon….

pastebin server section

pastebin server section

Animated Wallpapers for Plasma

It has been some time now that the QEdje’s wallpaper plugin for Plasma is on playground, but just yesterday I had some time to finally write a patch for QZion to enable the correct painting of the animated wallpaper. This patch still needs to go mainline in QZion…

Anyway, for those wanting to see a little demo take a look at the video below:

Plasma Animated Wallpaper

Cheers! πŸ™‚

UPDATE: here is the QZion’s patch http://dev.openbossa.org/qedje/gitweb?p=qzion.git;a=commit;h=4d7901de03d2ce86ab31fd67b0be7a2fe6de6c21 . So people using qzion/qedje from trunk can use that =)

Pastebin (Old) Update and Kinetic

It has been some time now since I updated the Pastebin applet and I didn’t have enough time to write this small post telling you the news: there is now a imagebin server implementation for the pastebin applet. This means that you can just drag your images there and it’ll post to imagebin server and you can share images with your friends easily =) I even heard today an use case of people taking snapshots with ksnapshot and draging the picture in the pastebin applet…that’s really nice!

Another very good news is that the Kinetic project is “on the streets”. Now you know what we were doing in Oslo by the time of this post. We gave a little help for those guys and soon we’ll keep working very close with those guys. We just have to finish another small project first…

Besides that I’m really happy that KDE 4.2 is almost on shape (at least for me hehe). Every day it becomes better and better. I also have to mention that applications like Marble and Digikam are getting even better also…

From the development side, hopefully I’ll be able to help closing some Plasma’s bugs until the release.

That’s it for now =P Cheers!

Trolls, QEdje and Plasma

Last weeks I was at Qt Software’s (formely known as Trolltech) office in Oslo working a little bit with those amazing guys. I would like to thank everybody there for everything πŸ˜› . It was an awesome time!

Well, talking about Oslo it’s obvious to say that I had a lot of time during the flights to hack Plasma! It was very good because I could understand a little bit more about Plasma script engine’s API and could finally make the QEdje Script Engine work 100%. Hmm…ok, maybe it need some love during package install to avoid the install of invalid files, but I’m working on this right now, right Aaron ? πŸ˜‰ (just commited this fix: revision 866487)

It’s really nice to have a way to easily select an edje file and it automagically(tm) becomes an applet that can be used as a gadget. Of course QEdje needs some more love in order to support some more features from the original Edje as gradients and some other stuff, but the current version supports the most common use cases. Hey, and don’t be shiny…just git clone qedje (instructions at http://dev.openbossa.org/trac/qedje) and contribute to the project too =D.

While finishing the script engine I found some problems with Qt’s proxy widget. After some discussions with Alexis (darktears), Aaron and Thiago I finally understood the problem and was able to fix the segmentation fault: first I applied Alexis’s patch on Qt (it’s inside qt-copy now) and then used valgrind to understand the next problem I had. With that I just followed Aaron’s tip about setting the proxy’s widget to 0 (zero) just before deleting it in the script’s destructor. Just worked \o/ =D.

So, after some test and review it just went to kdebase as our friend CIA-54 (aka bot) told us:

<CIA-54> asouza * r866456 workspace/trunk/KDE/kdebase/workspace/ (6 files in 4 dirs):
<CIA-54> QEdje Script Engine arrives to kdebase
<CIA-54> Working version. Still needs improvements on package install to avoid
<CIA-54> install of invalid files.

Screenshot showing a lot of the kde logo edje animation on my desktop as well as canola’s deepblue theme (the player group) with it’s settings window (it has a preview so you can see what it’ll look like if you select that group).

my desktop

my desktop

Next steps ? Wallpaper API !!!

Cheers!

Plasmoid with QEdje

Akademy was really great! It was awesome to give faces to nicknames and to chat, have dinner, learn and talk with a lot of people…just awesome!

My first plasmoid is done, right now. It took some time to take care about details and I had to wait before we could publish the last QEdje’s version. Unfortunately, our server is going down for maintenance this weekend but you can get the snapshots in this post. After the servers go online on Monday, we’ll also put our git repository online (actually it’s already there).

It’s a simple plasmoid and it took more time to create the animation frames (using blender…) than to code the plasmoid. Thanks to ervin and darktears who helped me with little doubts πŸ˜‰

Required downloads: QEdje 0.2 , QZion 0.2 , EET , KDE logo Edje File. I put the KDE logo here because it doesn’t fit well inside the svn. If you want to compile your own themes, you’ll need some tools from EFL. We are working on a solution for this but meanwhile you can use this hacked tarball: Edje Utils.

You can also find the release notes here and some QEdje examples here.

Just take a look at svn inside plasma’s playground and look for qedje inside applets folder. Now, some screenshots:

The first ones shows KDE logo animated in different positions and I wanted to show it working with a full transparent background in the third screenshot.

Next step: wallpaper plugins, here I come!

PS: you must take a look at the “dangeroo” joke. The best part of the joke is the listener’s faces (right ervin????) πŸ™‚

PS2: for those asking for Zack’s photos during Bossa Conference 2008, sorry but a llama ate all the photos πŸ˜›

Update: instructions to use Edje Utils: http://dev.openbossa.org/trac/qedje/wiki/EdjeUtils

QEdje – Init()

This is my first post that is aggregated by planet kde. My name is Artur (a.k.a. MoRpHeUz) and I work for Openbossa (open source stream of INdT– Brazil). We develop solutions for mobile platforms like the Nokia’s n8x0 devices and we are responsible for projects like Canola, Carman and Mamona. I would like to introduce the QEdje project, but to talk about QEdje I need first to explain Edje (from Enlightenment Foundation LibrariesΒ  – EFL).

From Edje’s wiki: “Edje is a graphical design and layout library based on Evas (the canvas used by EFL) that provides an abstraction layer between the application code and the interface, while allowing extremely flexible dynamic layouts and animations”. Let me detail a little bit more: with Edje you can create dynamic and animated user interfaces easily and can make designer’s dreams really true (without “hurting” developers), with much less code than other approaches.

This way programmers doesn’t need to become designers (what usually results in bad usability or even bad interfaces) and designers doesn’t need to become programmers (that results in not so good technical approaches or even bad code) πŸ˜‰ . The fact is that Edje puts the control of the usability and beauty in the hands of designers and artists, separating (until some level) the application and the UI logic. It’s important to say that it’s different from other styling systems since you can change even the behavior of the widgets on the screen, not just it’s look.

The image below show more about the Edje work flow. Where it says “designer” you can read developer too. If you work like this, you can have designers creating the interfaces and developers translating them to Edje Script Language or even an automatic tool (sometime ago we developed a python script for GIMP which takes a photoshop file and creates the edje file – without the animations, off course).

Edje Workflow

Edje Workflow

Using EFL we created animated and themed applications for mobile devices, bringing beauty to the end user. The end user just love fancy stuff on their mobile devices, we have iPhone phenomenon to show that for us.

Canola's Main Theme Crystal's Theme
Canola's Black Theme

You may be asking yourself: “but how does this affect the desktop and does this have anything to do with KDE/Qt world ?”. Let’s go to the answers…

We always wanted to use Qt and now we have the chance! Our first need was something like Edje, that just changed our lifes regarding rich ui applications development. The first move was to create a port of Edje, and then QEdje was born. So at this point QEdje is a port of Edje, leaving the EFL world and coming to Qt world. We still have some work to do (features, bugs, …) but it’s already working in a nice way. In the future we plan to create some new features that the original Edje doesn’t have right now, but may be included too.

If you take a look at e17 (enlightenment window manager) you’ll see that it has a lot of cool stuff. The first thought was that Plasma could benefit somehow from it (and it looks like that Aaron thought the same – let’s see if we have something in this area after Akademy πŸ˜‰ ). This way Plasma, for example, can easily use QEdje to have fancy plasmoids and other applications can have rich UI looks (anybody thinking about image viewers, multimedia players, educational games, etc .. ? πŸ™‚ ). We’ll also make this easier by providing support for embedding QWidgets inside you Edje interface, so you can benefit from the huge widget’s library provided by Qt.

So, if your are going to Akademy and is interested, please watch our presentation. We’ll give more details, explanations, future plans, etc..etc..etc.. . And if you are not going to Akademy, please contact us at #qedje@freenode.net and take a look at the project’s website: http://dev.openbossa.org/trac/qedje . If you wish, contact me by email also.

That’s all for now, hope to have more news and demos soon! πŸ™‚

Qt + Assistant + Emacs

Everytime I wanted to get a console I typed F12, willing to make Yakuake come down. But sometimes I pressed F11 and then Devhelp was loaded. It’s ok when you make this mistake one, two or even three times…but It was happening a lot.

I searched my entire KDE’s shortcuts trying to find where the hell was that key binding but I had no luck. After a while, I discovered that it only happened when I was inside Emacs…hmmm…of course it was an Emacs key binding and not KDE’s one!

Ok, now I was able to remove the F11 key binding, but the fun just started: how about binding Qt’s Assistant instead of Devhelp as I’m working much more with Qt than with GTK ??? πŸ˜‰

At first it looked pretty easy, just needing a few lines inside .emacs:

(defun assistant ()
"runs qt assistant"
(interactive)
(start-process-shell-command "assistant" nil "assistant")
)
(global-set-key [f11] 'assistant)

But now I really need Assistant to automatically search for a keyword when I open it. It would be much easier to just put the cursor in the keyword I want and make Assistant search for it. A few hours later I finished it and came along with the following patch on my “personal” Assistant:

0001-created-search-keyword-function.patch

And my final Emac’s function:

(defun assistant ()
"runs qt assistant"
(interactive)
(start-process-shell-command "assistant" nil "assistant" "-search" (current-word))
)
(global-set-key [f11] 'assistant)

Emacs + Assistant

So much fun with Qt =P

fisl 9: a good start

Amazing: that’s the best word to describe everything that happened during this last fisl. Everything was so great that it’s even hard to describe here using only words. So I’ll try to explain a little bit about each interesting topic that I want to talk about.

Arena

We had two levels for the programming challenge.

The first level was just like an arcade game: you had one task that was a “treasure hunt”, and while looking for the treasure (that was actually a number), the teams discovered more tasks. The teams that had more points at the end of the day could go to the next level (I can make another post telling the details about each level later). All the tasks were related to Python for S60.

During the second level they were asked to implement an ODF reader for the Maemo platform using Python. It was so great that at the end of this level (that lasted 24 hours) all the teams had an working ODF reader with different approaches. Some of them converted the document to HTML and used the embedded browser (microb) to open the file and other teams just parsed everything using an xml parser.

This second level was very special for everyone. The students could develop an application from scratch that was very useful and new and the community gained new developers and a new project as they want to keep working on their projects (possibly all of them will become just one project).

After all this hard time, the prizes for the teams: 1 n95 for the 3rd place, 3 n95 for the 2nd place (one for each member of the team) and 3 n95 + 3 n800 for each member of the 1st place!! Great prizes πŸ˜‰ !

People

A congress only can be great if there are great people at it. And that was exactly what happened. We were able to meet so many good people, let’s start talking about each one.

First, people from GUS-BR (Slackware User’s Group Brazil). It’s very good to meet old friends from IRC that use the same distribution that you use =) . Also very good to buy some stickers and other stuff.

People from brazilian universities: Unicamp and UFPE. I was able to meet some classmates from Unicamp and remember some funny stuff and also ask help for UFPE guys (we needed to flash an n95 and they could help us!!! Thanks guys!!!)

Trolltech & KDE guys: we were able to watch a presentation from Andreas (Qt) and make some new friends like Knut, Kevin and Thiago. Also good to chat (again) with Helio. From Andreas we could understand a little bit more about Qt and show some of our work, very interesting and productive chat. Maybe we can submit some paper to akademy and show some of our ideas to kde guys !

ODF and BrOffice: it was awesome to meet Gustavo from BrOffice and Jomar from ODF Alliance and receive their feedback. This feedback just made the Arena Challenge even better, for us, students and the community !

Also, I would like to thank FΓ³rum Nokia, Fernanda and Paulo from fisl organization as they helped us a lot. From the INdT side, thanks a lot to Silvia, Selma and also Carol for the “Jack Bauer” joke πŸ˜›

Special thanks to all the guys from Casa do Cinema de Porto Alegre that made an wonderful work and will make a video to show everything that I talked about in this post, so we can share with everybody.
openbossa logo

fisl 9 – INdT and Arena

The official definition:

Programming Arena

Imagine a big aquarium and inside it computer programmers, challenges and prizes instead of fishes. This is how the FISL Programming Arena looks like.

The Arena main objective is promoting a meeting between members in technology community for a contest based in technical skills considering individuals and groups. Is occurs before in remote phases and during the FISL 9.0. The location is a aquarium-room with restricted access in the middle of event center. Free software projects are chosen and used as a case of study for Arena.

So, this year INdT is helping to organize this contest and Nokia will give N95 and N800 as prizes for the winners. Through this post, I invite everybody that is going to come to the event to come in and at least try to solve our challenges ! =)

It’s important to say that we’ll be looking for potential future co-workers there, so if you are interested just let us know πŸ˜‰

See you there!

Reference: http://fisl.softwarelivre.org/9.0/www/arena_en

Yet another plugin tutorial

Following Gustavo, I’m posting this “tutorial plugin” that was created with the help of Caio (cmarcelo @ Freenode). This is a presentation tool, where each slide is a Model and each presentation is a ModelFolder. It’s very simple, but supports transitions and uses some very basic concepts of Canola’s plugin framework.

I recommend also the download of Gustavo’s plugin because there is a very good readme.txt there that explains how everything works (so you don’t have to just find out reading the code).

Some details about this plugin: it looks for “.edj” (edje files) inside /tmp but you can change that inside a prefs file (cnl-set-prefs). Then just do your presentation using Edje (there is also a demo presentation in this tgz).

In the next days we should post an “SDK” that will make developer’s life easier, so they’ll be able to develop and test plugins on the desktop.

Canola Show