Archive for the ‘Projects’ Category

Italian ssh tips translation

Wednesday, January 18th, 2006

Now this is quite cool, Davide Duina (I think I spelled it right! :) of http://mandrakeitalia.org/ has posted an Italian translation of my SSH tips and tricks.

Original at: http://zerodogg.iamaturtle.org/index.php?type=docs&page=sshtips
Italian at: http://www.mandrakeitalia.org/modules/wfsection/article.php?articleid=151

CCP 0.2 released

Saturday, January 7th, 2006

This version contains multiple bugfixes, some which could cause various configuration files to not upgrade correctly. Among others, it fixes bug #15364.
In other news, the first package using CCP in Mandriva is out – which is squirrelmail :)

CCP 0.1 released

Tuesday, January 3rd, 2006

CCP version 0.1 has been released!
It can be downloaded from http://ccp.nongnu.org/download.html.

It’s also in Mandriva Linux (cooker) contrib.
The first package to use it is squirrelmail, which I updated today.

CCP can now autogenerate templates :)

Monday, January 2nd, 2006

CCP can now autogenerate the templates, so it’s pretty much ready for real-life testing.
Here’s the same example used in earlier posts.

[0 zerodogg@drizzt ccp]$ cat example.conf
# Example configuration file
SystemVersion = 0.1
Mode = public
Extensions = off

[0 zerodogg@drizzt ccp]$ cat example.conf.rpmnew
# Example configuration file
SystemVersion = 0.1
Mode = private
Extensions = on
AllowUsers = yes

[0 zerodogg@drizzt ccp]$ ./ccp --oldfile example.conf --newfile example.conf.rpmnew
Merging changes between "example.conf" and "example.conf.rpmnew"...done

[0 zerodogg@drizzt ccp]$ cat example.conf
# Example configuration file
SystemVersion = 0.1
Mode = public
Extensions = off
AllowUsers = yes
[0 zerodogg@drizzt ccp]$

A working copy of CCP

Thursday, December 29th, 2005

CCP (as I wrote about earlier) now has a project on savannah. It now works! It can be downloaded from the CVS repository.
However, it doesn’t use libconf yet, and thus only supports key = value files. It also doesn’t know how to create the templates by itself so those have to be written by hand for now (but this should be easy(ish) to implement I think).

Like i said it currently supports key = value files. Any format will do. It can for instance handle any of the following:

$Key = Value;
$Key=Value
$Key='Value'
$Key="Value"
$Key ="Value"
Key = Value
Key=Value
# Comment
: Comment
; Comment
[Section header that gets ignored]

It doesn’t support comments on the same line as a config option, but this can probably be added at some later time.
I haven’t written any documentation yet – but here’s the same usage sample I used before (edited to suit the way ccp now works).

/etc/example.conf:

# Example configuration file
SystemVersion = 0.1
Mode = public
Extensions = off

/etc/example.conf.rpmnew:

# Example configuration file
SystemVersion = 0.1
Mode = private
Extensions = on
AllowUsers = yes

/usr/share/example/config.ccptemplate:

# Example configuration file
SystemVersion = {CCP::CONFIG:SystemVersion}
Mode = {CCP::CONFIG::Mode}
Extensions = {CCP::CONFIG::Extensions}
AllowUsers = {CCP::CONFIG::AllowUsers}

Command:

$ ccp --template /usr/share/example/config.ccptemplate --oldfile /etc/example.conf --newfile /etc/example.conf.rpmnew
Merging changes between "/etc/example.conf" and "/etc/example.conf.rpmnew"...done

Resulting /etc/example.conf:

# Example configuration file
SystemVersion = 0.1
Mode = public
Extensions = off
AllowUsers = yes

GFSGL 0.92.0 “White Teddybear”

Friday, December 9th, 2005

Finally! It is released (well, a week ago, but still).
Version 0.92.0 of my little child, GFSGL.
Now it has a GTK2, GTK1 and KDE GUI using xmsg, a module system that allows easy extension of it, and a handfull of modules included by default (such as AutoAddGames which automatically detects and adds native GNU/Linux games to GFSGL) in addition to various modules available for download.
GFSGL is a game manager, it makes it easier to install and run games under GNU/Linux and other *nix like operating systems. It does this by providing one unified interface that you can launch games that are native, wine, scummvm and so on from, and by allowing one-click installer launching. The module system makes it even easier to extend, and I’m hoping that someone will find the time to try to write some modules that they feel are needed.

More information can be found at the GFSGL website, in the release announcement and in the release notes/changelog. You can also look at some screenshots.

GoldenPod

Saturday, October 8th, 2005

GoldenPod is a podcast client written in perl by yours truly. It is backwards compatible with bashpodder and thus in theory all GUI’s written for bashpodder should work with goldenpod. In addition to simply downloading podcasts into directories named by date you also get podcasts sorted in a catalogue directory by the name of the podcast (as supplied in the RSS feed or if that is not available, goldenpod will make a guess based upon the filename) which makes it easier to locate older issues of a specific podcast.

