Latest Publications

Theme days 3, 4 and 5

So, theme days… Lots of themes I forgot to post (more like I didn’t really have the time)

Theme for day 3

So, day 3 was another cleaning day. It wasn’t really intended to be a cleaning day, but since my mom really wanted to get my desk out of the house and replace it with a different setup, I kind of was pushed into cleaning…

The result is estounding though, lots and lots of work has been put in it, but right now, my desk is bigger, cleaner and all around me, I have more space. That + I now have greater freedom, and movement makes me feel a lot more productive (It’s the feeling that counts ^^)

Theme for day 4

Day 4 was kind of a cleaning aftermath + pySM day. Since the cleaning we had a lot of stuff to throw away (because they were absolete), and it’s still an ongoing process of course.

After that we did pySM for a long-long time… Tim came by and we were going forward on our respective parts. We had long and hard discussions on how to deal with some of the problems we were facing. A lot of progress was made, especially in the area where we discussed a lot of stuff ^^

Another problem pySM seems to face is our third developer. We haven’t really heard much of him, and we constantly need to remind him to continue developing. We gave him a part of the project that is equally important as our two, but less hard (mostly data storage, comparison and retrieval).
Granted, he wasn’t (and still isn’t) really up to speed with python, and it’s been a lot to process on his part these past few weeks. However, seeing _no_ progress at all isn’t really positive. He keeps telling us he’s trying to figure things out, and he’s trying to build testcases. Which we’d love to believe, but we don’t see any proof + he doesn’t seem to commit to svn. I’ll be bugging him later to commit more.

Theme day 5

I guess when my count is correct, that should be today.

So todays theme is mostly about pySM. I’ve been making great progress on the XMPP server, although it’s currently only static progress. The server isn’t really dynamic at all. It just responds conditioned to certain requests. When those things work properly, I’ll be working on making things more dynamic, pluggable since we’ll be needing modular more than static. However, progress is progress, and especially in understanding the protocol the progress is huge.

Aside from that, when reading the archlinux forums I found a post about a start page for archlinux. Kind like the firefox startpage, but with searchoptions for google, archlinux forums and archlinux wiki.
So that really intrigued me and I set up that page at http://arch.codercpf.be/ because I already have a home page (speed dial) on firefox.
Like this, I still have the functionality featured by the start page, and the speed dial.

So, I cleaned up the code some and I’m thinking about putting a small rss reader and small database in there written in django. It would be great to polish my django skills on a small project. I’m just going to figure out how to deal with the rss reading. Since my host supplies a simple cron interface, I assume it’ll run like that.

So, I got something to play with, and y’all are thanked for the great support recently!

Theme day two: Cleaning

More specifically, I’m going to clean my desk. It really needs cleaning, saying it’s a dump would be an understatement!

I’m all set op for some hours of cleaning. Music loud enough (but not too loud, wouldn’t want to have police at my door…)

After cleaning (perhaps in between, when I get sick of it) I’m going to do some french. And some more french, because I need to make up for lost time of yesterday. I forgot to do my french that day :o

On the bright side, I did wake up at a more decent time. I wanted to wake up at 8 o’clock local time. It was ~8.30 when I got my ass out of my bed. So that’s actually quite acceptable.

Wish me lots of cleaning luck :)

PySM: creating language files

Creating language files in a project has been proven _very_ simple in our pySM project.

How the files are stored are not really the issue. The issue is how to most easily create the link between the display (strings) and the language.

For sake of demonstration:

lang_en = {'no_such_server': "No such server",
    'unavailable': "unavailable",
    'extra_blabla': "some more shizzle", }
language = lang_en
print("%(no_such_server)s" % language)

Now, this is for a so called “english” language array. But if said array were to be translated to another language (e.g. dutch):

lang_nl = {'no_such_server': "Server bestaat niet",
    'unavailable': "Niet beschikbaar",
    'extra_blabla': "Wat extra zever", }
language = lang_nl
print("%(no_such_server)s" % language)

So. Python proves his power _again_ in using this simple feature in everyones advantage!

# update:

It has been noted by my loyal friend that language files might be empty or be non-existent. Which is indeed quite correct.

