Category: Personal life


CommonsFest

Hello all! Long time no blog. The reason I decided to blog this time is that I want to spread the word about CommonsFest, a different festival that will take place in less than two weeks (9-11 May) in my home city, Heraklion, in Crete.

What is it?

CommonsFest-Logo-BlueCommonsFest is a festival that aims to promote freedom of knowledge (or free knowledge) and peer-to-peer collaboration for the creation and management of the Commons. A philosophy that has spread through free software communities and extends to many aspects of our daily lives, such as the arts, governance, construction of machinery, tools and other goods. In other words, it aims to raise the awareness of people about the philosophy of open source in its generalisation, involving open source code, open hardware, creative commons and similar initiatives like open source ecology, open governance, etc.

Why?

This festival was conceived and organized for the first time in Heraklion last year by a group of volunteers, myself being one of them, who felt that it is worth promoting this philosophy to people that are unaware of its existence, especially in this time of economic crisis where it is clear that people need to cooperate more and share in order to go forward. This year we are repeating it, aiming to be better and achieve even more. Our long term vision is to spread this philosophy to as many people as possible around the world and eventually improve our lives by changing the way people think. We believe in this idea that the world would be a better place if we all shared our knowledge and worked together, equally, for the well-being of all of us.

I love the idea, how can I be part of it?

There are many ways you can help. First of all, this year, the festival is crowd-funded to cover our expenses (mainly printing and transportation for the speakers). If you like the idea and would like to support us directly, you could give a small donation. Another way you can help is to just share this with other people that may (or may not) be interested – even if it’s just to raise their awareness about the subject ;). Finally, you could help to achieve our goals by organizing something similar in your area. All our material (logos, texts, slideshows, etc) is freely licensed under creative commons licences, so you can also use them if you want.

Where can I learn more?

Have a look at our website, our fund-raising campaign, our facebook, google+ and twitter pages. You can also contact the organizing team by email.

CF-CrowdFunding-Campaign-Banner

Last weekend I went to fosscomm 2011, a Greek conference on Free and Open Source Software, together with my friend Nick Kossifidis (mickflemm), at the University of Patras. I can say we had a wonderful time there. I met many interesting people, some that I knew from the internet already and some that I didn’t, I attended many interesting talks about topics that I had limited or no knowledge and I also took part in fosswar, a wargames competition that had some quite interesting challenges.

Fosswar was very exciting. There were five challenges (you can get them here if you are interested). People were organized in teams, splitting the 5 challenges between them or collaborating on some of them. When it started, there was no room to sit with my laptop, so I stayed for some time trying to help my friend with the challenge that he started solving (challenge 5, reverse engineering). A little later, some people left, so I thought why not start solving challenge 4 (exploitation), which nobody in my friend’s team had started solving. And so I did…

In this challenge, we were given the source code of a C program that had an exploitable security hole that we had to exploit. The program works like this: Initially, it allocates an array of many “struct bogus”, where “struct bogus” is:

struct bogus {
  size_t magic;
  fptr f;
  char buffer[16];
} bogus_t;

This array is dynamically allocated with mmap() on a predefined memory address (0x80000000). After that, it populates the buffers of all the “struct bogus” with the character ‘M’ (0x4D), the magic numbers with ~0 (0xFFFFFFFF on 32-bit and 0xFFFFFFFFFFFFFFFF on 64-bit) and the function pointers (fptr f) with 0. When everything is initialized, it starts reading from stdin and places whatever it reads on a 1KB buffer on the stack. Then, it copies the contents of the buffer to the 16-byte buffer of a random “struct bogus” in the array and then it iterates over all the “struct bogus” in the array, starting from the second one, verifying that their magic number is still ~0 and executing the function f, if the function pointer f is not null. Ok, this is not the most useful program in the world, it is *made* to be exploited, but well, let’s see how this can be done. Continue reading

Multimedia sprint

Today is an exciting day. I’m currently at the Athens airport, waiting for my next flight to Munich and then to Geneva, with final destination being Randa, Switzerland, where the kde multimedia & edu sprint will take place the following days. I hope everything is going to be fine. I can’t wait to meet all the other kde people there :)

The reason I’m going to that meeting is that I wish to take part in the phonon/QtMultimedia discussions and also try to find some solution for KCall’s integration with the rest of kde, since it currently uses Gstreamer for some reasons that I won’t repeat again ;) I hope that all these discussions will have nice results.

GSoC week #2

This week went a bit out of plan. I didn’t work much on kcall as I was busy with other things. On Tuesday I had two exams (fortunately, quite easy ones), which kept me busy for both Monday and Tuesday. Then from Wednesday I started packaging KDE 4.3 beta2 for debian, which was quite challenging and kept me busy for 3 days (Wednesday-Friday). I packaged only the basics (kdelibs, kdepimlibs, kdebase-runtime, kdebase-workspace and some kdesupport dependencies) and of course they are not of release quality yet (so don’t expect 4.3 beta2 packages in debian).

