Infinity Perl : slack-get, Perl, Qt, KDE and other Open source stuffs

To content | To menu | To search

Saturday 30 August 2008

slack-get user interface: step 1, how I see the futur

Hi,

as I already said I am currently developping the C++ API of slack-get. I also wrote that I am concentrating on usefull part of the API, skipping the generative parts that are not absolutly required at the moment. So in parallel to this development, I made some tests for the graphical user interface. I came up with the conclusion that there is 2 different way to use slack-get :

  1. Keep a Slackware box up-to-date by installing security fixes and Slackware patches
  2. Keep a box up-to-date, upgrade and install packages (but not patches)
So, considering that I decided to come with 2 different GUI : a dock application to tell users that there is patches available and the full graphical client (like the previous slack-get GUI).
I starts coding a little widget (Slackget::QSimpleUpdate). This one looks like that :


I am interested in any opinion/advice/suggestion concerning this. The code of this proof-of-concept is available on the SVN (in trunk/src/QSimpleUpdate/). I made it themable thanks to Qt4 support of CSS.
So far, I think it is a quite fine dock application. I wanted it to be simple to get working, and I also wanted that this widget is able to display enough informations.

That's all for today :)

Arnaud Dupuis

Friday 29 August 2008

Release: Slackware::Slackget v0.17

Hi,

A new version of the Slackware::Slackget module was released on CPAN.
This release features the followings changes :
 - lots of fix in order to make all classes of the module SGNC Compliant
 - Slackware::Slackget::GPG have had many methods implemented
 - change the to_string() behavior of the Slackware::Slackget::PackageList, Slackware::Slackget::Package and Slackware::Slackget::List to make them able to generate a Slackware's PACKAGES.TXT (supporting, of course, the slapt-get/swaret format for dependencies).

This module was in a need of a new release since the documentation have been updated a lot (and I personally use CPAN as my API doc reference ^^).

Arnaud Dupuis

Wednesday 27 August 2008

First parts of the C++ API

Hi,

I uploaded on the SVN repository the first part of the slack-get C++ API.

I am coding this one to be as close as possible to the Perl one. So the first two classes uploaded are, of course, Slackget::Package and Slackget::PackageList. As you can see I am using the Slackget:: namespace in order to identify slack-get's classes.

As usual, the documentation and all doxygen needed files are already on the SVN too.

I am focusing on usability and stable features for this C++ API. This means that, in a first time, I will not translate all features. All classes that will fall in those exceptions will be adequatly documented.

My goal with this API is to start coding the graphical user interface as quickly as possible.

Arnaud Dupuis

Thursday 21 August 2008

Some updates on Infinity Perl domain

Hi,

Like I announced previously on this blog, I'm changing the architecture of Infinity Perl domain.

So I rented a server to my registar (Gandi), and installed WebGUI 7. The current result is available at http://www2.infinityperl.org. It is still in early development stage but I have a good idea of what I want to do with this website.

To conclude this post, I wanted to keep you informed : work has been pretty slow (freeze is the right word) this week. This is because I have caught something quite bad and I have a bad lung infection. That makes me quite weak and it's a bit painfull to even stands up.

So the first parts of the C++ API will be a bit delayed. Sorry.

Arnaud Dupuis

Wednesday 13 August 2008

slack-get development diary #6

Back from a long silence period, here it is : the 6th opus of the "slack-get development diary" !
There is a lot of new things that I need to talk about !
First the bad news : I saw on CPAN reports that the "fix" I made for Slackware::Slackget to properly test on Solaris OS is not working.
That is a bad thing but... I don't really see the purpose on trying to fix an issue on an OS which is not a Slackware based one and not even a GNU/Linux OS ! The Slackware::Slackget module will never be usefull on this OS, so since I have no Solaris to test I will just forget about it (unless somebody provides me with a patch for this system.

Now for all the good news :
  • slack-get suite (sg_daemon + slack-get) is now able to install, upgrade and remove packages
That's the first point, and I think it's a pretty important one. I fixed all the daemon and the (cli) client to make them able to perform packages operations without any problems.
So from now on, you can start a daemon and do a "slack-get install flightgear" for example :)
That's a very important point but it's nothing worth talking about without the dependencies tracking system.
Talking about that...
  • the dependencies tracking system is now fully functionnal