The solution for that would be to create a standard “english” (since most people understand that) dictionary, and have another dictionary “merge” into the default dict.

The advantage of such approach is that when there’s an update, not all language files / dictionaries should update immediatelly. They can remain outdated, in a way. Because the merge would only replace the already existing keys in the old dict with the new values from the new dict.

Example:

# using above lang_en and lang_nl
language = lang_en # establish default, lang_en would then be hardcoded
language.update(lang_nl) # merge both dictionaries
print("%(no_such_server)s" % language) # Server bestaat niet

If at any chance an update is established and a key doesn’t exist in lang_nl, the default value in lang_en would be used.

Thanks @Tim for helping me here :)

PySM: SASL communication

So, as announced earlier, I’m working on PySM this entire day (with of course the exception of couple of relax hours etc…)

As I’m going, I’m learning a lot… It’s amazing how hard simple things can be.

Currently, I nearly have my SASL communication part of the server done… I’m actually excited, because that’s how far I wanted to get for the day. Seems I’ll be getting a bit further (since I don’t want to stop now)
Who knows, I might even be capable of setting up the more advanced stuff soon.

I’ll try to scan for other XMPP servers in the LAN subnet when I’m through with the basic XMPP server implementation. The idea is that every system server will try to see whether or not there’s an XMPP server running. If not, it should start one and connect to that. If there’s already an XMPP server in the network, it’ll simply connect.
I hope this makes it capable of scalability. I also hope this doesn’t go on and conflict too much when all the system servers are being started at the same time. I might have to provide a protocol for that (continuous scanning perhaps)
Also, it might prove a bitch to have multiple subnets/networks. Because those servers won’t be able to find each other (unless I start scanning a lot more than I’m supposed to). I guess not everything can be working out of the box… Can it?

It will prove quite the learning experience trying to solve scalability problems. But at the moment, I’m just trying to figure out basic stuff, so the challenge here is not to over-engineer this right here, but to build basic blocks, and go from there :)

Thanks for reading, the psychology is improving here :D

Launching: theme days

As it is vacation for me (great, great vacation) and I have a lot of stuff to catch up to (mostly school stuff), I’m going to change my life by doing some theme days.

The idea is simple: Every day will have a theme. In which I try to do as much as possible around that theme. It’ll be from working on PySM to cleaning up my desk (which is really necessary too)
In doing so, I hope to get myself up to speed again. A lot of things need work!

Now, I’m actually a lazy bum, don’t really do much… I sleep most of the time of the day. Which is something I’m going to change too :)

Everything in a nutshell: I’m going to change a lot around myself. So, 14 days of theme-working. ^^

Next to the theme every day, I’m also obligating myself some required work. Like one hour of french every day (because I don’t want to fail the exams and stuff), and some more pleasant stuff too (I’ve got a weak bow, and the bow can’t always be strained, as we say in Belgium)

Wish me luck :D

Todays theme: PySM

I’ll keep everyone updated. But today I’ll be working on PySM, more specifically on the server part (system), I’ll be continuing to write a (as-close-as-possible) XMPP server in python.
So, I’ll keep you guys updated :D

Xmonad screenshot

Keeping things fresh… Can be quite hard.

This is a screen of my current xmonad setup. Gotta love it!

I’d like to thank McManiaC @ archlinux forums for his config, and brief help.

25032009

I’m hero

No worries, I’m the great four eyed accountant!!

I’m here to save you from your financial crisis misery… (Or not quite)

The great four eyed accountant

The great four eyed accountant

Too sad that I’m both not good with money, and an ICT geek… Funny to become an accountant :)

Create your own hero at: the hero factory

More, more, more!

As it is, the time is constantly more limited. I need more time, lots and lots of more time (and I need to stay away from the stargate episodes ^^)

In the PySM story, I’ve been assigned with developing the system core on the system. That core will (or should) organize the processes, system resources, communication between other cores, etc… I’ve thought some things through, but as it is, I’m stuck. Writing this might open op some items (and spice up this boring blog)

Communication!

For starters. The entire PySM packet will be designed from the ground up to be decentralized and preferably 100% scalable. Albeit the scalability isn’t the easy, nor the hard part. Thanks to the decentralization, scalability will rise bunch already.

