Archives for: June 2005

06/30/05

The concept of interpretability is one in mathematical logic. Assume T and S are formal theories. Slightly simplified, T is said to be interpretable in S iff the language of T can be translated into the language of S in such a way that S proves the translation of every theorem of T. Of course, there are some natural conditions on admissible translations here, such as the necessity for a translation to preserve the logical structure of formulas.

This concept, together with weak interpretability, was introduced by Alfred Tarski in 1953. Three other related concepts are cointerpretability, logical tolerance, and cotolerance, introduced by Giorgi Japaridze in 1992-1993. See also Interpretability logic.

References

  • A.Tarski, A.Mostovski and R.M.Robinson, Undecidable Theories. North-Holland, Amsterdam, 1953.
  • G.Japaridze and D. de Jongh, The logic of provability. Handbook of Proof Theory. S.Buss, ed. Elsevier, 1998, pp. 476-546.

External links

Permalink . admin . 10:56:10 pm . 1 Words . Articles . Email . No views
Work, work, work!

Monday, I've done my exam Information Theory. Didn't go well. I thought I'd studied enough, but the exam was very hard with large time-consuming question. Nobody was done on time, but I've hardly completed half of it. So I think I'll fail for that one, but let's hope for the best.

Next one is friday, speech processing. Harder than I thought. Large parts of the course handle signal processing and statistics, my two big problems of the second year. I'll do my best ;-)

I also had contact with Dirk Steel about my internship at Siemens. I allready have to start monday! Just a week quality time with my lovely girlfriend isn't possible :-( We'll be together now friday after my exam and her thesis defence. I've cancelled VTK Weekend for me. Saturday, I have a BBQ with people from student representation boards all over Flanders. Let's hope I can spend a large part of my sunday with my sweetheart...

Permalink . Peter . 01:39:52 . 158 Words . Life & Fun, Studies, Siemens . Email . No views

06/29/05

Continue work on fedora stateless

Now the exams have finished it's time when start working
on the fedora stateless server. First thing we need
too do is find a bigger hard disk because the current
one isn't big enought to build an image.
And then the big moment: testing :-)

(sorry, post was in protected tree instead of published for a long time)

Permalink . poely . 08:22:59 pm . 57 Words . Project status and progress . Email . No views

06/28/05

Film Kort @ Canvas

Aanrader voor wie tijdens de examens 's avonds op zoek is naar een (korte) pauze: Film Kort op Canvas. Sinds 31 mei toont Canvas gedurende de zomer elke dinsdagavond om middernacht een kortfilm van eigen bodem. Enkele weken terug was dat Flatlife, de film waarmee de Vlaming Jonas Geirnaert de Prijs van de Jury binnenhaalde op het Filmfestival van Cannes. Vandaag was het de beurt aan My Bonnie, vertoond op het Internationaal Filmfestival van Vlaanderen Gent in oktober 2004, eindwerk van Nele Meirhaeghe en winnaar van de Prijs voor het Beste Debuut op het Internationaal Kortfilmfestival Leuven. Ik heb zonet gekeken: echt een prachtige film!

Film Kort, elke dinsdag om 0u00 op Canvas!

=> Read more!

Permalink . Peter . 23:42:42 . 244 Words . Life & Fun . Email . No views

Op 21 juli zullen alle vlaggen in Heuvelland halfstok hangen. Dat heeft de gemeenteraad van de West-Vlaamse gemeente maandagavond beslist. Het voorstel kwam van oppositieraadslid Georges Declercq (Gemeentebelangen), die daarmee zijn steun wil betuigen aan de burgemeesters van de kieskring Brussel-Halle-Vilvoorde.

De gemeenteraad keurde het voorstel goed met 8 ja-stemmen van de oppositiepartij Gemeentebelangen, negen onthoudingen van de meerderheidspartij CD&V en twee neen-stemmen. E

Permalink . Peter . 16:40:43 . 92 Words . Politics, N-VA . Email . No views

06/27/05

The tool known as the adze serves for smoothing rough-cut wood in hand woodworking. Generally, the user stands astride a board or log and swings the adze downwards towards their feet, chipping off a piece of wood, and walking backwards as they go, leaving a relatively smooth surface behind. However, in general it can be used for various cutting operations.

The head of the adze is oriented to the haft like a hoe, or plane, and not like an axe, whose cutting blade would be perpendicular to the blade of an adze.

History

 shoe-last adze, amphibolite
Linearbandkeramic shoe-last adze, amphibolite

Prehistoric Maori adzes from New Zealand, used for wood carving were made from nephrite, also known as jade.

In central Europe, adzes made by knapping flint are known from the late Mesolithic onwards ("Scheibenbeile"). Polished adzes and axes made of ground stone, like amphibolite, basalt or Jadeite are typical for the Neolithic period. Shoe-last adzes or celts, named for their typical shape, are found in the Linearbandkeramic and Permalink . admin . 10:56:22 pm . 1 Words . Articles . Email . No views

06/26/05

Dr. Aamir Liaquat Hussain is also accused in the Pakistani media as Dr. Fake. Currently he is a minister of state for religious affairs in the government of Pakistan. He is an active member of the Muttahida Qaumi Movement or MQM, alleged for acts of terrorism in Karachi Pakistan.

External Links

  • Dr Fake [1] (http://www.satribune.com/archives/200503/P1_fake.htm)
  • Musharraf's Dr Fake Caught [2] (http://www.satribune.com/archives/200505/P1_drfake.htm)
  • MQM's Fake Aalim Online [3] (http://www.satribune.com/archives/200505/P1_drfake2.htm)
  • The Story of the Censored 'Truths' [4] (http://www.satribune.com/archives/200505/P1_ary.htm)
  • Independent's story [5] (http://weeklyindependent.com/feature1.htm)
  • Daily Ummat's invastigative story [6] (http://ummat.com.pk/Kahanian/misc_stories/aamir_liaquat.htm)
  • Dr. Aamir Liaquat Hussain's Naats [7] (http://www.pakmarkaz.com/islam/naats/amirliaquat.html)
Permalink . admin . 10:56:25 pm . 1 Words . Articles . Email . No views
4fm wordt Radio 538

Logo 4fm Logo 538

Dit gerucht werd dinsdag aangekondigd op de nieuwsgroep be.radio in deze draad. In deze draad werd ook al duidelijk dat de domeinnaam radio538.be begin dit jaar van eigenaar veranderde en zowel de .be als .nl variant naar dezelfde pagina's verwijzen.

Nadien wist Koen Godderis te melden dat het bericht aan hem bevestigd was. De boodschapper is echter nogal controversieel en geen onbekende, getuige hiervan dit en dit bericht op de weblog van LVB. Ieder denkt er dus het zijne van. Afgaande op een uurtje luisteren naar de livestream denk ik dat Radio 538 wel een welgekomen zender in het Vlaamse radiolandschap zal zijn met een zeker potentieel.

Blijkbaar zijn Vlaams-Nederlandse projecten in. Deze week werd immers ook aangekondigd dat de Nederlandse zender Noordzee FM, die onlangs overgenomen is door De Persgroep, mede-eigenaar van de Vlaamse MediaMaatschappij (VTM, Kanaal Twee, JIM en Q-Music), vanaf binnenkort gaat uitzenden onder de naam Q-Music en zich meer gaat spiegelen aan de Vlaamse versie, met een nieuwe format en de baseline Q is good for you.

oude logo 538

Permalink . Peter . 14:27:25 . 172 Words . Life & Fun, Internet & Blogs . Email . No views

06/25/05

Censorshit is a song writen by Joey Ramone from The Ramones for their album Mondo Bizzaro. It refers to how Joey thinks on Censorship so he is calling it Censorshit.

Permalink . admin . 10:56:28 pm . 1 Words . Articles . Email . No views

Opgelet als u van het vrouwelijke geslacht bent en een uitstapje maakt in Amsterdam. U kan immers onverwacht een tongzoen te verwerken krijgen van de Amsterdamse seriezoener!

AMSTERDAM - De Nederlandse politie heeft de jacht geopend op een man die in Amsterdam vrouwen lastigvalt door hun vanuit het niets een tongzoen te geven. De

Permalink . Peter . 13:12:14 . 204 Words . Life & Fun . Email . No views
Kabouter Spam

Gisteren berichtte De Standaard zowel in de krant als in haar weblog over Kabouter Spam:

Jan Peumans is Vlaams volksvertegenwoordiger voor de N-VA. Af en toe stuurt hij een e-post om de media van zijn bestaan op de hoogte te brengen. Gisteren stuurde hij tien berichten. Allemaal dezelfde.

Zijn reactie hierop is alvast geslaagd, vind ik :-D Vandaag schreef De Standaard immers hetvolgende:

Dit bericht bereikte de redactie, een dag nadat het Vlaamse parlementslid Jan Peumans (N-VA) 11 keer hetzelfde persbericht stuurde via e-mail. Het leverde hem de titel op van Kabouter Spam. Wat zegt Peumans nu: ,,Aan de slachtoffers van Kabouter Spam. Gelieve onderstaand bericht zorgvuldig te lezen, het zal slechts

Permalink . Peter . 13:01:54 . 241 Words . Life & Fun, Politics, N-VA, Internet & Blogs . Email . No views
LinuxTag day 2

So, I'm at LinuxTag currently, bloody tired, but well, having quite a good time after all (god I hate qwertz). I wouldn't say it's superb (talks tend not to go deep enough etc), but meeting some guys you've known on IRC for a while already in real life now is just great. Hacking on some things together (too bad I still havent got a laptop, which disables me from doing any real hacking myself, actually, we can only work together on one machine which does give problems from time to time), grabbing a beer (not to much, as beer is not as free as the speech couterpart ;-)), discussing things, just hanging around... Well, pretty much the things everybody does in here :-)
I won't write too much now (waaaaaay too tired), a larger "report" including some pictures might follow later (although that later might become "not within 2 weeks", as the following week I'll hardly be at home).