Woohooo ! This part was certainly one of the most painfull, but I finally manage to get it working the right way.
This part still need to be tested and there is no guarantees, so far, that it is working properly in all cases.
But so far my tests where very promisefull ! I add no problems and for the moment I have not yet discovered any bugs in this feature.
Again, that does not means that I will not uncover bugs later.
  • add support for automatic GPG key import
I added the possibility for the sg_daemon to download and import a GPG key. For the moment it only import Slackware Project's key and it is almost hardcoded but there is no reasons to extend this feature to all medias sooner or later.
This feature works well and is totally automatic : if sg_daemon do not find the Slackware Project's key in the user's GPG keyring, it download it and import it. Nice and easy.
  • add new feature to slack-get (cli client)
I added a new command to slack-get, it is called "info". You can use it the exact same way than the "search" command (this is the exact same code which is processing it).
The goal of this command is to provide more informations about a package. Here is an usage example :
$ ./slack-get info flightgear --media=slacky
Package: flightgear-1.0.0-i686-1as
Size (compressed): 3158 KB
Version: 1.0.0
Source: slacky
Description: The FlightGear flight simulator open-source project.The  goal  of  the  FlightGear project is to create a
sophisticated flight simulator framework for  use  in  research  or  academic environments,  for the development and pursuit
of other interesting flight simulation ideas, and as an end-user application
http://www.flightgear.org/ WWW.SLACKY.IT PackaGer Gohanz.


This little example, allow me to introduce the new command line option : --media. This one allow you to restrict the "search" or "info" commandes to the choosen media (in the previous example I wanted only results from the Slacky.it website).

Last about the slack-get cli client, I fixed lots of "non closing bugs". The non closing bugs are an annoying problem of slack-get cli client.
While the whole system became multitasks, it's becomming difficult to keep track of what the client asked by itself (particularly in a multi-administrators context), and after asking a sg_daemon to perform some tasks (and after the tasks are finished) the client does not end.
I corrected a lot of thoses problems.
A good example of this issue is with the "slack-get update" command. This one scheduled a tasks to upgrade all packages which have new ones in the patches/ subtree of the official-media (see config.xml). After the update, the client was not quitting. It is now corrected.
  • dynamic network backends negociation
Some of you may have noticed that sg_daemon should be able to dynamically negociate what network backends the client and it should use to understand each others. Until this morning it was not working, and it is now !
If sg_daemon supports XML and Base64 backends, and if the slack-get client supports XML and Gzip backends ; they will both agree on using the biggest common denominator (in this case they will use XML only).
I am very happy (and quite proud) of this mechanism. It allows tons of new development and many plugins to come !
  • lots of updates in the Slackware::Slackget Perl module
Last but not least I made tons of modifications in the Slackware::Slackget module. I added constants, generative methods to Slackware::Slackget::Media, add codes to Slackware::Slackget::GPG to support new import features, add method to Slackware::Slackget to check host's Slackware's version, and so on and so forth !

As a conclusion, I will just say that there is still some works to do but it's becomming to be a very usable tool. I'm using it every day now.
I hope all the work I made on slack-get will be of interets for you all !
As a bonus track I give you the new slack-get logo (that I made myself... so be kind ;-) )


Enjoy !

Arnaud Dupuis


Sunday 27 July 2008

Back online and work resuming !

Hi all !
I'm back from Japan and back online !!
I resumed the work on slack-get, and yet added an option to the slack-get client program.
A while ago I thought about some kind of mechanism to display more accurate search results.
Like everybody before myself, I came with a score system where result are evaluated by not-so-simple rules.
As a result each package (I mean Slackware::Slackget::Package) returned by the daemon (sg_daemon) contains a little more data and particularly have a "score" number.
This score wasn't use until today. It's now possible to limit the displayed search results.
For exemple :
slack-get --mid-score search lives
Will display only result with a score greater or equal to 10. Score values can be infinite but most of the time they are under 50.
From what I experienced they are going from 0 to 50. the lesser the score the lesser the probability for he result to be accurate.
By default, slack-get now skip all result with a score under 5.

Well that's not a big improvement, and I still need to write the code for dependencies tracking, but hey ! I'm back to work :)

Arnaud Dupuis

Friday 11 July 2008

Honeymoon in Japan !!!

Hi all !
I'm with my wife in Japan for my honeymoon ! We are now in Oosaka where we finally have the internet in our room.
We are resting in Dotonbori a really "genki" street !
We already stay in Kyoto, Himeji, Kobe and Nara... Japan is wonderful and I will provide you with some pictures when I'll be back in France.
Next in our trip is Tokyo where we stay in Shinjuku for the week end ! That's before climbing mount Fuji ... Still a lot to do.
See you in a while !