So with decentalization comes communication, otherwise the different parts would be nothing more but meaningless pieces of code fooling other parts :D

After a little while of thinking, we decided to go with XMPP for communication. We know it’s not meant to be a protocol for managing _anything_, but the stanza system works in our advantage, and being capable of seeing “who” is online would get the front-end to see whether or not certain systems are online, etc… Basically, it gets a bunch of the work (thinking-wize) of the grid.

Downside is that we want (or would like to) create a 100% python project. The clients (which would reside in all cores) have got libraries in sleekxmpp, pyxmpp, etc… Choice all the same, and a choice we will make.
The server however we don’t have any libraries that we know of. So we figured we’d create one of our own ^^

Long live insanity

So, bottomline, that server would reside in the part I’m assigned with. It’ll basically become very hard. And I hope I’m up to the challenge :)

Starting to write an XMPP server is not simple. Although there’s a lot of projects online, I figured I’d stay away from that code as much as possible (most of it seems to be C and Java anyway) Working up from the RFC seems to be the best option imho.
I rather call myself idiot and insane for doing so, but I can’t help myself.

Basics

To start, we don’t want to create an entire XMPP server to start with. We only need a server to suffice our needs, being (for starters) basic query / response communication, as well as presence stanza capability. It’s going to be really cool, but identifying users will be yet another story. Perhaps we’ll go configure those systems a bit.

Not that I want to explain the entire XMPP protocol, but since it works the way it does, I’m thinking of using a simple [program_name]@[ip]/[configured_string] , I figured that would identify every program to be an ip, and the string can be used to tie rights, possibilities, etc… to users. To enable more scalability, we shouldn’t be using ip’s, because those can change, and when they do, there should not be a need for reconfiguration. The only configuration should be when the system is deployed, and even then configs should be dummy-size easy :)

Therapy

And to close in totally unrelated matters. I find blogging like this really relaxing. Gets my thoughts together by putting them randomly on a post (and the best thing is I won’t ever lose those thoughts… Ever…)

So, thanks for the session, and I’ll come over on a more regular meeting preferably :)

pySM

In light of a school project, we (me, Tim and Michel) decided to undertake a python project called the Python Server Managment.

The pySM goal

In pySM we aim to achieve a robust, easy-to-use and easy-to-deploy server management application. Our goals are nicely summed up as:

  • Easy to maintain
  • Modular
  • Free and Open Source
  • At least similar functionality as plesk (And better!)
  • File based configuration (vs the database way)

We also intend to give the community (that’s all you guys out there) full support and modules interfaces. We want to unleash the true potential of online server management. To keep things fowing.

Why?

Why we would want to do that will take us back some time. When a lot of annoyances started building up in another (commercial) server management software called plesk.

  1. In plesk, the actual server admin does not have the rights to add services on their own, and try to get plesk support for it. This is something we intend to break!
  2. In the same plesk issues, when changing configuration of any plesk-supported service, without going through plesk, will nullify that change. Which is rediculous at best! We will use a file configuration system, instead of the database system plesk uses.
  3. Needless to say, the fact that plesk is (in our eyes) limited. We intend to get our system the true unlimited key to this world. We intend to make the core, and module API so that people won’t need too much skills to configure basic to intermediate services. For that, we would love your help! :)

So, as you all might’ve noticed, plesk will be our measurement of success. If we come near plesk in the field of technical capabilities, we’re already happy. We’re not trying to break records though… Needless to say, we’ll attempt to test our efforts using plesk, and we _will_ run the software ourselves when we’ve got decent binaries. Thereby we’re telling you we want to give a good product, not only because we have to for school, but because we intend to use it ourselves.

Now, I have jabbled enough, I’m going to code some, I hope to announce more soon! :)

Stop eu software patents

This is a call to everyone out there! As it is, software patents are limiting the development (and quite honestly, all patents in my eyes, but that’s another issue…)

Innovation is being blocked, every open source project will eventually have some patent infrigements out there.

Therefore, stop the eu software patents, it’s innovations only hope in the forseeable future, sign the petition now!

stopsoftwarepatents.eu petition banner