Fortunately we got some great wheather (although sometimes it tends to be too hot :-/)

Permalink . Ikke . 09:58:28 am . 170 Words . Life, Linux . . 295 views . 1 comment

06/24/05

De Deense minister Bendtsen, die zich eerder nogal op de vlakte hield over softwarepatenten, trekt nu in een brief ineens fel van leer tegen het onderwerp.

Uit een brief, die in handen van de Webwereld-redactie is gekomen, blijkt dat Denemarken niets ziet in de lichtlijn zoals die nu wordt voorgesteld. Het land sluit zich hierbij aan bij de critici in het Europees Parlement.

Laten we hopen dat vele anderen snel volgen!

Het volledige artikel kan je lezen op Webwereld.

Permalink . Peter . 12:54:33 . 79 Words . EU Software Patents . Email . No views

06/23/05

In differential geometry, the Weyl curvature tensor is the traceless component of the Riemann curvature tensor. In other words, it a tensor that has the same symmetries as the Riemann curvature tensor with the extra condition that its Ricci curvature must vanish.

In dimensions 2 and 3 the Weyl curvature tensor vanishes identically. In dimensions ≥ 4, the Weyl curvature is generally nonzero.

The Weyl tensor can be obtained from the full curvature tensor by subtracting out various traces. This is most easily done by writing the Riemann tensor as a (0,4) valent tensor (by contracting with the metric). The (0,4) valent Weyl tensor is then

W = R - \frac{1}{n-2}\left(Ric - \frac{s}{n}g\right)\circ g - \frac{s}{2n(n-1)}g\circ g

where n is the dimensional of the manifold, g is the metric, Ric is the Ricci tensor, s is the scalar curvature, and hOk denotes the Kulkarni-Nomizu product of two symmetric (0,2) tensors:

(h\circ k)(v_1,v_2,v_3,v_4) = h(v_1,v_3)k(v_2,v_4)+h(v_2,v_4)k(v_1,v_3)\,
{}-h(v_1,v_4)k(v_2,v_3)-h(v_2,v_3)k(v_1,v_4)\,

The ordinary (1,3) valent Weyl tensor is then given by contracting the above with the inverse of the metric.

The Weyl tensor has the special property that it is invariant under conformal changes to the metric. That is, if g′ = f g for some positive scalar function then W′ = W. For this reason the Weyl tensor is also called the conformal tensor. It follows that a necessary condition for a Riemannian manifold to be conformally flat is that the Weyl tensor vanish. It turns out that in dimensions ≥ 4 this condition is sufficient as well. In dimension 3 the vanishing of the Cotton tensor is a necessary and sufficient condition for the Riemannian manifold being conformally flat.

See also

Permalink . admin . 10:56:35 pm . 1 Words . Articles . Email . No views

vuilbakje

Microsoft wil het omstreden en uitvoerig verworpen SenderID verplicht invoeren op alle MSN- en Hotmailadressen.

SenderID is een techniek van Microsoft die spam zou moeten bestrijden. De implementatie is allesbehalve waterdicht omdat deze gebasseerd is aan de koppeling van domeinen aan IP-bereiken. Juridisch is de oplossing allesbehalve bruikbaar omdat deze beschermd wordt door patenten en men bijgevolg risico loopt op claims. SenderID wordt dus allesbehalve goed onthaald.

Nu wil MS die techniek invoeren bij alle hotmail- en MSN-adressen. Mails die daar binnenkomen en waarvan de afzender geen gebruik maakt van SenderID, zullen onmiddellijk als spam aanzien worden. Op die manier probeert Microsoft de aanvaarding en het gebruik van SenderID bij andere gebruikers te stimuleren.

Een gevolg hiervan is echter dat de gebruikers van de hotmaildiensten op die manier een mailbox krijgen met bijkomende nadelen: vele berichten zullen onterecht als spam aanzien worden. Je mag dan zeker je volledige spammap doorsnuisteren om te zien of er toevallig geen geldig bericht tussenzit. En deze zullen er zeker tussenzitten! Velen hebben hotmail nu al verlaten en gekozen voor de talrijke kwalitatief betere services, dit effect zal hierdoor enkel vergroot worden!

screenshot MSN

Bron: ZDnet. Meer informatie over waarom SenderID verworpen wordt is eveneens daar te vinden in de links onderaan het artikel.

Permalink . Peter . 15:38:10 . 207 Words . Internet & Blogs . Email . No views

06/22/05

Prosecco is a variety of white grape grown in the Veneto region of Italy, and also gives its name to the sparkling wine made from the grape.

The grape is grown in the Conegliano and Valdobbiadene wine-growing regions north of Venice. Its late ripening has led to its use in dry sparkling (spumante) and semi-sparkling (frizzante) wines, with their characteristic bitter aftertaste.

The cocktail Bellini made with sparkling wine and peach juice should properly be made with Prosecco wine.

The Italian Prosecco should not be mixed with Dalmatian Prosecco, which is a special sweet wine (sherry), made out of dried grapes.

Permalink . admin . 10:56:39 pm . 1 Words . Articles . Email . No views
LinuxTag 2005

So, I'll be heading to Germany tomorrow after my last exam, to attend at LinuxTag on Friday and Saturday. Most likely I will be at the Social Event too.
If you're reading this and you're coming as well, let me know, maybe we can meet :-) Leave a comment or send me some email, although I cannot promise I'll be able to check my email/blog comments over there... (I hope there'll be some public terminals)

Permalink . Ikke . 08:51:10 pm . 93 Words . Life . . 710 views . 1 comment

06/21/05

Ependyma is the thin epithelial membrane lining the ventricular system of the brain and the spinal cord canal. It is not found in mammals, for which the meninges are the counterpart of the former.

Permalink . admin . 10:56:44 pm . 1 Words . Articles . Email . No views

Dat internationalisering van het onderwijs in is, dat wisten we al langer dan vandaag. Dat er vooral binnen Europese instellingen samenwerkingsakkoorden afgesloten worden en masters gezamenlijk georganiseerd worden, is niet nieuw. Aan de UGent hebben we bijvoorbeeld de specialisatieopleiding textieltechnologie die verloopt in samenwerking met universiteiten uit Finland, Zweden, Litouwen, Nederland, Polen, Duitsland, Frankrijk en Groot Brittani

Permalink . Peter . 20:10:35 . 106 Words . UGent & Stuver . Email . No views

devil

Doing the Which religion is the right one for you? test, I recieved following shocking results:

You scored as Satanism.

Your beliefs most closely resemble those of Satanism! Before you scream, do a bit of research on it. To be a Satanist, you don't actually have to believe in Satan. Satanism generally focuses upon the spiritual advancement of the self, rather than upon submission to a deity or a set of moral codes. Do some research if you immediately think of the satanic cult stereotype. Your beliefs may also resemble those of earth-based religions such as paganism.

Atheism          83%
Satanism         83%
Agnosticism      79%
Paganism         75%
Buddhism         58%
Islam            50%
Judaism          42%
Christianity     25%
Hinduism          0%

To reassure all people in my environment: no, I'm not that evil. I don't like torturing (except my girlfriend). I don't burn animals or make people suffer or what else. Let's hope some people in my environment can confirm that to make sure the CIA or whatever doesn't put me on a list of dangerous persons ;-)

Permalink . Peter . 15:28:44 . 162 Words . Life & Fun . Email . No views

Wetenschappers van de UGent hebben menselijke embryo's gekloond. Anders dan de Koreanen vorig jaar, vertrokken ze van onrijpe eicellen. Het is voor zover bekend de eerste keer dat volwassen menselijke cellen in Europa worden gekloond en de eerste keer vertrekkende vanuit onrijpe eicellen. Dit is een belangrijke stap in het onderzoek naar stamcellen