Arnaud.

Wednesday 7 May 2008

News & updates

Hi,


It's been a long time since I last posted. Well, I'm sorry... I greatly misjudge the time that my wedding planning would take !
If I didn't told you already, I'm marrying myself with my dear Fiancée on June 28th.
It's approaching at a freaking speed and nothing is ready !! **PANIC**

As you may imagine, I have not many time for all the Open Sources stuffs... As a consequence I will put all my project in "standby" mode until I'm back from my honeymoon (around July 20). To compensate this huge lack of informations, and me being out of business for a while (until July) I will provide you with pictures from my trip in Japan (yes my honeymoon is in Japan).

The other reason for my silence, is that I've been very busy with my work too. In addition to my normal job, I've written 4 (quite) big articles for a French development newspaper (called Programmez!), 1 about XML and 3 about Qt 4.x programing.

Now about slack-get, I wanted to make an announce but the code is not enough clean for a "development diary". In the other hand I would like you to know that the work is progressing quite while despite appearances ! So here I go :
    slack-get, and more particularly sg_daemon, 
is finally able to install packages from
any supported media !
But it still need a lot of work ! You can install any package you want while there no dependencies (like there is in packages from linuxpackages or slacky). It means everything from official Slackware repositories. The slack-get update feature is also fully functional. I personnaly use it to keep my main computer up-to-date !
I know need to get this f****** dependency tracking mechanism working and it'll be almost ready for release (I think... but I have bad memory when it comes to the work I still need to do...).

Last but not least, when I'll come back I will change all the web architecture of Infinity Perl. Indeed the current one is not adapted at all. So I will rent a new server (outside my flat, 'cause my futur wife don't like fan sound... beats me...), and install on it a new website WebGUI based, and keep the blog for what it should be : a blog !
A new website will help me to present all my work on a single place. I will centralyze here all my projects from CPAN modules to slack-get, passing by PKanaEditor and Association Subscribers Manager (still in early development state).
For all this, I will need you to disable your adblock ;-)

I will try to update the blog and I'll do my maximum to commit some codes before my weddings, but I do not promise anything !

See you

Arnaud Dupuis

Thursday 20 March 2008

Hardware failure and slack-get delay

Hi,
Like the title of this post can let you imagine, my main computer's hardware is all broken.
After a hard disk drive, replacement (87 EUR or 137 USD), a CPU replacement (190 EUR or 300 USD) I now need to replace my mainboard (225 EUR or 353 USD)...
All those thing leads to 2 things :
  1. I've no more money (so please enjoy a click on a google add ;-) )
  2. I spend a lot of time trying to go to the shop, and try to fix this damn computer.
The direct consequence is that the slack-get development diary is delayed until I fix my computer.
Why ? Just because there is an important pending SVN commit (waiting a data recovering) on one of my broken disk...

Sorry for the delay but hu...

By the way I strongly advice French preoples against the IT shops in Paris' "rue montgallet" unless they are willing to save 200 € on 1500 in order to cancel their hardware's garantuee.


Arnaud Dupuis

Monday 17 March 2008

New english data file for PKanaEditor

Hi,

I saw - thanks to users mails - that I only gave a french data file with PKanaEditor 0.2.
So I hereby correct this mistake by providing you (attach to this post) an english localized data file (PKanaEditor English localized data file).
I hope it will fit english speaker needs !

To use this file, you just have to download it, open PKanaEditor's settings, choose a "Custom..." data source and select the file you just download as the source.

In version 0.3 there will be an automatic OS language discovering. While I'm confessing about the next release I can also tell you that I'm rewritting the auto-completion engine. The current one is indeed... a bit buggy... It generally works not too bad but their is some important issues (for example when you hit the carriage return key, you have to also hit the space key or no completion is done...).
The new engine is way better because I put the code I wrote to the dustbin and I'm now using Qt's features... And wonder what ? It's A LOT better ;)

Oh and by the way the slack-get development diary will be back this week (probably on wednesday), because I have one or two little thing to tell you.

Enjoy!

Arnaud Dupuis.

Saturday 8 March 2008

PKanaEditor - The "P" Kana Editor v0.2 - windows binaries

Hi,
Since I'm currently working on a windows xp computer, I got the occasion to compile PKanaEditor on this platform.
So, attached to this post is the windows installer containing required Qt dll and PKanaEditor binary.