In the meanwhile, despite being busy with other stuff, I took some time to study a bit more the “call example” from the TelepathyQt4 examples, which is essentially a simple version of what I am developing, and I wrote some code for a “call window”, which is an object that in the future it will be able to handle a call and display a nice window with status info, the video widget, audio/video controls, etc… Yesterday (Saturday), I polished a bit the API of this object and I implemented some really basic functionality. While I was looking at the code, I thought it may be better to develop this window as a kpart, which will make it possible to be reused later in other projects, like kopete for example (when it is ported to telepathy, if this ever happens). So, late yesterday afternoon, I ported this window to use kparts. However a linker issue (telepathy bug 21340) stopped me from finishing it. Today I managed to fix this issue and I am now working on finishing the kpart. Unfortunately I don’t have much time to work on it today, but I promise it will be ready by late night today or tomorrow morning.

Now, the next step is to implement an object that will do the encoding/decoding of the audio/video. As an exception to the general design of telepathy, audio/video handling is specified to be done by the application itself and not from the connection manager that connects to the protocol. To handle this, telepathy developers have designed a library called telepathy-farsight, which internally communicates with the connection manager and handles the audio/video streaming part. To do the actual encoding/decoding, gstreamer must be used. Gstreamer is a library that resembles phonon a lot. It uses a similar pipelined architecture. From what I understand, telepathy-farsight provides a gstreamer source and a sink, which can be connected to other gstreamer objects that will do encoding/decoding, grab source from the mic or camera, output to alsa and some video widget, etc… Unfortunately, farsight and gstreamer are the only way to go here. This is how the telepathy specification is designed, and while I bet it would be possible to write something similar to farsight that will do the same job using Qt and phonon, this is too much work to do and if this ever happens, that will take a few years. So, I will have to spend this week learning the glib/gobject and gstreamer basics, so that I will be able to write this part of kcall. The “call example” I mentioned earlier provides a sample implementation of this object, but although I could just copy it, I need to understand what it does so that I will be able to extend it.

I hope this week I will work more and I will manage to make a simple call :) My current plan is to have audio/video fully working (with controls and options) before July 6th (the middle of the gsoc period), so that I can spend the rest of the period doing UI/usability improvements and implementing secondary features that may be needed. (Notice: The author of this post has the authority to change this plan without previous notice! :P)

Hello planet!

Hello planet KDE!

This is my first post on planet kde, so I’ll first introduce myself. My name is George Kiagiadakis (gkiagia on irc) and I am a 20-year-old student from Greece. I was born and live in Iraklio, on the island of Crete and I study computer science at the Computer Science Department of the University of Crete. Some of you may already know me as I have been involved in KDE for a few months now. I first started my involvement from the KDE Bugsquad, doing bug triaging, and then I started fixing some bugs as well. I got an svn account in October and I first fixed some issues with kwrited (a daemon that sits in the background and listens for messages sent with write(1) or wall(1) on the same computer). During the period of the KDE 4.2 pre-releases, I also joined the Debian Qt/KDE Maintainers to help them with packaging, which I still do. Later, I started helping Darío Andrés with the development of a new version of drkonqi, the KDE crash handler, which will probably appear in KDE 4.3.

Being a student, I have now entered GSoC. At first I wasn’t sure if I should apply at all, and I probably wouldn’t have done it if it was not grundleborg to encourage and help me (many thanks for that, George). To my surprise, my proposal was accepted :D So, this summer I will be working on reviving KCall and creating a usable VoIP client for KDE, using telepathy. You can have a look at the complete proposal here. I like this idea, because currently there is no voip software available for KDE and also there is no KDE software available to the users that makes use of the telepathy framework, so I’ll be doing something really useful. Hopefully, at the end of the GSoC period, KCall will be ready to use to make calls to your friends! Well, I don’t expect it to be perfect, but it should work… ;)

I will keep you informed of my progress through this blog (or at least, I’ll try to do so)… Stay tuned! ;)

Hello world!

Hello everyone!
I’m attempting to start a new blog again, this time on a more permanent website, wordpress.com, which seems really good in its services.

In the past I used to have a wordpress blog on freehostia.com, which is pretty good as well, but I had abandoned it pretty much because first I didn’t have anything to say and second I wasn’t willing to maintain my wordpress installation, as their ftp was slow, there was no ssh access, and various annoyances like that… Later I moved that blog on devreactor.com, which was a vps service that me and a friend of mine had bought, however the vps host soon shut down our virtual machine because they had some strange problem with the credit card (although we never actually learned what was their problem) and I lost my blog again.

So, now I have chosen wordpress.com as it is a service that will probably stay longer than the other two. It is free, fast, reliable and I don’t have to maintain the wordpress installation myself. The reason I started this new blog is mainly because I want to include myself in planetkde now that I am starting doing kde development :)

Follow

Get every new post delivered to your Inbox.