mercoledì 14 luglio 2010

Enjoy a (Qt)Quick screencast

Just before going to bed I managed to get a rather rough but working implementation of QML in plasma-mediacenter as welcome item view.
The view is entirely written in QML while the delegate is a C++ implementation of a QGraphicsWidget that I also use as delegate in the other ordinary views in PMC.

Enjoy and good night :)


giovedì 8 luglio 2010

Akademy 2010

Akademy 2010 was an awesome success! I really enjoyed the time here and had really no time to blog anything.
I'm currently staying at the amazing Demola building here where hackers can just do whatever they want. I've just committed a bunch of stuff into PMC and I'm going to give a brief overview of what i did.

Way more elegant with...

...blurred reflections

I've just added a bit of blur and opacity adjustment to the reflections and they now just look quite better (imo). Sane use of caching makes everything still smooth and slowdowns-free and therefore enjoyable.

...initial gestures implementation

As already mentioned in my talk at Akademy PMC is going to support gestures. This won't only allow common gestures on multitouch input devices but, most importantly, will ease the integration of different input devices. As I like to mention often, you'll be able to comfortably lie on your sofa and browse through your media files directly via your wiimote.

...nepomuk integration

Nepomuk integration is getting more and more attention and you just have your media files already there with no need for navigation or such. Soon there'll be the chance to group your media files by author, date, size etc... previws

A kind of a stupid implementation mistake avoided video previews to be there in the browser applet. Now those are just there:

...plain video widget

Phonon::VideoWidget doesn't quite behave well if embedded in a QGraphicsProxyWidget. At least you can notice weird video painting if fullscreen. This has been solved as now we're making use of the plain video widget rather than the embedded one. A better solution will soon involve KWin and I'm looking forward to writing a KWin plugin possibly with near-to-0 pokes to Martin which was really really friendly in showing me the advantages of it.

...qml goodies

Qml is also takin' is way to PMC and you can already find some goodies under the declarative folder of your beloved MediaCenterComponents checkout.
It's planned to have a view for the media browser written in qml.

...JS dataengines for web media content fetching

The GSoC project Hayri is working on is going pretty good in my opinion and we'll soon have a working codebase to fetch media contents from the web and directly make them available through the browsing applet. You won't even recognize what's on your pc and what's on the web, just hit play and enjoy.

Side note for packagers

There'll be soon a tech preview for PMC in order to show the progresses we reached so far but, before then, please don't package anything from the PMC codebase as it'd lead to a bad user experience. 

I'd like to thank the whole Akademy team who made it possible as it appears to be one of the best organized Akademys so far! Everything went just smooth and I think we all enjoyed the time here.

Cheers everybody

lunedì 28 giugno 2010

PMC @ Akademy

Hey everybody,
as announced by Marco I'll give a talk at Akademy and it'll be about Plasma Media Center.

I'll try to show you the progresses we reached so far and what's the general idea behind PMC.

More precisely, the following points are going to be discussed:

  • What is PMC?
  • Which use case scenarios suite for PMC?
  • How Plasma helps a media center come true?
  • How to behave with 10-feet interfaces?
I hope you'll find this interesting for your tastes :)

Anyway, see you at akademy!!

martedì 8 giugno 2010

PMC - little status update

Yo ppl, long time not posting anything: too bad :/

For those who still don't know PMC stands for Plasma Media Center.
I know you're not hearing back from the media center land but we are working hard to deliver a great user experience plus we're shy developers and don't want too much attention :p. Joking, actually we'll show you what we're achieving so far as soon as we get something usable.

The little status update is about the Nepomuk influence in PMC which finally is taking its path. I've just added the ability to browse through Nepomuk resources. No boring navigation through your pictures path, just fire PMC up and browse through the indexed photos.

When nepomuk is enabled you can add the folders you want pictures from. Currently such paths have to be present in the nepomukstrigirc config file but soon PMC will check this for you and eventually add them. If you don't specify any path PMC will show you every single indexed picture on your PC :p.

Such new feature is still not there on the SVN as i'd like to move the nepomuk interaction code somewhere lower level in order to eventually allow any backend to take advantage of it.

This is just a little feature we're working on PMC and I won't anticipate anything further. Just to let you know, though, there'll be a meeting in #plasma-mediacenter, likely this weekend, and we'll discuss some important priorities we want to focus our efforts on. So you're all invited to take part, especially if you want to contribute as there are jobs for you :)

The techbase page is always there if you want more info.

P.S.: Just almost forgetting:
And that's the first time for me so I hope to meet you all live :p


mercoledì 28 aprile 2010

Welcome to my GSoC student [+ a personal bonus]

Hello KDE followers and developers.
As some of you may already know this year I play the role of mentor for my baby, Plasma Media Center project. A lot of work is going on behind the scenes thanks to the big efforts Dr. Christophe Olinger is putting in this huge project. I'll probably talk about his work later on a dedicated post.

Say hello to Onur-Hayri Bakici, the one who will take care of improving and deploying a good API and some plugins for the Media Center. Here comes his personal introduction to himself:

"My name is Onur-Hayri Bakici. I am studying computer science since
2005 at the Technische Universität Berlin. My major subjects are
Human-Computer Interaction and communication systems.
In "Google Summer of Code" for KDE I am working for the Media Browser
backend in the Plasma Media Center. The backend is an interface for
internet media providers such as youtube, picasa, etc.
Therefore, plugins can be written that communicate with the media
providers and pass information to the Plasma Media Center.
The plugins are going to be written in JavaScript, so it will become
easy to install/update them with Get Hot New Stuff."

