lundi 24 mars 2008

Jukebox 3D 0.6.0 released !

Bonjour ô grand journal, je ne sais pas si tu te souviens de jukebox3D ( http://linuxfr.org/~tsubasafr/24993.html ), un logiciel qui affichait la lecture en cours avec historique pour amarok, mpd, rhythmbox,exaile.

Avec la version 0.5.0 j'ai eu pas mal de retour et la fonction que tout le monde veux c'est le cover flow.

Évidement la structure multi lecteur de jukebox3D 0.5.0 ne convient pas ( couche shell avec requête ), pour avoir ce genre de fonction il me faut avoir une api disponible pour le lecture qui soit assez puissante ( obtenir la playlist entière en cours, gestion temps réel etc .. ) .

Autre solution c'est de faire un plugin à un logiciel existant, mais ce choix me plaît guère car je ne veux pas me limiter à un seul logiciel pour la structure globale du programme. Que nous reste t-il ?

- Amarok ?

La version 1.x ne propose pas un backend assez puissant ( manipulation de playlist ) pour accueillir un tel système via dcop.

La version 2.x via dbus à l'air largement plus intéressant ! De plus dbus dispose d'une api C/C++. Mais on va attendre que la version stable sorte avant d'etudier le sujet.

- Rhythmbox,Exaile ?

Ne dispose pas de fonctions de manipulation de playlist distante.

- Mpd ?
Bingo, c'est le backend de choix, de plus il ne nécessite pas de librairie spécifique, tout est en socket tcp/ip.

Le choix pour la nouvelle version de jukebox3D sera une structure indépendante avec en premier lieu un moteur mpd, ensuite pour la sortie d'amarok 2 leur api sera étudiée.

Dans les remarques récurrentes des utilisateurs il y avait aussi le probleme des dépendances de la version 0.5.0, non par la place quelles prennent sur le disque mais à cause de leur nombre et leur coté obscure pour les débutants.
Gtk, gtkglext, glade, libxml, sdl-image, sdf-ttf, curl

Si je voulais satisfaire ce point, je ne voyais pas comment ( sans rajouter cairo par exemple ) alléger la liste. Il me fallait un autre framework pour développer un technologie comme jukebox3D, pas un framework meilleur, mais un framework adapté.

Solution GTK:

- Pour la partie openGL de Gtk, il existe deux projets gtkglext et gtkglarea. C'est que mon avis personnel, mais ça me fout toujours le doute du " j'ai choisi le mauvais ". En plus cela rajoute une dépendance externe.

- Glade 3 est puissant cela fait aucun doute (malgré quelques bug agaçant des premières 3.x) et il est à jour vis à vis des versions de Gtk. Rien à dire mais c'est une dépendance externe en plus.

- libxml rien à dire mais c'est une dépendance externe en plus.

- sdl-image, sdf-ttf, curl pareil .

Je me décide de comparer ça avec son éternel partenaire de jeu Qt, avec la dernière mouture 4.3.x.

Solution QT:

- Tout est intégré en modules, il suffit de préciser dans le fichier projet ( .pro ), les modules Qt que l'on souhaite utiliser. ( gui opengl core xml network pour ma part ).

Pour un programme plus simple en terme de structure ( vis à vis de son besoin ), avec un support temps réel pour la playlist pour la lecture me voici avec une solution qui pour jukebox3D me parait plus cohérent. ( Qt4 - Api Mpd )

Je me répète ce n'est pas un concours du meilleur framework, dans ce cas la précisément l'autre solution est moins bien adaptée pour notre besoin.

Plusieurs mois apres et un portage vers Qt4 voici la nouvelle mouture de jukebox3D en version 0.6.0.

- Surfez sur votre playlist mpd à la cover flow.
- Moteur de mise à jour temps réel de la lecture et de la playlist.
- Gestion du systray, vous pouvez masquer et rappeler jukebox3D quand vous voulez.
- Moteur puissant pour la gestion des informations basé sur les signaux Qt pour les taches asynchrones..
- De nouveaux effets sont disponibles comme la rotation de texte.
- Moteur de thèmes XML, vous pouvez sauvegarder/installer des themes facilement.

jukebox3D 0.6.0 est disponible sur son site officiel: http://j3d.linuxonfire.org/
Screenshots: http://j3d.linuxonfire.org/screens.php
Téléchargement: http://j3d.linuxonfire.org/download.php
Installer un thème: http://www.linuxonfire.org/forum/viewtopic.php?id=55
Thèmes disponible: http://www.linuxonfire.org/forum/viewforum.php?id=14
Dev blog: http://tsubasafr.blogspot.com/

KDE-Apps: http://kde-apps.org/content/show.php/Jukebox3D?content=63124
QT-Apps: http://www.qt-apps.org/content/show.php/jukebox3D?content=77564

Pour la version 0.7.0 voici la liste des fonctions majeures à intégrer:

- Gestion de la DB Mpd vers la playlist.
- Amarok 2 intégration avec pourquoi pas un plasmoid ?
- Moteur de jaquette plus flexible ( recherche de jaquette localement si non trouvée par exemple.)

mardi 18 mars 2008

Jukebox 3D release todo

Release todo:
- Manage collection reflection.
- Manage collection size.
- Manage collection scroll.
- Manage collection text.
- Manage player toolbar settings.
- Manage time bar settings.
- Create eye candy elapsed time bar ( thanks tuXXX ).
- Create qmake install rules.

release in process...

Ordering a new laptop for home :)