GoldenPod also makes it easier to manage your podcasts and is portable music player friendly. It has a function that can copy N of the newest podcasts to the supplied directory. Example:
goldenpod --files 4 --copy /mnt/removable/podcasts/
will copy the 4 newest podcasts to /mnt/removable/podcasts/. As 4 is the default it is the same as
goldenpod --copy /mnt/removable/podcasts/

Along the same lines it can delete the N oldest podcasts. Example:
goldenpod --files 4 --rmold
As with –copy, 4 is the default. So the above example is the same as:
goldenpod --rmold.

Another nifty feature is that you can ignore a perl regular expression pattern when downloading, copying or deleting podcasts. This can also be set in the configuration file to ignore by default (however, the setting in the config file does not apply to –rmold, the commandline option does). Example:
goldenpod --ignore-pattern '(foo|bar|baz)'
This will download all podcasts other than those matching the regular expression (foo|bar|baz), that is, all files that does not have either foo, bar or baz in their name.

For more information about goldenpod you can download it and read the readme and manpage.
You can download it both in tar.gz and tar.bz2 from http://savannah.nongnu.org/download/goldenpod/.
The latest release when I’m writing this is 0.4.

Please post supports requests at https://savannah.nongnu.org/support/?group=goldenpod and not here. Easier to manage them at savannah.

Common configuration parser (CCP)

Thursday, September 29th, 2005

I’ve been thinking about ways to upgrade configuration files lately and I’ve come up with the idea for CCP (common configuration parser). The idea is to take one template file, one old configuration file, one definition file and one mode. To give a better example of how this would work:
ccp --type basic --mode rpmnew --template /usr/share/example/config.ccptemplate --oldfile /etc/example.conf
This here would tell ccp to work with the configuration type “basic”, in the mode rpmnew (upgrade if a rpmnew file is found), use the template file /usr/share/example/config.ccptemplate and upgrade the old configuration file /etc/example.conf. Settings not found in /etc/example.conf would then be taken from /etc/example.conf.rpmnew. For an even better understanding of the idea lets look at it some more. For example before the upgrade /etc/example.conf could look like this:

# Example configuration file
SystemVersion = 0.1
Mode = public
Extensions = off

/etc/example.conf.rpmnew could look like this:
# Example configuration file
SystemVersion = 0.1
Mode = private
Extensions = on
AllowUsers = yes

/usr/share/example/config.ccptemplate could look something like this:
# Example configuration file
SystemVersion = $CCP::CONF:SystemVersion
Mode = $CCP::CONF::Mode
Extensions = $CCP::CONF::Extensions
AllowUsers = $CCP::CONF::AllowUsers

ccp would read these files and write the new /etc/example.conf as:
# Example configuration file
SystemVersion = 0.1
Mode = public
Extensions = off
AllowUsers = yes

More advanced files could be supported by different –type’s. This is still mostly an idea that’s growing in my head but this is the basic thought of it. Quite possibly –template wouldn’t be needed and it would autogenerate a template on-the-fly by using the .rpmnew (or whichever file is the new one – ccp is not rpm specific, it is just one of multiple modes it would be able to run in).

I knew GFSGL was amazing but…

Monday, June 27th, 2005

this is a bit much:
[0 zerodogg@drizzt shared]$ file /home/zerodogg/.gfsgl/CVS/debug.log
/home/zerodogg/.gfsgl/CVS/debug.log: Apple Old Partition data block size: 21331, first type: ., name: nd:hashall:interactive-comments, number of blocks: 1852403303,

I didn’t know it could create an entire partition out of a logfile.

In other news GFSGL version 0.91.0 (stable) has been released :).

gmDB CVS and more

Tuesday, June 7th, 2005

I’ve committed a (perhaps a bit buggy) version of gmDB to CVS, and updated the goldenfiles project webpage with information about it. It even has a screenshot. I don’t know if it’s still a good thing that when I need some piece of software I end up spending alot more time writing one (or in this case modifying one) than I would have just having it manually. In this case I’ve got a OOo Calc document with the members right now that gets the job done. Oh well.

In other news I’ve fixed my RSS feed now, so those reading on planet Mandriva will get the entire text instead of [...] (at least that’s what I’m hoping for :P).

Fork it!

Monday, June 6th, 2005

Gmbase is a simple members database written in C that uses GTK. It looks useful for small organizations, such as the local LUG I’m currently the leader of. However it lacked a few small functions, namely support for phone and e-mail entries. I mailed the original author about it, but he told me that he doesn’t develop it at all anymore and that if I want any added functionality I’ll hav to do it myself.
Fair enough, only one problem…I don’t know that much C. I’ve done hello world ofcourse, but not too much other than that. Still, I thought I could at least give it a go and after alot of fiddling with it I actually managed to implement something new. So now I’ve forked gmbase and I’m calling it gmDB. I’ll release a alpha soon (calling it alpha since I don’t really know the programming language and then might need a bit of extra time for QA :P).