groeistadia van een embryo
Een kloonembryo van de UGent, in vier groeistadia, van linksboven naar rechtsonder.

=> Read more!

Permalink . Peter . 12:46:04 . 413 Words . UGent & Stuver . Email . No views

06/20/05

An auxiliary bishop, in the Roman Catholic Church, is an additional bishop assigned to a diocese because the diocesan bishop is unable to perform his functions, the diocese is so extensive that it requires more than one bishop to administer, or the diocese is attached to a royal or imperial office requiring the diocesan bishop's protracted presence at court. According to canon law, no bishop can be ordained without title to a certain and distinct episcopal see which he governs either actually or potentially, therefore auxilary bishops are titular bishops to sees that no longer exist.

Canon law requires that the diocesan bishop appoint each auxiliary bishop as vicar general or vicar episcopal of the diocese.

Reference

Permalink . admin . 10:56:52 pm . 1 Words . Articles . Email . No views

Check the first comment here. Rodrigo has some good points in his post, gives some hints on how to solve the problem, tries to be constructive.
Anonymous Coward replies.

Ignore, let's move on.

Permalink . Ikke . 03:39:27 pm . 49 Words . Technology, Desktop . . 268 views . 1 comment

06/19/05

This article is about the writer. For the professor of sociology and history, see John Markoff (professor).

John Markoff (born October 24, 1949) is an American writer and journalist. Markoff is a computing and technology writer for The New York Times.

Markoff was born in Oakland, California and grew up in Palo Alto, California. He graduated from Whitman College, Walla Walla, Washington, in 1971 and received a masters degree from the University of Oregon in 1976.

He wrote a series of articles about Kevin Mitnick, who was then a fugitive on the run from a number of law enforcement agencies. He also co-wrote Takedown, which later became a film that was released direct to video in the United States.

He was accused by Jonathan Littman of journalistic impropriety, of overzealous prosecution of Mitnick by the government, of main stream media over-hyping of Mitnick's actual crimes, and of the legality of Tsutomu Shimomura's involvement in the matter. Littman, of course, chose to ignore the irony of the fact that he himself had profited from a sensationalized account of Mitnick's time as a fugitive, in his own book on the incident. In his book he recounts how he invited Markoff to lunch after Markoff had referred a Playboy assignment on Mitnick to Littman and then stiffs Markoff for the lunch. Further controversy came over the release of the movie Takedown, with Littman alleging that portions of the film were taken from his book The Fugitive Game without permission.

Bibliography

Permalink . admin . 10:56:57 pm . 1 Words . Articles . Email . No views
To Philip

Philip:
Don't get too frustrated ;-) Lots of people know about these issues. Lots of them care. But as you mentioned, people need to get together, and come out with real-world solutions for real-world problems.
You're right when you state there's a lot of flaming on xdg. But not on all subjects. Take D-BUS and HAL, two promising technologies that get widely accepted, and are truly desktop-agnostic. Both Gnome and KDE start to make heavy use of it.
I'm not really familiar with the copy-paste issues. But as far as I know there is a clipboard specification on fd.o. If that's not sufficient for new applications, everyone is free to propose extensions for the specification. But why do we need a spec if applications don't use it? Currently Gnome got no real clipboard manager, I heard KDE does though.

Some parts of the desktop should be standardised, and shared between both (or should I say "all"?) Desktop Environments we got in the Free Software world. A normal non-techie desktop user wants to be able to copy-paste between Kmail and Gaim without any problem. And he's right when he wants this.
Low-level non-interfacing libraries like D-BUS and HAL should be shared too. It'd be pointless if both Gnome and KDE would start writing up something like HAL. I've been following HAL development for a logn time already, and it's taking lots of effort and thorough decission-making to develop it (kudo's to the devs, especially David :-)), so duplicating something like it is a wasted effort. We could use the amount of work the devs put in the 2nd implementation elsewhere.
Same goes for D-BUS: we all know the story of CORBA and all it's implementations. Finally, with D-BUS, sending some simple dumb signal becomes a matter of writing 3 lines of code (now don't count, it's just a number), a dev does not have to write up IDL files and whatever more. Some people told me once only the guys that wrote Bonobo know how to use it, and maybe they were right (although I know D-BUS and CORBA/Bonobo aren't 100% the same thing, bleh).

But where is the line? I mean, if both Gnome and KDE should share everything (not only in standards, something they should share, but also in libs) we can as well just start dropping one of them and only developing on the other one. And we all know what happens when someone gets a monopoly ;-)

So (finally, the key matter): DConf. I did follow the lengthy discussions (url is just one of the many threads) when they were on xdg. And I must admit, at that time, sometimes they bored me to that. I also laughed when I read that "Over my dead body" comment. Actually, I used it several times to demonstrate what's going on between Gnome and KDE. Although there's one big thing to note: the comment was made by someone who was, afaik, no KDE developer. Waldo, who is one, did participate in a positive manner IIRC.

Now why do people accept something like HAL, and tend to be against something like DConf? I think it's fairly simple: currently both KDE and Gnome got their configuration infrastructure, KConfig and Gconf. Almost all apps who target one of these environments use the corresponding configuration libraries and standards. This is a large part of all desktop apps, including some of the largest (well, except the Mozilla and OOo stuff).
So I can understand some people are a little reluctant when all at once someone on xdg comes to tell them we need a new, common configuration interface. I'm not saying this is a good thing, just trying to understand how they think:

  • When KConfig or Gconf would be dropped one day in favour of Dconf, lots of code that accesses configuration settings should be rewritten to use the new API's
  • It is possible even the internal logics of this code will need to be rewritten, if they use some special features of the system they use now that won't be included in Dconf
  • "We already got a config system that does what we need, why can't the (fill in other/'rival' DE) guys just use ours?"
  • "Dconf offers this and this, but hell, I don't need all that! It only makes my simple I-administrate-one-desktop life more difficult"

and there could be more than 100 other reasons.

So what's the big difference between, say, HAL and Dconf? HAL is new. Desktop developers can just say "Hey, that's some cool new technology, let's write some application (gvm/ivman/kvm/...) around it, or add some functionality to something we got now (gnome-vfs/kioslaves/...) using it".
Dconf will also be something new. But the functionality it offers won't be. So existing things will have to be adapted or rewritten.

Summary: I agree with you on large parts of your rant. Basic libraries like GStreamer should be adopted by both platforms (as long as the development team does, well, a good job... together), duplicating effort is useless there.
Standards should be written and implemented, so a normal desktop-user shouldn't care whether he's running KDE applications or Gnome apps in some random environment. Copy-paste between two Gnome apps should be as easy/workable as doing it between a Gnome and a KDE app.
But we should not make just one melt pot of both platforms. Some concurrention is a good thing ;-) I hope you're not saying something like "Hey, let's drop GTK+, let's use Qt too, to avoid duplicate efforts".
As for ISV's: it's not a bad thing they should choose between GTK+ or Qt. Both platforms got their strengths, every ISV got it's preferences and knowledge. And both platforms get vendors that use them: GTK eg by VMWare, Qt by Skype. But we should make sure indeed VMWare can run flawlessly on a desktop running KDE, taking care VMWare should not use any special tricks to get that working (eg configuration management). Like this all ISV's can choose their preferred platform, without being forced to ask the client "Hey, what desktop are you running?"

Somewhat unrelated: we, in the FOSS world, should make sure we get more enterprise-ready (and Dconf is one step in the right direction). We are not limited to single-desktop employments. There are some good efforts like Sabayon, or Fedora Stateless, and maybe some non-Gnome-based counterparts I don't know of, but these need much more attention, as they are not completely usable yet (as you can see while reading our experiences with Fedora Stateless). 100-workstation deployments should become fun for the administrator, not a hell as it is now. If we could ever reach that goal, FOSS would get the oportunity to get a strong share in the corporate desktop market, as deploying concurrent desktops in a big environment isn't always a breeze either these days (wink@Jeroen and DICT, if someone'd ever read this).

Bleh, I dislike writing long rants as I'm not good at it so I stop here. By the way, didn't we agree not to blog on Dconf and keep it silent for a while? ;-)

Completely unrelated: I got some email from Nokia saying I'll get a code to get one of their N770's at 99

Permalink . Ikke . 10:21:08 pm . 1420 Words . Technology, Linux, Desktop . . 322 views . 1 comment
Windows Picture and Fax preview question, and a little update

I guess most of you saw the Windows Picture and Fax viewer at least once already:

PictureFaxViewerThumb
(click on the tumbnail for a full scale view)

Never mind the screenshot's content, it was the first one I could find on Google Images.