This version is provided for convenience without any guarantee it will work on your windows install ;-)

Enjoy !

Arnaud Dupuis

Friday 7 March 2008

Release: Slackware::Slackget - Main Perl library for the slack-get package manager - v0.16

Hi,
The new version of the Slackware::Slackget Perl module have just been released on CPAN.
This 0.16 version add more unit tests to the test suite, should fix the incompatibility problems on Solaris, and fix some bugs in the API.
Particularly, in the Slackware::Slackget::File and in Slackware::Slackget::List classes.

Next changes in the API will be to add Java like iterators to the Slackware::Slackget::List class.

You can download this module on CPAN.


Arnaud Dupuis

Monday 3 March 2008

PKanaEditor - The "P" Kana Editor v0.2 released

Hi,
After some weeks of kind of hard work, here is the 0.2 version of the "P" Kana Editor.
It's now fully rewrote in C++/Qt 4.x and that's one of the smallest changes I made !
I also add a configuration window and the editor now features an intuitive "kana" completion and an help system on completion's proposal !
Moreover PKanaEditor is now multiplateform and can be used on Linux based system but also on windows systems (only XP tested) and Mac OS X (hum... it should be...) and most of the UNIX based system (*BSD, etc.).
You can download the sources from Qt-apps.org or from here. The archive is also attached to this post.

The one thing I couldn't do for this release is to find a meaning to the "P" ;-)

I hope you will enjoy it !

Arnaud Dupuis

Tuesday 26 February 2008

Public test of the PKanaEditor main widgets (KanaEditor, KanaTextEdit and KanaListWidgetItem)

Hi,

I finished to implements almost all features I wanted for PKanaEditor 0.2... in the editor widget. Well that left some works to have a complete application working smooth and fine. But since the editor widget is almost finished, I would like to have some feedback.
So I hereby release the first alpha version of this editor. Please note that this is not the complete application, it do not allow you to save your work and do nothing else but to translate what you write from romanji to kana.

I still would like some feedback about the choice I made in the implementation.
I am particularly interested in your opinion about the following points :
  • the way the kana are automatically presented to user (the completion through the "helper" popup)
  • the contextual help system (when you let your mouse above a kana a tooltip with a big version of the kana and it's meaning (for kanjis) is drawn)
  • your global feeling about this editor.
Please keep in mind that this is only the editor part of the software !
There is still time before the release of the whole program. So if some brave souls could test this editor and give me interesting feedback, I could make it better.

In order to use this editor you have to compile it. This means you need Qt4 (at least 4.2.0 but 4.3.0 or newer is recommended), g++ and make.
To compile the code for your plateform you just have to do the followings :
qmake PKanaEditor.pro
make
./PKanaEditor


I tested it on GNU/Linux (Slackware+KDE) and Windows XP and it should compile and run on Mac OS X and most of the common Unice (*BSD, etc.).
Here is a screenshot of the windows xp version :


I hope you will like it !

don't forget: feel free to send me your feelings about this... Did I mention that I wanted feedback ?

Arnaud Dupuis

Monday 25 February 2008

PKanaEditor updates

Hi,
After some thoughs I choose to change the way the helper is shown in the KanaEditor.
The tab-based widget was not easy to use in real usage conditions.
So I changed the thing and made a new helper based on a single QListWidget.
Here is the new result on Linux/KDE :


And on windows XP :

I think the Japanese font installed on the windows I use are just crappy.
Else, I can't explain the difference in quality between the windows version and the Linux one.
Next time, I will try to compile it on apple's Mac OS X.

Last but not least, I made a Qt Designer plugin of this KanaEditor widget. And thanks to the guy of irc://irc.freenode.net#qt I fixed a damn semi-colon at the end of the class definition which was "preventing" my code to compile...

See you later.

Arnaud Dupuis

Wednesday 20 February 2008

PKanaEditor new version proof of concept

Hi,
I never talk about my private life (or very few), but this time it had an influence on my Open Source work !
So here is the information : I will be married by june !
And my futur wife and I decided to spend our honeymoon in Japan... So make the link by yourself between this journey and PKanaEditor ;-)

So I have begin to code a proof of concept in C++/Qt4 and with some surprise it works pretty good ! Have a look at this screenshots :


Moreover, my new mission force me to code under microsoft windows xp, so I tried to recompile this PoC under windows and it works too ! Have a look :