I'm really happy he got accepted as he already contributed with some code for this field of the media center. His work will help the browsing applet of the media center to have more browsing opportunities from multimedia web services. He'll help stabilizing the API also trying to make this project rock.
You probably don't know much about Plasma Media Center, and this is kind of a good thing for the actual HWIP status of the project, but, if you want to know more, just have a look at the techbase page :-).

[Personal Bonus]
As a side note tomorrow I'll take my bachelor's degree in Computer Science Engineering so, if you are near Bari (southern Italy) you can come and see me and I'll be glad to offer you lots of beer =). 

martedì 9 marzo 2010

Call for devs [part II]

[Advice: this post is Gentoo GNU/Linux - oriented]
Hello again folks :)

This second part of the post is about a project of mine i started at the beginning of the 2009 and that still lies there on gitorious (today moved from github to gitorious). I started a GUI for emerge, the packages administration utility in Gentoo. I know it is a bit of an ambitious project since emerge does not provide an API iirc, so this project is "just" a command-line parser. But I started it with no particular ambition except for my own will to have some sort of advanced GUI on top of emerge. It is called Gluk (almost-casual name so do not ask me what it stands for).

I spent some time writing some sort of wrapper library that tries to handle emerge transparently to the user. There are nice classes currently and I will just sum them up here in order to (hope so) whet the appetite :-P.

  • Ebuild: this class inherits QFile and adds some useful methods that ease Ebuild files reading (useFlags(), description(), keywords(), sourceUrl()... and so on)
  • Package: this class actually represents the package installed or to-be-installed on the system. You can think of as an instance of the ebuild file.
  • GlukTreeModel: a QAbstractItemModel inheritance that makes easier browsing the portage tree.
  • PortageEngine: a singleton class that actually does the dirty work representing an interface to Portage.
    You can have a look at the project here. It currently builds and I encourage you to try it but do not expect anything special. Iirc it currently only does packages pretending :).

    If you run Gentoo GNU/Linux and want to contribute please let me know since i'd appreciate much!! Ideas are of course welcome :)


    Call for devs [part I]

    Hello dear KDE community. It's pretty much you do not hear from me. I finally finished my exams and now I'm working at my thesis project. You'll hear about it as soon as I graduate since I'd like it to be useful to us. But I'll talk about it later on, in a dedicated post.

    The "call for devs" I'd like to talk about is about two projects. The first one is about the Media Center project for the Plasma Shell. Unfortunately I couldn't manage to write code anymore for it and it is still there hanging on svn. I placed a README file in order to clarify what the current status of the project is. Nice features got implemented but many need to be tested and written still. That's why we have two GSoC ideas (and other in my mind might probably be added to the list) that should interest you (or some of you :).

    So let's go through the ideas.

    MediaBrowser backends and API:

    This is a pretty huge and interesting project imho. There is already code written for this and I'd like GSoC'ers to take care of it in order to improve the API and write new backends. But let's go step by step.

    As some of you might remember the Media Center project aims to make use of the main pillars of Plasma in order to develop the Media Center Components KDE should make use of to play multimedia contents. I won't go again into the details (if interested go back to my old posts). The MediaBrowser is what we are talking about here. It is one of those components and actually it is an applet that was designed to ease the navigation through the media contents available both on your home PCs and on the net. The navigation through different contents should be done with the help of the DataEngines that are able to retrieve data from different resources. So, the MediaBrowser Applet exposes an API that allows developers to write their own backend to fetch different contents from different resources. Technically each backend must give access to a QAbstractItemModel used by the view of the MediaBrowser.
    Currently we only have a local-file backend that just allows browsing through local files on your pc. But, together with the KDE-Silk people, we already have some dataengine ready to be used with the backends. First of all there is the video-dataengine. It is a generic dataengine that supports backends. It actually uses an unified data structure that extracts the relevant datas from each backend in order to expose video sources through Plasma. Currently we have just one implementation: YouTube dataengine, and it works pretty well. Other backends should be written for vimeo, and so on. We also have pictures dataengines (picasa and flickr) and i'd like them to be also put as backends of a generic picture dataengine. In addition to this the idea is to start writing other backends for the MediaBrowser applet able to query and fetch data from the generic video and image dataengines in order to let the user browse through his favourite web service video/pictures providers.

    Of course more proposals within this field are apreciated so, just start from reading the README file and ping me on IRC if you need more clarifications.

    The second idea is:

    Ui re-styling:

    This is a really needed project for the Media Center. Let's say I didn't focus so much on the look and feel of it during the development so we need to polish the GUI. The aim is to make use of the QtDeclarative stuff hoping it'll be ready to use by the beginning of the GSoC. Unfortunately i cannot tell you much about this since I didn't spend much time hacking with this feature from Qt. I suggest you to come on #plasma and directly ask if you are interested in this project. The aim is to write a dynamic UI that would make Media Center appear shiny and easy to use :).

    I hope this stuff will interest you. The project directory is browsable at Media Center Components

    Start hacking on it if you feel so that you'll be prepared and more aware of what I'm talking about when you'll submit your proposal.