Now what's so special about this? Let's take a closer look:

PictureFaxViewerButtons

"If you want to rotate the picture to the right, please click the button on the left. If you want to rotate left, you need the button on the right"

Is it just me who doesn't get the logics behind this? Guess I won't ever become a good UI-designer...

If anyone got a good explanation for this, please let me know.

Next to that: I haven't been working too much on coding lately, trying to study. I might overhaul the opluginmanager API completely once more, playing around with some idea's to make it more usable from languages other than C, so as long as I didn't decide on the final design (on which I'd still love to get some input) it's stalled a little.

I'll have my last exam on Thursday afternoon, then probably I'll take off to Germany to visit LinuxTag (let me know if you're coming), I'll be at Rock Werchter one day, then the VTK Weekend follows, our annual GAO barbeque,... Busy times to come :-)

Permalink . Ikke . 03:31:52 pm . 262 Words . Life, Technology . . 365 views . 6 comments

06/18/05

The Etolin Strait is a strait in western Alaska, at about 60

Permalink . admin . 10:57:02 pm . 1 Words . Articles . Email . No views
Stages: nu ook voor zes studiepunten

Op de voorbije vergadering van de faculteitsraad kwam ook het voorstel aan bod om het keuzevak "stage" te vervangen. Het voorstel was een tijdje daarvoor, oa op aandringen van de studentenvertegenwoordigers, reeds uitgevoerd besproken en vormgegeven. Het is dan ook zonder noemenswaardige problemen goedgekeurd op de faculteitsraad. Navraag bij de decaan leerde mij dat het bestuurscollege hem de garantie gegeven heeft dat het voorstel ook daar snel zou goedgekeurd worden zodat het reeds volgend academiejaar van toepassing kan zijn op de stages van deze zomer. Totnogtoe gingen we er vanuit dat de complexe programmahervormingsprocedure pas volgend jaar voltooid zou zijn, zodat ons voorstel pas in academiejaar 2006-2007 van toepassing zou zijn. Goed nieuws dus.

=> Read more!

Permalink . Peter . 17:52:38 . 254 Words . UGent & Stuver . Email . No views
Bezoekje aan Siemens

Zoals hier aangekondigd, heb ik vandaag een bezoekje gebracht aan de vestiging van Siemens in Herentals. Uiterst interessante boel daar :-D

Siemens Logo

Dirk Steel, de persoon die daar mijn stage zal co

Permalink . Peter . 01:32:10 . 559 Words . Studies, Siemens . Email . No views
Peilingen dmv De Stemmenkampioen

Voor wie het nog niet wist, er wordt ook maandelijks naar de kiesintenties gepeild. Dit door de krant Het Laatste Nieuws, allesbehalve mijn favoriete dagblad, maar kom. Deze peiling kwam vooral onder de aandacht de voorbije weken toen op korte tijd drie peilingen bekendgemaakt zijn: eerst die van de VRT en De Standaard, vervolgens die van VTM en La Libre Belgique en als laatste die van De Stemmenkampioen. Alledrie gaven ze een steeds dieper wegzinken van de VLD aan. Peilingen, op zich niet dermate interessant, doch deze vind ik wel een specialleke. Door gebruik te maken van een vast panel dat minstens maandelijks bevraagd wordt, kan men interessante informatie bekomen. Zo stelt men bijvoorbeeld telkens een weekvraag waarvan men het antwoord kan weergeven in functie van de kiesintenties van het panel. Ook de peilingen van de sterkte van de partijen binnen de kartels leveren interessante informatie op. Door het vaste panel kan men ook de verschuivingen beter in kaart brengen. Uiterst interessante materie voor politiek ge

Permalink . Peter . 00:20:42 . 364 Words . Politics . Email . No views

06/17/05

Live country recording by the American rock and roll band The Supersuckers. Released in 2004, it was recorded live at a bar called The Tractor Tavern in Seattle, Washington.

Track List

  1. Creepy Jackalope Eye
  2. Doublewide
  3. Sail On
  4. Pretty Fucked Up
  5. Killer Weed
  6. Born With A Tail
  7. Alabama, Louisiana or Maybe Tennessee
Permalink . admin . 10:57:01 pm . 1 Words . Articles . Email . No views
Just two more left

Stupid me, I wrote this one yesterday, wanted to modify a typo today, but clicked the "delete" button instead of "edit" :oops:

Wednesday, I had my exam Information Security. It was a bit harder to study than expected. The first part, wich deals about the mathematic aspects of encryption, calculation with prime numbers, was the boring and most difficult part. First I thought it was an oral closed book exam, but Tuesday someone told me it was open book, wich was also explained on one of the first slides, wich I skiped :oops: So, open book means you don't have to learn that stuff by heart, wich was very welcome news and gave me lots of extra hope :-D

The examn wasn't that hard, more about the applications instead of the maths. I expect it to be very good.

Next one is one of the most boring ones: Information Theory on monday the 27th. So lots of time, but no time to party. :-/ I'll work a few days on Speech Processing to make sure three days will be enough for that one.