I have just order a new laptop and I choose the Dell Ubuntu Linux service.
Now Dell support 3 linux configurations:
- 2 Laptops ( XPS and Inspiron )
- 1 Desktop.

I have take the inspiron 1525 for the large screen ( 15.4" versus 13" for the XPS ).

The only thing that borring me a little it's the video card, only XPS Laptop can have a NVIDIA 8600 instead of a Intel X3100, by the way I'am not buying this laptop for gaming ( My desktop is good for that :) ).

Intel chipset will be usefull for in depth testing of jukebox3D with intel open source hardware driver, this is the good news !

This is the laptop configuration I choose and you will find one curious line :

Inspiron 1525 N-Series CORE 2 DUO T5450 1.66GHz,667,2MB Display 15.4" Widescreen WXGA+ (1440x900) with TrueLife
2.0 Mega pixel web camera NOT included
LCD Back Cover Alpine White Custom High-Gloss
Not Included Resource CD
Ship Accessories European Inspiron 1525
Documentation French Inspiron 1525
Memory Dual-Channel 2048MB (2x1024) 667MHz DDR2 SDRAM Hard Drive 160GB Serial ATA (7200rpm)
Optical Drive 8xDVD+/-RW Drive - N-Series
AC Adapter 65W
Power Cord European 1 meter
Battery Inspiron Primary 6-cell 56WHr Li-Ion
Not Included Carry Case
Graphic Intel Integrated GMA X3100
French Modem Cable and Adapter Internal V.92 Data, Fax, Voice Functions
Intel® Pro Wireless 3945 802.11a/b/g Mini-PCI Card EUR
Internal Keyboard French (AZERTY)
Ubuntu Edition version 7.10
Not Included Software Application
Base Warranty - 1 Year Collect & Return
3 Year Consumer Hardware Support inc. Evenings and Saturdays
** Vista introduction Online Training (30 Days)
To access Online Training or free trial, please go to www.learndell.com/euro to register 1
Inspiron Order - France



Yeah Dell sell a Vista Online Training with a Ubuntu laptop =) !


I hope my buy will support Dell gnu/linux solution 'cause for me it's a priority to have a windows free computer !

dimanche 16 mars 2008

It's a rainy day ..

The j3D microcosm development environment ( bazaar vcs/mantis bug tracking) seem to work very well :)

Merging contributed code in a moving trunk its really magic ... At least for a project of this size (~6000 lines) it work.

This is the list of tools I used for jukebox3D:

Project administration:
- Mantis ( bug tracking )
- Bazaar ( VCS )

Development:
- Qmake / Qt4
- QDevelop - QTDesigner for ui.

If you have some cools ideas, you can start to contribute right now, reach me on irc at irc://irc.teepi.net channel #pcinpact-linux or write me a little email !


Release todo:

- Manage collection reflection.
- Manage collection size.
- Manage collection scroll.
- Manage collection text.
- Manage player toolbar settings.
- Manage time bar settings.
- Create eye candy elapsed time bar ( thanks tuXXX ).
- Create qmake install rules.


[Fr]
Le microcosme de developement de jukebox3D commence à être complet ( vcs, bug tracking )

Fusionner du code de contributeur dans la branche principal qui à bougé entre temps c'est magique ! .... Du moins dans un projet de cette taille (~6000 lignes ) ça fonctionne sans probleme .

Voici la liste des outils que j'utilisep pour jukebox3D:

Administration du projet:
- Mantis ( bug tracking )
- Bazaar ( VCS )

Developpement:
- Qmake / Qt4
- QDevelop - QTDesigner for ui.