Dudes from Trolltech made some incredible works ! I know it works since years but I didn't put my hands on a windows computer  in more than 8 years, and at this time I wasn't programming at all... I was too young ;-).

I now lack the XML loading of the data file and this PoC will be a stable version :)

For those who are interested in Qt programming, I do the trick translating romanji to (hiraga|kataka)na|kanji by subclassing QListWidgetItem and adding a _romanji internal QString to this item. The actual displayed character is set as the item text. Pretty simple, like the major part of Qt programming !!

The only real problem is to find a new meaning to the "P" of PKanaEditor (because it originally means Perl Kana Editor)...

Arnaud Dupuis

Friday 15 February 2008

compatibility of the Slackware::Slackget Perl module version 0.15_99

Hi,
It looks like that the latest released version of the Slackware::Slackget Perl module is quite incompatible with the Solaris operating system.
I was expecting this kind of problem with this release because I added more tests to the test suite. And Slackware::Slackget, as its name said, is designed to run on Slackware GNU/Linux based distributions.
So before the 0.15 final release, in order to provide a very usefull test suite, I will add some more tests.
And unfortunately, I expect more issues... The more the test suite is accurate, the more it will point the problem with Slackware incompatible systems.

The problem with the Solaris systems is that the `file` command do not support the -b switch. I use the file command instead of a CPAN module to reduce the amount of dependencies of Slackware::Slackget but I will look at this and try to make the Slackware::Slackget::File class use a CPAN module if installed (like File::Type).

Arnaud Dupuis

Monday 4 February 2008

Websites and (bothering) stuffs like that (bis repetita)

Hi,
Err, I think it was quite a bad idea to automatically import all article from this blog to http://slackget.infinityperl.org... Since the massive amount of new articles may have made slackget.infinityperl looks like exactly the same than the blog... and Google do not like that at all...
I'm so bad with referencing and stuff like that :(

If someone have advice on this point, feel free to contact me at (suppress all underscores) a_[dot]_d_u_p_u_i_s_[at]_i_n_f_i_n_i_t_y_p_e_r_l_[dot]_o_r_g

Bye.

Arnaud Dupuis

Sunday 3 February 2008

Websites and (bothering) stuffs like that

Hi,
As you could have figured I'm not really fond of website designing and stuffs like that...
But, in order to have some visibility on the Internet, this is my needed curse.
I intended to send http://slackget.infinityperl.org to oblivion but I realized that it was not really a good idea regarding google's stats.
So to fool the <insert your favorite search engine here>bot, I wrote a script (which is now running with cron), to automatically import all the post I do on this blog, and to do a static export in html from the blog to slackget.infinityperl.org.

I just wanted to keep you aware that you could read two times the same post ;-)

Just a little reminder about slack-get project websites :
Official web site : this blog
Old website : http://slackget.infinityperl.org
Web SVN interface : http://slack-get-10.svn.sourceforge.net/viewvc/slack-get-10/
Sourceforge page : https://sourceforge.net/projects/slack-get-10/
Freshmeat page : http://freshmeat.net/projects/ipslackget/


Arnaud Dupuis

Saturday 2 February 2008

Release: Slackware::Slackget v0.15_99 and SGNC documentation

Hi,

A new version of the Slackware::Slackget module was released few hours ago on CPAN.
This release features the followings changes :
    - modify Slackware::Slackget::File->filename() behavior to allow it to set the filename
    - fix is_heavy_word() method in Slackware::Slackget::Package, wich now return the correct result
    - update Slackware::Slackget::Date to make it fill the month-name from the month-number
    - update Slackware::Slackget::Date by overloading '<=>' and 'cmp'
    - changed all classes of the Slackware::Slackget module to be compliant with the slack-get naming convention (SGNCC : Slack-Get Naming Convention Compliant) (http://www.infinityperl.org/post/2008/01/30/slack-get-API-review)
    - add more tests to the test suite for the followings classes :
        * Slackware::Slackget::File (SGNCC & backward compatible)
        * Slackware::Slackget::Media (SGNCC & backward compatible)
        * Slackware::Slackget::Date (SGNCC& backward compatible)
        * Slackware::Slackget::Package (SGNCC & backward compatible)

It is tagged as a developers' release for the moment since all the test for all modified (SGNCC) modules, the documentation is not yet up-to-date considering all the changes made, and I still need some time to test if their is absolutely no side effects due to the changes I made in the API.

Arnaud Dupuis


- page 1 of 3