Tomorrow, I've also an appointment with someone at Siemens Herentals about an internship. Very nice, I hope it'll be OK. The big problem however is: how to get there in a reasonable time. When you check websites like Antwerken, you see the Antwerp Ring is a complete mobily chaos, especially when you have to go to the E313. Another possibility is by the Brussels Ring, but then you also have the big traffic jams and all that stuff. I'll drive the direct way :-D From Ghent to Dendermonde and by Mechelen and Lier to Herentals. I'll start here at 7.30 am to arrive there at 10 am. Damn, too early to get out of my bed XX(

Permalink . Peter . 14:18:27 . 297 Words . Studies, Siemens . Email . No views

06/16/05

Mickey Charles Mantle (October 20, 1931August 13, 1995) was an American baseball player, regarded as one of the best of all time. He played his entire professional career for the New York Yankees.

Contents

Career

Mickey Mantle was born in Spavinaw, Oklahoma. He was named in honor of Mickey Cochrane, a famous baseball player, by his father, who was an amateur player and fervent fan. Apparently his father was not aware that Cochrane's real name was Gordon, and in later life, Mickey Mantle expressed great relief that his father had not known Cochrane's real first name, as he would have hated to be named Gordon. Mantle always spoke warmly of his beloved father and said he was the bravest man he ever knew. "No boy ever loved his father more" he said. Sadly, his father died of cancer at the age of 39 just as his son was starting his career. Mantle said one of the great heartaches of his life was that he never told his father he loved him.

"Mutt" Mantle taught his son how to be a switch-hitter. He had played shortstop in the minor leagues, but on arrival at the Yankees, he became the regular right fielder (playing only a few games at shortstop and third base in 1952 to 1955). He moved to centerfield in 1952, replacing Joe DiMaggio, who retired at the end of the 1951 season after one year playing alongside Mantle in the Yankees outfield. He played centerfield until 1967, when he was moved to first base. Among Mantle's many accomplishments are all-time World Series records for home runs (18), runs scored (42), and runs-batted-in (40).

Mantle also hit the longest measured home-run ever in a major league game. On September 10, 1960, he hit a ball that cleared the right-field roof at Tiger Stadium in Detroit, which based on where it was found, was estimated years after the fact to have traveled 643 feet. Another Mantle homer at Griffith Stadium in Washington, DC on April 17, 1953 traveled 565 feet from home plate to the spot it was retrieved by a local boy.

In 1956 Mantle won the Hickok Belt as top professional athlete of the year. This was his "favorite summer," a year that saw him win the Triple Crown (.353, 52, 130) and the first of three MVP awards. On January 16, 1961 Mantle became the highest paid baseball player by signing a $75,000 contract.

On December 23, 1951, he married Merlyn Johnson in their hometown of Commerce; they had four sons. In an autobiography, Mantle said he married Merlyn not because he loved her, but because his domineering father told him to. The couple had been separated for 15 years when he died, but neither ever filed for divorce. Mantle lived with his agent, Greer Johnson. Johnson was taken to federal court in November 1997 by the Mantle family to stop her from auctioning many of Mantle's personal items, including a lock of hair, a neck brace and expired credit cards.

Mantle announced his retirement on March 1, 1969 and in 1974, as soon as he was eligible, he was inducted into the Baseball Hall of Fame; his uniform number 7 was retired by the Yankees. (He had briefly worn uniform number 6, as a continuation of Babe Ruth's 3, Lou Gehrig's 4, and Joe DiMaggio's 5, in 1951, but the pressure on him that this caused led to his being switched to number 7 later in that season.) When he retired, the Mick was third on the all-time home run list with 536. In 1983, Mantle took a job promoting an Atlantic City casino, and was suspended from baseball by Commissioner Bowie Kuhn. He would be reinstated in 1985 by Peter Ueberroth, Kuhn's successor.

Mantle's last days

Mantle received a liver transplant on June 8, 1994 after his liver had been damaged by years of chronic alcoholism, cirrhosis, and hepatitis C. He spent time at the Betty Ford Clinic to kick the bottle for good. Mantle spoke with great remorse of his drinking in a Sports Illustrated article called "My Life In A Bottle". He admitted he had often been cruel and hurtful to family, friends and fans because of his alcoholism and sought to make amends. He became a born-again Christian before he died due to his former teammate Bobby Richardson sharing his faith with him. Mickey Mantle died on August 13, 1995 in Dallas, Texas at Baylor University Medical Center after his liver cancer spread through out his body. He was interred in the Sparkman-Hillcrest Memorial Park Cemetery in Dallas. Mantle had asked his good friend country singer Roy Clark to perform his favorite song "Yesterday, When I Was Young" at his funeral. Listening to the verses, one can see why the song was his favorite. "I lived by night/I shunned the light of day/ and only now I see how the years slipped away/I ran so fast time and youth ran out/so many songs in me won't be sung/I now must pay for yesterday when I was young."

In eulogizing Mantle, Bob Costas described the legend as "a fragile hero to whom we had an emotional attachment so strong and lasting that it defied logic."

He loved cherry pie and slept with his socks on inside out.

External links

Sources

Permalink . admin . 10:57:03 pm . 1 Words . Articles . Email . No views
Trying b2evo and planet for use on new site

This week I also set up my webserver and mysql for testing purposes. Installation of b2evo is very easy, straight forward. I tested a bit with configuration, modifying some styles and arranging things to handle it like a homepage with profile and files and that stuff. Very good stuff, recomended to everyone. I'm sure I'll use that engine at peterdedecker.net. First, I have to finish my exams of course, but then I'll make the migration from this server (eikke.com) to my own domain.

I also gave Planet a try. Also here, installation was done speaking in a few minutes and configuration is very easy. I played a bit with it, but it is just a nice piece of software. I think I'll use it in a plan that's breading in my head for now. More news'll follow.

Permalink . Peter . 21:55:51 . 140 Words . Internet & Blogs . Email . No views

Hank Stine (born 1945) was an American science fiction editor and writer.

Stine published a handful of science fiction novels in the lates 1960 and early 1970s, beginning with Season of the Witch in 1968.

Stine took over the position of editor of Galaxy after the departure of John J. Pierce in 1979, and edited two issues of the magazine.

Stine later underwent sex-reassignment surgery (a theme which had informed some of his writing, such as Season) and changed her name to Janine Stine.

Permalink . admin . 05:49:50 pm . 1 Words . Articles . Email . No views

Queer is the title of an early short novel (written 19511953, published 1985) by William S. Burroughs. It is a partialsequel to the tale in his earlier novel, Junkie.

The novel tells the semi-autobiographical story of a brief love/lust affair and the influence of drug-taking, set in 1940s Mexico andSouth America. It also has a detached cinematic quality that is absentfrom his later novels.

Originally intended to be published as a followup to Junkie in the 1950s, Burroughs' publisher rejected Queer,claiming that he would be prosecuted for immorality. Due to its themes,Queer finally found a publisher as part of Burroughs' contract with Viking Penguin, in 1985.

Despite being a queer author, Burroughs has, in the words of Russell (2001) "been totally excluded from the 'queer canon'".

An Erling Wold opera of the sametitle, based on the novel, premiered to acclaim in the US in 1998.

Further reading

  • Russell, Jamie: Queer Burroughs, Palgrave MacMillan (2001). ISBN 0312239238
Permalink . admin . 05:34:16 pm . 1 Words . Articles . Email . No views

Hija,

Today I implemented an idea I had been playing with for some time already: make a daily RSS feed of Wikipedia articles.
Why? If you add this feed to your aggregator, you'll be served a random article every day (or maybe twice a day, still have to decide at which frequency the cronjob should run) to expand your global knowledge, not only regarding tech-stuff ;-)

The blog page is here, you can find links to the RSS/Atom/... feed on the right.

Things could be somewhat buggy for now (there are lots of articles with lots of markups, some of them forbidden by b2evo, so I have to filter them out) but as more articles are aggregated, I'll be able to squash them :-)

I hope you like (and use) the service ;-) Spread the word!

Permalink . Ikke . 05:32:08 pm . 150 Words . Life, Technology . . 338 views . 3 comments

06/15/05

Gnome tip

This must be the greates Gnome tip I ever read (the dragging part at least). Now finally one doesn't need to crawl through one Save and one Open dialog to send a simple screenshot to some buddy. Thanks Karel!!!

Next to that: this is some of the most insane projects ever. A Unix shell written in JavaScript, that can be run from a browser. Check the "Open Shell" link on top of the page. Pretty nifty, didn't look at the code yet, will do that later.

Started working on the "save and restore enabled plugins" functionality today. I decided to use GMarkup instead of libxml2 so I don't add another dependency (next to glib), and the config strings are so easy formatted GMarkup is more than sufficient to parse them. But it made me discover once more how much I hate dreaded SAX parsing. Someone who enjoys writing SAX based parsers must be on a serious crack overdose :crazy:

Permalink . Ikke . 09:53:16 pm . 174 Words . Linux, Desktop, Coding Corner . . 334 views . 2 comments

06/14/05

In januari namen Cindy De Smet en Erwin van Hunen, bekend van de Podcasting-software Doppler, het initiatief om een Geek Dinner te organiseren in Gent. Toen al gingen er stemmen op om ook eens een Blog Dinner te organiseren, afgestemd op bloggers

Permalink . Peter . 23:57:54 . 118 Words . Internet & Blogs . Email . No views
Minerva reeds voor de FPPW, FirW en FLWI; toekomstig studentenportaal

Vandaag kreeg ik onderstaand berichtje in mijn mailbox.

Beste Mijnheer Dedecker,

U zal waarschijnlijk intussen al op de hoogte zijn dat ICTO, in overleg met de decanen, DOWA en de Academisch Beheerder, als tijdelijke oplossing en in afwachting van een studentenportaal waarop een door de studentenvertegenwoordigers beheerde infosite thuis hoort, voor de faculteiten PPW, Ingenieurswetenschappen en LW een *"Studentenvertegenwoordiging"* infosite heeft aangemaakt. Om de studenten maximaal te helpen en tijd te besparen hebben wij reeds de studenten per studiejaar in een groep gestoken.

(...)

*Wij zullen indien gewenst ook voor andere faculteiten een "studentenvertegenwoordiging" infosite openen op vraag van de decaan.

We zijn dus goed vertrokken! De infosite staat er al, heb ik gezien, doch voorlopig heeft enkel de Decaan de juiste permissies. We hopen dit op zo kort mogelijke termijn in orde te brengen zodat de FR-stuvers dit gezamenlijk kunnen beheren, meldingen online plaatsen, documenten ter beschikking stellen,... De andere faculteiten zouden normaal snel moeten volgen, alle stuvers in de GSR proberen dit reeds voor hun faculteit in orde te krijgen.

Je ziet ook dat er in die mail sprake is van een "studentenportaal". Uiteraard heb ik nagevraagd wat hiervan de bedoeling is, met volgend antwoord als gevolg:

Beste Peter

Hoever de plannen van de studentenadministratie staan ben ik van plan na te trekken maar de algemene beleidsbeslissing is eind december 2004 genomen ; het is dus zeker de bedoeling dit centraal te implementeren ( niet door ICTO) maar zoals U waarschijnlijk al weet is iedereen zwaar overwerkt en hebben de essenti

Permalink . Peter . 23:45:07 . 270 Words . UGent & Stuver . Email . No views
One more status update

I implemented Python plugin loading this afternoon. It's almost finished, only calling functions does not work yet (thats only like 10 lines or so, but my eyes start to hurt). It's using the Python plugin base class I blogged about yesterday.

The code is far from perfect, it might leak like hell etc, but hey, it's working ;-) You can't debug or clean code that is not working at all :-)

Here's the current output of the test loader I wrote:

** (process:19360): DEBUG: Loading all modules in .libs
** (process:19360): DEBUG: Suffix for .libs/libtestplugin1.so is valid, loading module
** (process:19360): DEBUG: [OPluginManagerPlugin] [test-plugin1] Got an init function
** (process:19360): DEBUG: [test-plugin1] Init with data "test-init-data"
** (process:19360): DEBUG: Module .libs/libtestplugin1.so is valid, adding
** (process:19360): DEBUG: Suffix for .libs/libtestplugin2.so is valid, loading module
** (process:19360): DEBUG: Module .libs/libtestplugin2.so is valid, adding
** (process:19360): DEBUG: Loading all modules in .
** (process:19360): DEBUG: Suffix for ./TestPlugin.py is valid, loading module
Creating new OPluginManagerPythonPlugin instance: PythonTest
** (process:19360): DEBUG: Module ./TestPlugin.py is valid, adding