Si vous avez des idées et que vous voulez contribuer à jukebox3D, contactez moi sur irc ( irc://irc.teepi.net #pcinpact-linux ) ou par mail.

vendredi 14 mars 2008

Jukebox 3D release todo


- Manage collection reflection.
- Manage collection size.
- Manage collection scroll.
- Manage collection text.
- Manage player toolbar settings.
- Manage time bar settings.
- Create eye candy elapsed time bar ( thanks tuXXX ).
- Create qmake install rules.



mercredi 12 mars 2008

Jukebox 3D release todo

Rock 'n' roll !

- Manage collection reflection.
- Manage collection size.
- Manage collection scroll.
- Manage collection text.
- Manage player toolbar settings.
- Create eye candy elapsed time bar.
- Manage time bar settings.
- Create qmake install rules.


Video can be found here :
http://j3d.linuxonfire.org/video/12032008.mpeg

samedi 8 mars 2008

Jukebox 3D release todo

Hi from France !

Before releasing jukebox3D, I need to finish few things like :

- Manage collection reflection.
- Manage collection size.
- Manage collection scroll.
- Manage collection text.
- Manage player toolbar settings.
- Create eye candy elapsed time bar.
- Create qmake install rules.



Extra bonus will be to implement Mpd Db management into options window :)

vendredi 7 mars 2008

Using QT for creating cool apps. Part 1

Jukebox3D is my first QT4 application, porting it from gtk has been a challenge for me. Why ?

- First it was c++, if you are not fluent in object oriented tricks and vocabular, you will need to learn some basics skill like polymorphism/functions overload.

Because QT Frameworks use a lot of overloaded functions, you will encounter in your first program some errors ( yes sometimes I forget a thing :) ) containing overload output, and it's better to be aware about that for understanding the real error.

- Learn qmake tool and it's very easy, the manual appear to be complex but if you see an example ( jukebox3D.pro ) i 'am sure you will understand:

TEMPLATE = app

INCLUDEPATH += src/libQtAmazon/
CONFIG += opengl warn_on qt release link_pkgconfig debug
QT += gui opengl core xml network
FORMS += ui/optionswindow.ui ui/savebox.ui
RESOURCES += data/optionsimpl.qrc
PKGCONFIG +=
DEFINES += QT_NO_DEBUG_OUTPUT GL_GLEXT_PROTOTYPES

SOURCES += src/main.cpp \
src/window.cpp \
src/glwidget.cpp \
src/model.cpp \
src/optionsimpl.cpp \
src/saveboximpl.cpp \
src/xmlconfig.cpp \
src/libmpdclient.c \
src/item.cpp \
src/song.cpp \
src/iconvasciicodec.cpp \
src/covermanager.cpp \
src/libQtAmazon/QAmazon.cpp \
src/libQtAmazon/QAmazonImage.cpp

HEADERS += src/window.h \
src/glwidget.h \
src/model.h \
src/libmpdclient.h \
src/optionsimpl.h \
src/main.h \
src/xmlconfig.h \
src/saveboximpl.h \
src/libmpdclient.h \
src/item.h \
src/song.h \
src/iconvasciicodec.h \
src/covermanager.h \
src/libQtAmazon/QAmazon.h \
src/libQtAmazon/QAmazonImage.h
Thats all, if you need to regenerate the MakeFile you only need to type qmake (equivalent to autogen.sh && ./configure ) in a shell. After that you can type make and see a magic wand in action !

In Part 2, i will abord the IDE problem ;)

jeudi 6 mars 2008

Taking the temp

Hi !

the development version is still on the way, adding day after day more options and getting all more coherent and consistent. Qt comes with some cool painting function like over painting and rotating text, allowing me to implement complex operations in a second !

I hope the first public release will be out in few weeks, by the way the KDE-Apps and KDE-Look website will be updated for the advertising.


I have seen through planet-kde the converted picture coverflow into plasma applet, it will be reaaallly cool if I can do that with jukebox3D. May be ...soon ?

Stay tuned !!

samedi 1 mars 2008

Open up jukebox3D development blog.

Hi, jukebox3D is a next generation GUI for Mpd.

Actually ( 0.5.0 ) jukebox3D is only a playlist viewer wrote in GTK/C for amarok, rhythmbox,mpd and exaile.

But a new big step has been made for the coming 0.6.0 release:
- First, jukebox3D is now write in QT4 / Cpp.
- Second, for delivering maximum control experience to user, jukebox3D will be only compatible to MPD daemon.
- Third, yes with the upcoming release you will be able to browse your playlist a la 'coverflow'.

You can find 0.6.0 development screenshoot here:

2 essentials parts compose jukebox3D scene:
- In top you can see what is playing now with the remaining time.
- At bottom you can see the playlist collection, you can move it with the mouse wheel or with your keyboard.

More informations will come soon centralized through this blog. Don't forget you can find the official website here: http://j3d.linuxonfire.org/index.php?lang=1

--Sylvain