Found 3 modules
** (process:19360): DEBUG: Dumping module 0:


================================================
Dumping data for: .libs/libtestplugin1.so, type is "native"
=================
* Name: test-plugin1
* Summary: A simple test plugin, full-featured
* Description: This is a sample test plugin, to test the OPluginManager functionality, giving sample usage of all possibilities
* Version: 0.1
* URI: http://www.eikke.com
* Authors:
        ikke
        -----------
                Email: eikke eikke com
                URI: http://www.eikke.com
* Module got an init function
* Module got a data free function
* Module got a configure function
================================================



** (process:19360): DEBUG: Dumping module 1:


================================================
Dumping data for: .libs/libtestplugin2.so, type is "native"
=================
* Name: test-plugin2
* Summary: A simple, small test plugin
* Description: This is a sample test plugin, to test the OPluginManager functionality. It only offers limited functionality
* Version: 0.1
* URI: http://www.eikke.com
* Authors:
        ikke
        -----------
                Email: eikke eikke com
                URI: http://www.eikke.com
        John Doe
        -----------
                Email: foo@bar.com
                URI: http://www.foobar.foo
* Module got no init function
* Module got no data free function
* Module got no configure function
================================================



** (process:19360): DEBUG: Dumping module 2:


================================================
Dumping data for: ./TestPlugin.py, type is "Python"
=================
* Name: PythonTest
* Summary: A little test plugin
* Description: Some longer description of this test plugin
* Version: 0.1
* URI: http://www.eikke.com
* Authors:
        Ikke
        -----------
                Email: eikke eikke com
                URI: http://www.eikke.com
* Module got no init function
* Module got no data free function
* Module got no configure function
================================================



** (process:19360): DEBUG: Deleting 3 modules
** (process:19360): DEBUG: [OPluginManagerPlugin] Freeing "test-plugin1" data
** (process:19360): DEBUG: [OPluginManagerPlugin] Running free function
** (process:19360): DEBUG: [test-plugin1] Freeing data "Test plugin 1 data"
** (process:19360): DEBUG: [OPluginManagerPlugin] Freeing "test-plugin2" data
** (process:19360): DEBUG: [OPluginManagerPlugin] No free function provided

As you can see, it loads 3 modules: 2 native (C) ones in .libs, one fully fledged, one minimal, and loads one Python plugin.
The Python plugin code is very simple, but can still offer almost the same flexibility as the C interface does:

from OPluginManagerPlugin import OPluginManagerPlugin, OPluginManagerPluginAuthor

class TestPlugin(OPluginManagerPlugin):
        def __init__(self):
                tmpauthor = OPluginManagerPluginAuthor("Ikke", "eikke eikke com", "http://www.eikke.com")
                OPluginManagerPlugin.__init__(self, "PythonTest", "A little test plugin", tmpauthor, "Some longer description of this test plugin", "0.1", "http://www.eikke.com", self.Init, self.FreeData, self.Configure)

        def Configure(self):
                print "Configuring"

        def Init(self, init_data):
                print "Initializing with data \"" + init_data + "\""
                return "testplugindata"

        def FreeData(self, data):
                print "Freeing \"" + data + "\""

def OPluginManagerPluginInit():
        return TestPlugin()

I should learn how to work with Python lists etc to be able to implement multi-author functionality etc though.

I updated CVS heavily, so you can find (and checkout) all current code here. Please play around with it and let me know what you think of it (as a comment here or on the live.gnome wiki page), so I know what I should enhance, add,...

Oh, I got one more terrible exam today (part 2 of the one I got yesterday). Life's great :-p

Permalink . Ikke . 09:31:01 pm . 632 Words . Technology, Linux, Desktop, Coding Corner . . 342 views . 1 comment

06/13/05

OPluginManager getting it's final forms

I tried to stabilize the OPluginManager interface today, after a terrible exam. Look at the OPluginManager page at live.gnome.org to get a view of the current structure.

I updated the test cases I got here locally (one example is the plugin code I got on that wiki page too). The directory-loader is finished too, almost everything is in place now actually, except the UI part and the "only-load-enabled-modules" feature. These things should be fairly trivial (don't we love that word, NVDB?) to implement.

Here's a sample app:

#include <glib.h>

#include "o-plugin-manager.h"
#include "o-plugin-manager-plugin.h"

gint main(guint argc, gchar *argv[]) {
        gint cnt = 0;
        gchar *dir = NULL, *dir2 = NULL, *modulepath = NULL;
        const OPluginManagerPlugin *plugin = NULL;
        OPluginManager *manager = NULL;

        g_type_init();

        manager = O_PLUGIN_MANAGER(o_plugin_manager_new());
        o_plugin_manager_load_modules(manager, ".libs", "test-init-data", NULL);        

        g_print("\n\nFound %d modules\n", o_plugin_manager_get_num_modules(manager));

        /* Check whether we got a 0'st module, call its configure function */
        if(o_plugin_manager_get_num_modules(manager) > 0) {
                plugin = o_plugin_manager_get_module(manager, 0);
                g_debug("Dumping module 0:\n");
                o_plugin_manager_plugin_dump(plugin);
        }

        g_object_unref(manager);

        return 0;
}

As you can see, this code loads all valid modules in .libs with the string "test-init-data" as init data, then checks whether a 0st plugin is available, and dumps the plugin info.

This is the current output:

** (process:14246): DEBUG: Loading all modules in .libs, suffix is so
** (process:14246): DEBUG: Suffix for .libs/libtestplugin.so is so, loading module
** (process:14246): DEBUG: [OPluginManagerPlugin] [test-plugin] Got an init function
** (process:14246): DEBUG: [test-plugin] Init with data "test-init-data"
** (process:14246): DEBUG: Module .libs/libtestplugin.so is valid, adding


Found 1 modules
** (process:14246): DEBUG: Dumping module 0:


================================================
Dumping data for: .libs/libtestplugin.so
=================
* Name: test-plugin
* Summary: A simple test plugin
* Description: This is a sample test plugin, to test the OPluginManager functionality
* Version: 0.1
* URI: http://www.eikke.com
* Authors:
        ikke
        -----------
                Email: eikke eikke com
                URI: http://www.eikke.com
        John Doe
        -----------
                Email: foo@bar.com
                URI: http://www.foobar.foo
* Module got an init function
* Module got a data free function
* Module got a configure function
================================================

** (process:14246): DEBUG: Deleting 1 modules
** (process:14246): DEBUG: [OPluginManagerPlugin] Freeing "test-plugin" data
** (process:14246): DEBUG: [OPluginManagerPlugin] Running free function
** (process:14246): DEBUG: [test-plugin] Freeing data "Test plugin data"

Here libtestplugin.so is the plugin you can see in the live.gnome wiki.

I also tried to implement a plugin structure in Python, although I'm no Python-expert at all. Current code is available here.
To give a little overview: every Python-based plugin should be a class extending from OPluginManagerPlugin, in this sample PluginTest is an implementation. There should be one fixed-name function in the __main__ module that returns an instance of this plugin class. Like this we just have to call that fixed-name function in our C wrapper, get it's return value in a PyObject *, then check whether it's type descends from OPluginManagerPlugin, and if that's the case start using the object as if it's just an OPluginManagerPlugin, we don't have to care about the details.
The code needs lots of enhancements and cleanups. If you could elaborate on this, please contact me. Especially the function-pointer part (passing (int)0 if no function is given) is ugly: I need to be able to check whether the var is a real function pointer before I call it, not only checking whether it's != 0. Next to this, I should figure out how to do proper error handling. Once that's done, I should be able to write a small wrapper plugin in C so I can start using plugins written in Python from within C.

Permalink . Ikke . 10:10:18 pm . 633 Words . Technology, Linux, Desktop, Coding Corner . . 252 views . Leave a comment

06/12/05

Using Python objects in Python-C interop

As I wrote in my previous article, I did not know yet how to handle Python objects, and call their member functions.

After getting some help from Adam "adamh" Hooper, it became clear this is actually very easy to do.

Here's some code (I'm not reposting the whole C file, just append this to the end, it should be clear):

g_debug("Calling pytest::test using the helper function");
PyObject_CallMethod(ret, "test", NULL);

Py_XDECREF(ret);
ret = NULL;
        
g_debug("Calling pytest::test, no helper function");
g_debug("Creating a new pytest object");
ret = PyInstance_New(PyDict_GetItemString(dict, "" MODULE_NAME), NULL, NULL);
g_assert(ret != NULL);
PyObject_CallMethod(ret, "test", NULL);
Py_XDECREF(ret);

Watch out: you should not Py_XDECREF(ret) before doing this, of course.

As you can see there are 2 ways to achieve our goal:

  • In the first part of the snipper, we use "ret". This is the return value of the global function called "test", which is a "pytest" instance (the "test" function ends with return pytest()). We just call PyObject_CallMethod(object, name, args) to call the function.
  • In the first "solution" we use some ugly hack to get a pytest instance. In the second part we use a cleaner method, by calling PyInstance_New(type, constructor_args, kw). As you can see, we get "type" in the same way we got the entry point to the global "test" function. Now again we can just call a method on the object as in the first part.

This should be the output now:

** (process:13267): DEBUG: Initializing Python
** (process:13267): DEBUG: Setting PATH
** (process:13267): DEBUG: Trying to import "pytest"
** (process:13267): DEBUG: Success loading global test function
In main test function, argument is "testarg"
Initializing a pytest object
** (process:13267): DEBUG: Calling pytest::test using the helper function
In pytest's test function
** (process:13267): DEBUG: Calling pytest::test, no helper function
** (process:13267): DEBUG: Creating a new pytest object
Initializing a pytest object
In pytest's test function

Looks like Python/C interop is not that hard actually :-) You can find the final code here.

Permalink . Ikke . 05:20:55 pm . 371 Words . Technology, Coding Corner . . 870 views . Leave a comment

06/11/05

In the middle

Thursday, my exam Multimedia Networks was OK, I think. With three exams done and three to go, I'm in the middle now. Next one is Information Security wich is really interesting. Seems not that difficult and I allready used lots of those things in practice, so normally it should go well.

Still 20 days to go and counting!

Permalink . Peter . 18:24:48 . 57 Words . Studies . Email . No views
Calling Python from C

As I wrote on the OPluginManager overview page, I'd like to provide functionality to write plugins in Python. To achieve this I need to be able to call Python code from C (as the base OPluginManager framework is C-based). After asking around a little and reading some code samples (mostly in the Epiphany extension loading code) I figured out the basic calls one needs.

Here's what we need to do:
First we need some Python code. Take this as a test (pytest.py):

 class pytest:
        def __init__(self):
                print "Initializing a pytest object"

        def test(self):
                print "In pytest's test function"

def test(a):
        print "In main test function, argument is \"" + a + "\""
        return pytest()

Now we want to call some of this from C (pytest.c):


/* We want Python functionality */
#include <Python.h>
#include <glib.h>

/* To make life easier for us */
#define MODULE_NAME "pytest"

gint main(guint argc, gchar *argv[]) {
        /* The module object */
        PyObject *module = NULL;
        /* Objects we need to get a reference to a function */
        PyObject *dict = NULL, *func = NULL;
        /* Stuff we need to be able to load a module not in PYTHONPATH */
        PyObject *path = NULL, *pwd = NULL;
        /* Args we offer to the called function, and a reference to the return value */
        PyObject *args = NULL, *ret = NULL;

        /* Initialize the Python framework */
        g_debug("Initializing Python");
        Py_Initialize();

        /* "pytest.py" is in ".", so we need to alter the module search path
           "." is not in it by default */
        g_debug("Setting PATH");
        /* Get the current path (this is a list) */
        path = PySys_GetObject("path");
        /* Create a value to add to the list */
        pwd = PyString_FromString(".");
        /* And add it */
        PyList_Insert(path, 0, pwd);
        /* We don't need that string value anymore, so deref it */
        Py_DECREF(pwd);

        /* Load the module */
        g_debug("Trying to import \"%s\"", MODULE_NAME);
        module = PyImport_ImportModule("" MODULE_NAME);
        /* Check whether we succeeded */
        if(module == NULL) {
                /* If not, print the error message and get out of here */
                PyErr_Print();
                PyErr_Clear();
                g_warning("Failed to initialize \"%s\"", MODULE_NAME);
                return 1;
        }

        /* Get a dict from the module
           I should look up the API, but I presume this is something like
           "function_name" => function_entry_point */
        dict = PyModule_GetDict(module);
        /* Get the entry point of our "test" function
           This is -not- the pytest:test function */
        func = PyDict_GetItemString(dict, "test");

        /* Check again whether we succeeded, and whether the function can be called */
        if(func != NULL && PyCallable_Check(func) == TRUE) {
                g_debug("Success loading global test function");
        }
        else {
                /* Something bad occured, print out the Python error and abort */
                g_debug("Failed loading %s", MODULE_NAME);
                if(PyErr_Occurred()) {
                        PyErr_Print();
                        PyErr_Clear();
                }
                return 1;
        }

        /* We want to offer some args to the test(a) function
           These args should go into a tuple */
        /* Create a tuple with one element */
        args = PyTuple_New(1);
        /* Add a new element to the tuple, at position 0, a new string with content "testarg" */
        PyTuple_SetItem(args, 0, PyString_FromString("testarg"));

        /* Call the test function, with the "args" tuple as arguments */
        ret = PyObject_CallObject(func, args);
        /* Something went wrong.
           I must admit I still have to figure out what the return value of CallObject actually is.
           What would ret be if test(a) returns nothing? */
        if(ret == NULL) {
                /* Print error and abort */
                PyErr_Print();
                PyErr_Clear();
                g_warning("Failed to call test function");
                return 1;
        }

        /* Free the returned value, and the args tuple
           We don't really free, we unref the objects.
           I should look up what the difference between XDECREF and DECREF is. DECREF seems to be a standard unref thing */
        Py_XDECREF(ret);
        Py_DECREF(args);

        return 0;

        /* Maybe we should free the module too, and deinitialize Python
           This is not done in the code I read though */
}

Comments inline. This code might look huge, but actually it mostly consists of error checking ;-)

We need a rather "large" line to compile this:

gcc -o pytest -g `pkg-config --cflags --libs glib-2.0` -I/usr/include/python2.3 -lpython2.3 pytest.c

(You should adjust this to match your Python version if necessary)

When we run the program, this is what we get:

** (process:30233): DEBUG: Initializing Python
** (process:30233): DEBUG: Setting PATH
** (process:30233): DEBUG: Trying to import "pytest"
** (process:30233): DEBUG: Success loading global test function
In main test function, argument is "testarg"
Initializing a pytest object

Which is somewhat what we could expect.

In this sample I only use a global method, I don't use any Python object (like "pytest"). I must admit I don't know how to do this yet :oops: but hey, I'm just taking my first steps :-)

Permalink . Ikke . 12:31:29 pm . 756 Words . Technology, Desktop, Coding Corner . . 2799 views . 1 comment

06/09/05

Done today
  • Created an initial page on OPluginManager on live.gnome.org.
  • Started writing a longer article on women in the FOSS community, now Gnome-Women was launched (actually, did that yesterday ;-))
  • Sent an email to the author of this article in our local newspaper to explain crackers are no hackers (and the other way around). WikiPedia got some decent information on this issue.
  • Did not study enough :-(

TODO:

  • Continue working on the OPluginManager design, then implement some more of it. Get to learn some more on GObject<->Python/Mono interaction, and Python/Mono<->native calling code (ie how to allow using an OPluginManager object in Python/C#, and how to allow OModuleLoader/OPluginManager to work with Python/C# based plugins).
  • Finish the mentioned article
  • Poke jdub to get some response (even if it's negative) ;-)
  • Write some of my ideas on the Tag based desktop down, decide wether to send it to desktop-devel@gnome or xdg@fdo, and do so accordingly.
  • Study!!!!
Permalink . Ikke . 09:02:42 pm . 195 Words . Life, Technology, Desktop . . 274 views . 2 comments

06/08/05

Alle scholen van het basis- en secundair onderwijs ontvangen volgende week een uitgebreide handleiding over het gebruik van vrije software. Minister van Onderwijs Frank Vandenbroucke wil hen zo laten kennismaken met de toepassingen die mogelijk zijn in klasverband. Daarnaast is een zogenaamde "leermiddelendatabank" ontwikkeld op de educatieve portaalsite Klascement. Eind 2005 krijgen alle scholen ook een cd-rom met vrije software en testresultaten van scholen. Minister Vandenbroucke trekt voor deze acties 40.000 euro uit.

Prachtig nieuws vanuit het kabinet onderwijs dus. Lees hier de volledige persmededeling.

Permalink . Peter . 12:54:10 . 83 Words . Free Software . Email . No views

06/07/05

Een tijdje geleden kreeg ik samen met enkel medestudenten en mensen van de Dienst Studentenactiviteiten een rondleiding in de Thermische Centrale, die momenteel omgebouwd wordt tot het nieuwe studentenhuis. (klik hier voor foto's) De gids, professor Mees van de Vakgroep Architectuur en Stedenbouw en tevens architect van het nieuwe studentenhuis, had na de rondleiding ook nog heel wat te vertellen over de vroegere functies van het gebouw en de omgeving. Zo had hij een interessant verhaal over hoe er vroeger een professor aan de universiteit was die zich bezighield met het maken van limonade. Om deze te koelen, werd er ijs aangevoerd vanuit Noorwegen, langs de Schelde, en dan via een tunneltje naar twee grote koelreservoirs geduwd. Dat tunneltje heeft men nu terug vrijgemaakt met de renovatie van de stookcentrale en men is van plan daar een hekken voor te plaatsen en verlichting te installeren, zodat iedereen alsnog een zicht kan krijgen op de historie van de gebouwen in de buurt.

De Thermische Centrale
De Thermische Centrale, gezien vanop de Muynkkaai

Vandaag vond ik op de weblog van Skender een interessant artikel hierover. Aanpalend aan die koelinstallatie, kan je immers het Emma

Permalink . Peter . 23:03:18 . 304 Words . UGent & Stuver . Email . No views

06/06/05

I'm not willing to offend any Debian user, but this is just hilareous:
This release includes a number of up-to-date large software packages, such as the K Desktop Environment 3.3 (KDE), the GNOME desktop environment 2.8, the GNUstep desktop, XFree86 4.3.0, GIMP 2.2.6, Mozilla 1.7.8, Galeon 1.3.20, Mozilla Thunderbird 1.0.2, Firefox 1.0.4, PostgreSQL 7.4.7, MySQL 4.0.24 and 4.1.11a, GNU Compiler Collection 3.3.5 (GCC), Linux kernel versions 2.4.27 and 2.6.8, Apache 1.3.33 and 2.0.54, Samba 3.0.14, Python 2.3.5 and 2.4.1, Perl 5.8.4 and much more.

So

  • KDE 3.3
  • Gnome 2.8
  • XFree86 4.3.0
  • GCC 3.3.5
  • Linux kernel 2.6.8

are up-to-date now? Right :roll:

Disclaimer: I guess I could be flamed now as some some stupid Gentoo user thinking he's ultra 1337 etc etc, that's not my intention at all, I just think this is funny

[edit]As just seen on IRC:
17:48 <Em> the debian world must be in an uproar. you know. with gearing up for the next release in 2009
*grin*[/edit]

Permalink . Ikke . 08:09:57 pm . 149 Words . Technology . . 265 views . 3 comments

06/05/05

Minerva voor de stuvers: goed nieuws

Vannacht had ik hier reeds een bericht geplaatst als verslag uit de computercommissie. Ondertussen heb ik al meer nieuws over het gebruik van Minerva voor de studentenvertegenwoordiging. Zoals je weet, had Joke Renneboog via decaan Geert De Soete van de Faculteit Psychologie en Pedagogische Wetenschappen kunnen bekomen dat dit systeem ingevoerd werd voor hun faculteit. Ik heb in mijn vorig bericht reeds gemeld dat diezelfde Geert De Soete deel uitmaakt van de experten in de begeleidingsgroep ICTO. Nu wist hij via Joke te vertellen dat die begeleidingscommissie slechts een paar keer is samengekomen en dat dit al een hele tijd geleden is. Niet bijzonder actief dus en weinig kans om ons voorstel erdoor te krijgen, tenzij we zelf een vergadering bijeenroepen waarmee we ons niet zo geliefd zullen maken.

Echter niet getreurd, er is immers ook heel goed nieuws te vertellen. Zie onderstaand mailtje.

From: Geert De Soete
To: Joke Renneboog
Sent: Sunday, June 05, 2005 3:34 PM
Subject: Re: Uittreksel stuver-verslag computercommissie

Joke,

Ik heb vorige vrijdag met prof. Tine Lenaerts gesproken over het veralgemenen
van de infosite voor de studentenvertegenwoordiging naar de andere faculteiten.
Zij zal akkoord gaan op voorwaarde dat - zoals bij ons - de decaan ervoor
verantwoordelijke is.

met vriendelijke groeten,

Geert

Fantastisch nieuws toch? Nu komt het erop aan om in elke faculteit met de decaan te overleggen om het systeem er ook daar door te krijgen. Aangezien onze decaan van de FirW er wel voor te vinden was, doch het niet gedaan kreeg van Prof. Wieme, kan dit voor ons al geen probleem zijn. Laat maar komen, die handel!

Permalink . Peter . 15:04:12 . 261 Words . UGent & Stuver . Email . No views
First exam, Nokia 770

The exams have started in a bad way. Hardly anybody had enough time to answer all questions of our first exam ('Transportverschijnselen'). Lets hope for the best.

As some people already know, I'm going to buy a PDA (or something similar) in the near future. The ones I am/was interested in are: the Palm Lifedrive, Dell X30 or X50, or the (to be released) Nokia 770. The LifeDrive is too expensive and slow I'm afraid, and the Dell's, well... they use Windows :-p . So I'll probably buy that Nokia 770. There are a few features of it that I'm worried about though:

  • Will it support VPN over Wifi?
    (needed to connect to our University network)
  • Will it support pdf reading?
  • How long will the battery last?
    (the site says three hours, I know)
  • Will there be linux desktop software to upload files to the 770?
  • I hope there will be apps to view .ppt (powerpoint) files.
  • And last, but not least: When will Nokia release it?
    (the sooner the better :-p )

I still have to check out the prices for those mini memory cards the 770 uses too. Lot's of things to think about. ;-)

Permalink . RealNitro . 12:24:43 . 261 Words . Life, Linux . Email . 677 views
Verslag uit de computercommissie (3-6-2005)

Om de ge

Permalink . Peter . 04:44:00 . 1349 Words . UGent & Stuver . Email . No views

06/04/05

Still four more left

Bad examn today. The exercises were bloody. I completed one fully, one half and half, and left the third open because out of time. The third one looked difficult because it was one of the last chapter wich was a difficult one, but a few subquestions were easy. Damn, I shoold have taken that one before the others.

Let's hope it's enough for a 10...

I also had a meeting with the computer commission of our university in the afternoon. A few things were discussed, like the keeping of your e-mailadres and the VPN-protection. I'll give a more detailed report (in Dutch) when I'm back in Ghent, I left my papers there.

Permalink . Peter . 00:13:18 . 111 Words . Studies . Email . No views

06/02/05

KEW2005

Just sit back and relax. Enjoy

If you really want to know what it is: Johannes Brahms' "Sonate nr. 3 in d Op. 108", by Yossif Ivanov (BE), 2nd price at the Queen Elisabeth concours last week. A magnificent piece in a superb performance. Partial movie is here, you need the latest WMP codecs to play it when running Linux.

Permalink . Ikke . 09:23:44 pm . 83 Words . Life . . 403 views . 2 comments
Voor of tegen de EU-grondwet?

Na de verpletterende afkeuring van de EU-grondwet door Frankrijk en Nederland, is vandaag in het Vlaams Parlement beslist dat er in Vlaanderen geen referendum komt over de grondwet. De mening van alle stemgerechtigde Vlamingen zullen we dus nooit kennen. Misschien maar best ook, want het Franse verhaal is duidelijk een stem tegen de huidige regering, een anti-stem als het ware. Zelf ben ik gematigd voorstander. Enerzijds gaat de grondwet niet ver genoeg, kan men geen individuele commissaris afzetten zonder de gehele commissie af te zetten en is ze met haar 800 pagina's bezwaarlijk een grondwet te noemen. Anderzijds vormt de grondwet een goed fundament om van te vertrekken, om de EU een gezicht te geven en transparanter te maken en is het een goede poging om het gebrek aan democratie op Europees niveau te dichten. Zo zou het Europees Parlement bijvoorbeeld meer macht krijgen ten nadele van de Raad van Ministers. Een goede zaak vind ik persoonlijk.

Met de referenda in de verschillende landen, circuleren er ook allerlei "testjes" om te zien of je, volgens jouw opvattingen, voor of tegen de grondwet zou moeten stemmen zonder de 800 pagina's door te nemen. Een mooie is bijvoorbeeld deze website, gemaakt voor het NL-kiespubliek. Dit zijn mijn scores:

Uw opvattingen komen voor 90% overeen met de Grondwet.

Mate van overeenkomst met de grondwet per thema:
Europese instellingen: 81%
Sociaal beleid en economie: 100%
Milieu en landbouw: 100%
Justitie: 87%
Defensie en Buitenlands beleid: 87%

Hopelijk wordt de crisis snel bezworen en kan het Europese project verdergaan.

En ik heb morgen ook een crisis te bezweren: examen wachtlijntheorie :-/

Permalink . Peter . 19:21:45 . 257 Words . Studies, Politics . Email . No views

06/01/05

10X10


No comment ;-) Let's go for it.

Permalink . Ikke . 12:31:33 pm . 6 Words . Desktop . . 235 views . Leave a comment