Saturday 21 November 2009

Vote at the presidential elections!

Yesterday was the last day of presidential campaign, the most poisonous campaign since 1989, when the communist rule has fallen ... or so says history.

This campaign period was one of firsts of all kinds, mostly bad.

This is the first presidential campaign:
  • when, as a voter, one could clearly see polls were doctored massively as a means to influence the voters
  • when the internet was crucial and almost the only means of spreading ideas for the campaign of a candidate, Remus Cernea
  • in which an important internet news site, hotnews.ro, decided not to publish polls anymore
  • when the public television didn't perform its duty to organise a debate with all the candidates at the same time
  • when candidates were separated in two groups: "insignificant candidates" and "important candidates"
  • when some candidates refused to participate in public debates, except on their own terms, as if it was a service done by them to others
  • when candidates accused each other of being afraid to participate in face to face debates, while it was clear that this was true for many
  • when a candidate, Remus Cernea, was kicked out of a debate where he was previously invited, without being given a reason
  • when journalists' investigations found that all major parties had during the last year donations from at least 100 politicians with a declared income lower or identical to the donated sums totalling up to 91 millions of new lei (RON) (approximately 22 million euros)
  • when we have proof directly from frauders that all major parties prepared to fraud the elections via electoral tourism, electoral bribes and vote purchase
  • when a referendum was used as a electoral means by one of the candidates
  • when opponents twisted and re-twisted others' electoral message
  • when an illegitimate organisation organised a debate with only the first three candidates
  • when it was announced that special polling stations were made to target people voting away from home, not allowing such voting on special lists in regular polling stations; also the special polling stations will be, for the first time, monitored via webcams which will record the voters when they insert the bulletin
  • when some candidates clearly stole ideas from others mid-campaign
  • when I decided I am going to vote out of conviction and cast a positive vote for Remus Cernea
This is the first time I realise how important it is for everybody to go and cast a vote for the candidate they prefer to dilute the effects of the frauds.

Go and vote for the candidate you agree the most!

Don't cast a "useful vote", otherwise you will disservice your prefered candidate in three ways:
  • you're strentghning one of the adversaries
  • your prefered candidate will be in a worse position to negotiate with others the implementation of some of the points on his platform in case he doesn't win
  • you're canceling one of the votes somebody did vote for the one you prefer

Don't forget, tomorrow, the 22nd of November spare some 15-30 minutes and vote for the person that represents you most! Don't follow the flock, vote sincerely!


Vote, because your vote counts! Otherwise why would they bother to convince you to vote for them?

Saturday 14 November 2009

Presidential debate

I can't believe this happened. It seems the important presidential candidates have agreed for a face to face debate. I am leaning to thinking that the questions are prepared in advance, but that's better than no debate.

The debate will take place today, 14th of November at 15:00, but I am unsure if this will be broadcasted live since is not clear from the article.

Mircea Geoană challenged Traian Băsescu to the debate, the later accepted but considered normal the liberal candidate should be there. Crin Antonescu accepted the challenge, too. Remus Cernea confirmed his presence, too. The funny thing is that Mircea Geoană will not participate.


So, I hope some television will broadcast this live at 15:00.

Friday 13 November 2009

This Sunday, already 5 years...

This Sunday, we celebrate already 5 years since the initiation of the successful „Save Carol Park” civic action. Back then, the park and the mausoleum were in danger of being destroyed to make room for a cathedral, in spite of special status of the park, the already too low green spaces per capita ratio, in spite of the legal status and in spite of public opposition.

Nice to see it will be celebrated Sunday, 15th at 13:00 at Arenele Romane, and regular people being invited there (linked page in Romanian):

http://remuscernea.ro/2009/11/sarbatorim-5-ani-de-la-salvarea-parcului-carol/

I'll certainly be there!


View Larger Map

Wednesday 4 November 2009

Know your rights!

It is only a few days since my last post about the referendum which is due to happen on the same day as the Presidential elections, but I am forced to make another post because there are lots of incorrect views on the subject.

So let's try take the issues one by one and see what is the problem with every one of them, using reason and the information we have available from more mature democracies than Romania's.

What's the referendum about

The referendum, in this case, is about two issues:
  • reducing the number of representatives (deputies and senators)
  • transforming the Parliament from a two-chamber Parliament into a one chamber Parliament

Information on the subject

For an election such as the referendum (basically asking the population on a subject of national importance) every citizen has the right to be correctly informed about the options of the referendum, what each implies, what are the pros and cons for every option, what problems does the referendum tries to resolve.

There is no information on the subject, no videos, no spots, no fliers, nothing, just biased posters (I'll explain later).

Debate on the subject

In order to have a correct information, a clear public debate which should happen, without the pressure of a presidential campaign at the same time as the debate.


Well, we have no debate, so I guess there is no problem of overlapping (sad, but true), but on the other hand, there is no information on the subject.

Analysis of the options

Now let's analyse the two proposed measures in opposition to the current situation.

  1. reducing the number of representatives
    • pros
      • reducing costs
      • minorities have a bigger influence (they can defend their rights - see comments for explanations)
    • cons
      • easier to corrupt (obtaining a corrupt 5% in a 300 seats parliament is easier than in a 500 seats parliament)
      • minorities have a bigger influence (they are disproportionally powerful, in regard to the population they represent - see comments)
      • absence of a representative with a big vote power could allow passing an abusive law (to pass a regular law there is a need of a majority relative to the number of present representatives, not the total number), but, in a numerous parliament, the absence of a person isn't that risky (other colleagues would be present to stop the abusive initiative)
  2. one chamber instead of two
    • pros
      • faster processing of decisions
      • less bureaucratic
    • cons
      • in the current system there can be a passive vote (law passes silently if not discussed) which has just one occasion to be caught, while in the current system silent passing is allowed only in one of the chambers, but needs to be discussed in the other
      • there is a chance that one chamber might amend/catch abusive initiatives with "two chambers", but with "one chamber" there is one chance only
      • more prone to power abuse

So, there are pros and cons for all solutions, but now we can make an informed decision and know the risks for each option.

This shouldn't have been taken in haste without any public debate.


I don't want to influence anyone's vote, so I'll abstain from telling my options.

The president has the right to associate his image with one of the options.

OK, let's analyse that.

The law doesn't explicitly forbids this, but there are some recommendations from Venice on fair elections (sorry, I couldn't find the link) which say that in a vote such as the presidential elections there shouldn't be an unfair advantage for one of the candidates. Why is that relevant? Because the current president actually uses the referendum as his campaign and he's speculating people's innate hatred for political figures.

His election material is only comprised of virulent attacks at the representatives or calls to the population to vote in favour of both questions.


Why is that unfair? Because the current president is using his current position (president) as launch ramp for his campaign as a candidate.

OTOH, if the seal of the presidency was used instead his face, the problem wouldn't have been that bad.


Organisational issues

There were various rumours about how the voting will take place. Here is a list of things I heard:
  1. there will be a single list for both presidential elections and referendum and there will be a single column for signature to confirm your presence at vote
  2. there will be one paper, but two columns for signatures
  3. no matter what the list looks like, you'll be given both sets of ballots, but you can annul the one you don't want to vote on
All the variants above are incorrect from a democratic pov, but to different degrees:

  1. a single signature covering for either of the vaiants "presidential vote only", "refrendum only", "both" asks for trouble because unused ballots in "only" variants might be added later to the valid votes as if they were expressed by voters; since there is no distinct count for each of the ballots to confront that with signatures, before the counting period one could use unused ballots and vote for you on the issue you didn't want to express an opinion on
  2. informing on what to do in some cases such as "only" vote is essential to prevent fraud; e.g.: strike through the cell corresponding to the the election you don't want to express a vote on, instead of signing
  3. giving the ballot unconditionally to everybody, leaving you to decide to annul it or not is abusive, because vote is not compulsory in Romania; more than that, this artificial presence burst (even with void votes) could end up validating the referendum since a 50%+1 presence is needed to pass Constitution modification, as we have here
So, recap:
  1. favours fraud by allowing inside people to obtain untraceable/unaccounted ballots
  2. preventing fraud isn't of any concern, it seems (and could be achieved)
  3. forced voting might lead to validation of the referendum because the voting presence is sufficient, even if there are many annuled ballots
Vote validation and artificial voter presence

Since validation of a referendum on the changes on the constitution depends on sufficient voter presence (there is some mandatory threshold, but I can't find references now), it is in the interest of people wanting to promote the changes to mobilize people to vote.

By different measures the vote presence at the referendum is artificially increased raising the risk of validation, when people, in fact, wouldn't want to validate it and would, to express neutrality, will be be forced to annul the ballot.

Also, a high presence in the referendum might increase the number of voters for presidency, and the people mobilized this way may have a high chance to be biased in favour of the current president because he associates himself with the violent message against the representatives.

What does it take to implement, if referendum passes

If the referendum passes, the changes aren't immediate. The proposed changes are discussed in the Parliament and a final proposal for the constitution changes is made; after approval of the proposals by the Parliament, the ball goes back to population for final approval.

This means it will take a while to see a changed parliament.

Conclusions

Romania is not a true democracy yet and there are areas where individuals should know what their rights are and not let authorities fool them into buying any argument uncritically.

Romanians must learn their rights so they can't be manipulated whenever somebody wants to trick them into some scheme by knowingly omitting issues and creating insane situations.


Romanians, wake up, learn you have rights, form your own oppinion, as distinct individuals, then we might see a change.

Friday 30 October 2009

Referendum in November in Romania - a fair analysis

Yes, is another post on politics, sorry to those expecting a technical one. I'll come back to those, as soon as I get back to such activities :-) .

For Romanians which want a clearer picture of the referendum about to happen in Romania on the same day as the Presidential elections, which are the theoretical and practical implications of the referendum, take a look at this short and clear analysis:

http://packardb.blogspot.com/2009/10/referendum-noiembrie-2009.html

Wednesday 28 October 2009

Remus Cernea - First! :-)

I didn't htought I'd post this soon again, but...



Remus Cernea's site is first on the trafic.ro statistics, which is great!

Mircea Badea - I'd vote Remus Cernea

Mircea Badea at Sinteza Zilei (minute 56:50): "If Remus Cernea enters the second tour I will vote him"

I other news Remus Cernea will be invited to the following shows at televisions in Cluj:
  • today, 28th of October at 20:00 at One TV from Cluj for about 90 minutes and can be followed online
  • again today from 22:00 to 24.00 will be invited at „Direcţia opusă”, a show by Bogdan Eduard at Klub TV
  • tomorrow, 29th of October, will be invited at TVR Cluj between 20:00 and 20:50

Tuesday 27 October 2009

Remus Cernea invited at Realitatea

Remus Cernea was invited at Realitatea TV and the attempt to ridicule his and Mr. Potârcă's (a counter roma/tzigane candidate) candidacies was obvious. The show was supposed to start at 23:00 and started 15 minutes later, all of that after a huge chunk of air time for a candidate from a big party.

In spite of that and the little time he spoke, Remus managed to avoid being trapped and managed to send his message accross.


For undecided Romanians, here are the recodings of the show:


http://www.youtube.com/watch?v=C02T-e2Gt28&feature=channel
http://www.youtube.com/watch?v=TSqRPBkA2GE&feature=channel
http://www.youtube.com/watch?v=dACUQnjM85Y&feature=channel

Wednesday 21 October 2009

Microblogging, let's try it...

I have figured that I might try to use some microblogging service, so I decided to use identi.ca because is a free platform, as opposed to twitter.

I will probably post really occasionally, but since I have a client for ideni.ca on my phone I expect to update more often than the full blog:

Follow me at: http://identi.ca/eddyp

Tuesday 13 October 2009

OpenStreetMap, Debian competes with it

There is no secret that many Debian contributors share their time between various projects, while Debian is one of those projects.

I am no exception: Debian has been competing lately with OpenStreetMap (along with other projects) over my time and, sadly for Debian and fortunately for OSM, OSM has been winning a lot in the last year, since I bought my Nokia E71 phone which has a built-in GPS.

Still, this work on OSM has its own satisfactions, such as managing to map alone (not completely) my home town, Caracal, managing to import municipality data for the entire country, participating in the first mapping party in Romania, exactly one month ago.



Recently I received several invitations to publicly present or advocate these open projects I am involved in and this is really exciting and a huge reward for me.

Is really great to see things moving without me trying to push them, for a change!

Friday 9 October 2009

Converting flac to mp3 - Soundconverter

Why would I want that? Not because mp3 is in any way superior, is just my phone doesn't support playing FLAC and its audio capabilities are no match for flac.

If you want to convert FLAC to mp3, say to listen to your music on your phone or mp3 player, and you use GNU/Linux I recommend soundconverter.

This is already packaged in Debian and available in etch, lenny, squeeze and sid. It is probably available on Ubuntu and all other major distros out there, so, enjoy.


(This is also a reminder for me. I used soundconverter before, but I was unable to remember which was the application.)

Wednesday 7 October 2009

This makes the hair on my back raise

I want the ones reading this and watching this to understand I respect peaceful people and people respecting secularism. This is not hate speech.

On the other hand, I personally checked the quotes and I invite you to check yourselves, don't take my word for it:

http://www.liveleak.com/view?i=216_1207467783



This has the potential and explains a lot of what we're seeing today.

Saturday 3 October 2009

Remus Cernea invited at Doru Braia's Talk Șoc

Tuesday, on the 29th of September Remus Cernea participated at Doru Braia's Talk Șoc.

They discussed about Romania's current situation, the need for an alternative to the current political class, Remus' book „Manifest împotriva becalizării României” - (roughly traslated: Manifest against Romania's "becalisation" - Becali is a very controversal figure in Romania, an ex-shepard that got rich after speculating on the real estate market), Catedrala Mântuirii Neamului (roughly translated: People's Salvation Cathedral), free thinking, religious freedom and tolerance, the posibility of prostition becoming legal in Romania, drug consumption, education, the young generation

You can see the recording here.

Thursday 1 October 2009

Some Debian work in a long time

I finally managed to do some Debian work in a long time, I managed to package Wormux 0.8.5 for Debian Sid (aka Unstable).

This new version delivers one new binary package, wormux-servers, which contains the stand alone (aka headless) game server and the index server. Unfortunately, the information on setting these up resumes to have a couple of configuration files which are placed in /usr/share/wormux/examples/ .

Also, there's a bug that affects network games when using the construction tool, but fortunately, upstream already has some fixes, including one for this bug, and as soon as 1:0.8.5-1 enters squeeze, I'll prepare a patched version (including some other fixes present in upstream).

Until then, please enjoy Wormux.

Sunday 27 September 2009

Remus Cernea - how media blocks information

I wrote in my last post about my decision to support Remus Cernea's candidacy to he Romanian Presidency.

The fact is that main stream media ignored for a whole month his candidacy and the fact that Radio România Actualități (Radio News Romania) removed an internet poll (true, not a social poll, but one of the percepted image of the Internet users) from the site www.politicaromaneasca.ro which credited him with 30% of the preferences of the visitors.




Here (Romanian) is the article on Remus' blog in which he talks about this. And no, he did not set himslef on fire, he set on fire a picture of himself as a symbolic gesture against the media blockade.


As a proof that the poll was not doctored, the first article mentioning Remus Cernea in a search for "presedintia romaniei alegeri" is the 5th unsponsored hit on google.ro. There is an obvious correlation between the position of other candidates in the results and the hits on Google.


If you want to support Remus' candidacy, please sign the support list(ro) or even collect signatures (ro) for him. He needs 200 000 signatures to be able to candidate, a task which is even harder for a candidate without a big party behind him.

You can contact me at eddy.petrisor+remuscernea _at_ gmail.com, for more details or you can contact Remus directly.

Thursday 24 September 2009

I'm voting Remus Cernea (Green Party) - Eu votez Remus Cernea (Partidul Verde)

Romania is closing really quickly to the presidential elections.

The options for voting seem to be non-existent and is basically about choosing the smallest evil and I was planning on not voting.

That was until I found out that a personality from the civic society, Remus Cernea has announced that he wants to candidate for Presidency.

He is a candidate from the Green Party and he is in the process of collecting support signatures. 200 000 - two hundred thousands - signatures to be able to candidate for presidency in a country of less than 20 millions.

Yes, Romania has one of the most undemocratic and tailored-for-the-current-in-power election laws. Here (in Romanian) is a summary made by Remus Cernea himself about the election laws in Romania.

A full report was sent by the Romanian Green Party to the European Green Party Committee and the European Greens have expressed their concern about the current state of the law in Romania.



Since I want to support him and since he has been actively ignored (ro) by mass media for the past month (since his announce), I decided to help collecting the signatures. This post is also about making the information flow to the people via the Internet.


So, if, after reading and informing yourselves about Remus Cernea and his civic actions:
you decide that you'd want him in the election, you can contact me (eddy.petrisor+remuscernea _at_ gmail.com) for details how to make this happen.

Friday 31 July 2009

My own mini cheese party

Just right after I got home from the airport, I had to have my own small cheese and wine party with my wife and my brother in law:



Mmmm, good!




In case you're wondering, there's no more wine left.

Wednesday 29 July 2009

Platitude

It appears that some people don't realise that the usual use case for backports is actually using stable and only picking just a handful (at most) of packages from backports, while usually is only one or two packages.

OTOH, testing is about running everything from testing.


Providing automatic backports doesn't mean one is running testing.

Wednesday 22 July 2009

I am on the road to DebConf 9

I am writing this from my phone while on the train to the airport. My plane takes off at around 15 o'clock and will arrive in Madrid at around 18 o'clock.

The train to Caceres leaves at 22:25 and arrives around 2 o'clock.

DebConf 9, here I come!

Thursday 16 July 2009

last post - bicycle riding: flash, airplanes and bikes

Bikes and airplanes

In spite of a couple of suggestions to bring my folding bike to Cáceres, I won't do it. For short, I care too much about my bike to let it on the careless hands of the morons handling luggage on the Otopeni airport. For a detailed reasoning, please see the comments I made on my last post.

Flash

Some people have complained that the links with images I gave in the previous post needed the proprietary flash implementation. I am sorry about that. I checked myself with gnash and swfdec and indeed neither works (or at least the Lenny versions don't). I'll report the bug against gnash and swfdec, if nobody else does it before me.

By the way, changing the flash player in Debian is as simple as using:

update-alternatives --config flash-mozilla.so

And restarting iceweasel/Firefox or epiphany. Iceweasel/Firefox has the possibility to disable a plugin (add-ons -> plugins), but that doesn't seem to reload the .so file once loaded.



So here are the images in a more accessible format as before:


U shaped bycicle crossing:




High border examples:









Sometimes you can go around the high border, but you might have to wait for pedestrians to pass:



Bicycle traps:


Car parking on bicycle tracks:
Pedestrians using the tracks:



Good tracks:


Wednesday 15 July 2009

Bicycle riding in Bucharest

Intro

Back in May I was bragging about a folding bicycle I bought and I promised to talk later about my impression about the traffic in Bucharest, so here goes a first report about that.


Before writing my impressions, I would like to tell a few things to put everything into the right perspective.

Since I bought the bicycle I have been riding it to work almost on a daily basis[1]. A trip from home to work takes about 30-40 minutes[2] and, according to the GPS tracks made with my phone, is about 7km long involving mostly roads with low traffic, small alleys or sidewalks just to keep it safe and enjoy the ride and maybe some shade from time to time. I am regularly leaving for work somewhere between 12:00 and 14:00 and I am returning sometime between the hours of 21:00 and 23:00[3].

Impressions - Tracks

There are no dedicated bicycle tracks on my regular route to work, so I tend to use small streets or even side walks. I made some trips in areas of Bucharest and I had the occasion to use the dedicated tracks, so I have an impression of the quality of the work done.

Generally one could say that in some places they did the tracks because they had to and didn't care about the practical use at all. In some places, out of pure luck, the surfaces used were smooth and had nice transition from the sidewalk they're using to the streets they're crossing. The track along the river that crosses Bucharest, Dâmbovița, is particularly a disaster in its own category forcing cyclists to wait, for each intersection, at three traffic lights since the track doesn't simply crosses the intersection, but it's shaped as a U probably not to conflict with cars steering left on bridges.

I am sure you're now confused, so I'll try to explain. In Romania we drive on the right (as opposed to wrong/left :-P) side of the road. The road along the river has the directions separated, one for each side of the river. There are side walks on each side of each of the directions, but the track is marked on the side walks closer to the river. Since all traffic lights directing the traffic along the river let all cars coming from the same direction cross the intersection at the same time, the cyclists going forward would be at risk of being hit by cars steering left towards the bridge; they probably thought that is a good idea to force cyclists to cross the road they rode in parallel with until the intersection, cross the intersection, then cross once more the road to get back on the inside side walk where the track is marked.

So if you're riding a bike, you get a penalty at each intersection and you wait three rounds of traffic light changes. Cars driving in the same direction as you do, lose maybe a minute at most, you, as a cyclist, lose in the best case probably around 2-3 minutes and you inhale the fumes of the cars waiting at the traffic light. Yes, that's GREAT, not.

Here is a link which makes this more visible: http://norc.ro/pano/BHf9a10Y/

Because of this over-head chin scratching, many cyclists prefer to simply ignore the track and ride on the road putting themselves at risk. I used that track twice and, believe me, after the second intersection you want to do that, too, or use the outer side walk.


As a bonus, some side walks hosting the tracks were not adjusted in any way for cyclists (or maybe they were turned into traps after the track was marked) and you might encounter disasters such as these:

High borders:
http://norc.ro/pano/7U3GNch6/
http://norc.ro/pano/H9b9rmPl/
http://norc.ro/pano/JOsuswcj/
http://norc.ro/pano/TKPlKEgR/
http://norc.ro/pano/BHf9a10Y/
http://norc.ro/pano/DBQoN934/

Bicycle traps (notice how the pit was made of the same width as the track itself):
http://norc.ro/pano/k3mOkXpQ/

But we do have our share of considerate drivers which park on the few tracks we have:
http://norc.ro/pano/HiTcml0E/

while pedestrians are not that keen on leaving the track clear for cyclists, either:
http://norc.ro/pano/M3xxUC08/


In all fairness, when conditions permited it (or should I say, when we were lucky enough to already have the proper terrain?), the tracks are OK:

http://norc.ro/pano/ItuKL3KP/
http://norc.ro/pano/uVAUqEo6/

Impressions - Small roads

Since there are no tracks on my way to work, I am using small roads which have low traffic. Some of them have really poor conditions, some are really good, but often I find myself prefering one poorer road or alley if is more shaded and I am riding during daylight.

In most cases drivers are civilised and, for instance, don't try to over pass me, if I signal left. Sometimes I feel that some of them drive too close to me and leave me no choice in case of an emergency, but what can I do?


Impressions - Night rides

It seems that the night is the proper time for creepy, stupid or crazy drivers to come out. I found that after sunset drivers seem to be careless and sometimes plain idiots.

One time I was about to cross an intersection while from the opposite direction, a taxi driver was preparing to steer left, crossing my path, so he was supposed to give way for me. The intersection was lit and I was already crossing when he approached the intersection, so there was no way he couldn't have seen me. In spite of that, he decided that it would be a good idea to continue his way, he even pushed on the gas since he was in a hurry to stop a few meters from the intersection. I had to break so I wouldn't end up on his hood or his right front seat. Of course, he felt obliged to swear when I asked if he was insane crossing my path like that putting my life in jeopardy. Idiot.

Such experiences seem to happen more often after sunset, even if I ride on lit roads.


Stray dogs seem to be particularly annoyed by bicycles, especially if going too fast. There are some areas where they tend to gather, so I try to avoid those areas or ride slowly but prepared to accelerate when riding past such dogs.

Only once a stray dog barked at me during mid day, so I assume there was something wrong with that particular dog.


In conclusion I can say that riding in Bucharest could be a lot better, but I guess people need to be educated into getting used to cyclists on the roads.


[1] excepting some days with really bad weather and a break of a week since I was feeling some pain in my left knee at that time
[2] It would probably take even less if I were to push a little, but that is not the goal and it wouldn't be a nice experience
[3] at night I am wearing a high visibility jacket, although I am riding on lit roads; OTOH, I haven't bought yet a front lamp since I really want to by a solar powered one, but I can't find one at an acceptable price; I'll probably buy a set with front and tail light plus some rechargeable batteries and change to the solar one, once I find one that pleases me

Saturday 11 July 2009

RFC 2822: mom+dad@some.fqdn.is.ok; likewise+mom.is.a.*@is.ok.too

Dear form creators,

Please stop trying to be smart asses and say an address such as mom+dad@some.fqdn.ok is not OK. As a matter of fact IT IS!


If you want to be shocked, find out that even *@some.other.fqdn.ok is ALSO OK!

And If you really want to be correct and validate addresses against some regexp, there are only some really LOOOOOONG ones which should make it clear that your itsy-bitsy regexp which pretends to match valid email addresses, IS WRONG!


Correct regexps/codes that validate email addresses look something like this or like this. So please stop te nonsense.

Reasonable email addresses can and do contain . and + along many other characters in the local part (i.e. the part before the @).

PLEASE GET THIS THROUGH YOUR THICK SKULLS: THE ONLY RELIABLE WAY TO VALIDATE THE VALIDITY OF AN EMAIL ADDRESS IS TO TRY TO SEND MAIL TO IT.

Saturday 20 June 2009

MSI PR200WX-058EU sleep - 91a6c462b02d8dc02dbe95e5a407d78078a38d01 is first bad commit

Nailed it!

After a rocky start, I managed to find the commit that broke sleep for my laptop.


91a6c462b02d8dc02dbe95e5a407d78078a38d01 is first bad commit
commit 91a6c462b02d8dc02dbe95e5a407d78078a38d01
Author: H. Peter Anvin

Date: Wed Jul 11 12:18:57 2007 -0700

Use the new x86 setup code for x86-64; unify with i386

This unifies arch/*/boot (except arch/*/boot/compressed) between
i386 and x86-64, and uses the new x86 setup code for x86-64 as well.

Signed-off-by: H. Peter Anvin

Signed-off-by: Linus Torvalds



Simply reverting this commit wouldn't fix the problem entirely since the screen was always blank after the successful resumes; OTOH, the script used for testing was supposed to do stuff after resume, stuff which would have effects visible on the hard-disk, so it was visible on the next reboot if the last sleep/resume cycle was successful or not.


Great. Oh, and git bisect rules!




Now, if you're interested in finding a regression in the kernel and you might be interested in how I automated the thing, here are some small scripts I used:

  • linux-build - a wrapper script around make-kpkg to build .deb packages of the linux kernels I build; I used it way before this bisect, but now I modified it in such a way the kernels are clearly versioned and indicate the commit to which they correspond, too
  • sleepit - a script that automated the actions needed for a linux kernel to be tested; is really trivial and highly specialized on sleep/resume debugging; it assumes to be ran in the directory where you'd later want to grab dmesg-s outputs from
  • sleeptest - a wrapper script that is smart enough to detect if the current kernel is a kernel to be tested or a stable (regular kernel) one
    • if the kernel is a stable one:
      • looks for the signs left by the last test kernel and depending on them, mark the kernel bad or good in the bisect; this would result in a new checkout which would be processed or, if the bad commit was identified, the script would stop
      • in the case of a new bisect, the new checkout is cleaned up, patched, built, then the script installs the new linux-image .deb[1] and update-grub[2], leaving the reboot command at my discretion for the eventual case something went awry; a failure to compile the kernel in an automated fashion would have dropped me in an interactive console which meant I had to manually do the steps necessary to be ready to boot into the next kernel
    • if the kernel is a test kernel run the sleepit script
The main script was the sleeptest script which is ran as root to allow sleep commands, installation of the kernel and update-grub; when building, the build is done via su to my user.

As a supplemental speed up, I configured libpam-usb to authenticate root and myself through a USB storage device, which is quite cool. I am still pondering if I should keep this enabled or migrate to something like libpam-rsa[*].

Of course, the scripts contain stuff hard-coded into them (my user name for one), but they can easily be modified to remove those limitations (generally they use variables).


linux-build


#!/bin/sh
# License: GPLv2+/MIT
# Author: Eddy Petrișor
#
# Acest script trebuie rulat din directorul nucleului cu comanda:
# linux-build [--no-headers] [--rebuild]
#
# This script must be ran from the kernel tree directory with
# linux-build [--no-headers] [--rebuild]

FATTEMPT=../attempt

TARGETS="kernel-image kernel-headers modules_config modules"
[ "$1" = "--no-headers" ] && shift && TARGETS="$(echo $TARGETS | sed 's#kernel-headers ##')"

if [ -f $ATTEMPT ]
then
ATT=`cat "${FATTEMPT}"`
if [ $# -eq 0 ]
then
ATT=`expr $ATT + 1`
make-kpkg clean
else
if [ $# -eq 1 ] && [ $1 = '--rebuild' ]
then
# nothing to do, we are already set
echo 'Preparing for rebuild'
else
echo 'Illegal parameters'
exit 2
fi
fi
else
ATT=1
fi

# no problem if is rewritten on rebuild
echo "$ATT" >$FATTEMPT

# must define MODULE_LOC for mol module compilation
DIR=`pwd`
cd ..
MODULE_LOC=$(pwd)/modules
# this didn't work
# export ALL_PATCH_DIR=$(pwd)/linux-patches
cd ${DIR}

echo "Modules should be here: ${MODULE_LOC}"
echo "Stop by ctrl+c, if the independent modules aren't there"

# press ctrl+c, if needed -- disabled for now
#read

export MODULE_LOC
export CONCURRENCY_LEVEL=$(grep -c 'processor' /proc/cpuinfo)

[ -d .git ] && PREFIX="g$(git log --pretty=oneline --max-count=1 | cut -c 1-8)-" || PREFIX=""
APPEND=$PREFIX$(hostname)

#time make-kpkg --rootcmd fakeroot --revision ${ATT} --stem linux --append-to-version -`hostname` --config menuconfig --initrd --uc --us kernel-image kernel-headers modules_config modules
#time make-kpkg --rootcmd fakeroot --revision ${ATT} --stem linux --append-to-version -`hostname` --added-patches 'ata_piix-ich8-fix-map-for-combined-mode.patch,ata_piix-ich8-fix-native-mode-slave-port.patch' --config silentoldconfig --initrd --uc --us kernel-image kernel-headers modules_config modules
time make-kpkg --rootcmd fakeroot --revision ${ATT} --stem linux --append-to-version -$APPEND --config silentoldconfig --initrd --uc --us $TARGETS


sleepit


#!/bin/sh

FAILEDRESUME=/failed-resume
RESUMED=/resumed

modprobe i915
invoke-rc.d acpid stop
echo "$(uname -r)" > $FAILEDRESUME
dmesg >dmesg_before_$(uname -r); echo mem > /sys/power/state; dmesg >dmesg_after_$(uname -r); sync
echo 'resumed, oh my god' > resumed
echo "$(uname -r)" >> $RESUMED
rm -f $FAILEDRESUME
sync
sleep 10
reboot



sleeptest


#!/bin/sh

RESULTSDIR=/root/var/debug/sleep/regression
UNAMER="$(uname -r)"
FAILEDSLEEPFILE=/failed-resume
RESUMED=/resumed
SOURCEDIR=/home/eddy/usr/src/linux/linux-2.6

check_same_commit ()
{
local COMMIT
COMMIT=$(git log --pretty=oneline --max-count=1 | cut -c 1-8)
[ "$COMMIT" = "$1" ] && return 0 || return 1
}

get_rev_from_unamer ()
{
echo "$1" | sed 's#.*-g\([0-9a-f]*\)-heidi#\1#'
}

mark_bad ()
{
cd $SOURCEDIR
su -c 'git reset --hard HEAD' eddy
su -c 'git bisect bad' eddy
cd -
}

mark_good ()
{
cd $SOURCEDIR
su -c 'git reset --hard HEAD' eddy
su -c 'git bisect good' eddy
cd -
}

compile_next ()
{
cd $SOURCEDIR
if [ -f $FAILEDSLEEPFILE ] ; then
LKVER=$(cat $FAILEDSLEEPFILE)
else
LKVER=$(tail -n 1 $RESUMED)
fi
PREVCOMMIT=$(get_rev_from_unamer "$LKVER")

if check_same_commit "$PREVCOMMIT" ; then
echo "It looks like you got your result!"
exit 1337 # of course $? isn't 1337, but anyways
fi

su -c 'make clean && rm -fr debian && git reset --hard HEAD && patch -p1 < lkver="$(cat">>> BAD <<< $LKVER ($(get_rev_from_unamer $LKVER))" mark_bad else LKVER=$(tail -n 1 $RESUMED) echo "Marking >>> good <<< $LKVER ($(get_rev_from_unamer $LKVER))" mark_good fi compile_next && \ cd $SOURCEDIR/.. && \ echo 'Installing the linux-image and running update-grub && reboot' && \ dpkg -i $(ls linux-image-*_$(cat attempt)_*.deb) && \ update-grub fi


You have my permission to use, modify and redistribute these scripts or modified versions based on these under the terms of the MIT license.


[*] because the libpam-rsa package seems to be unmaintained (especially upstream), while libpam-usb seems to inactive (maybe is considered finished by upstream?)

[1] I didn't automate the removal of the previous test kernel, but that could have been done easily

[2] I haven't made a custom grub section for the test kernels in such a way they would boot by default at the next reboot since I considered that to be too cumbersome for the moment (although I had /vmlinuz symlinks) and it was simpler to select manually the kernel

Thursday 18 June 2009

Howto: transitioning to grub2 from lilo (LVM)

Failing to boot my self compiled kernel, I got to the conclusion that, in order to try to debug the initramfs issues I might have I needed to pass easily different break=* parameters on the kernel command line to identify which part of the boot within the initramfs goes awry.

Since I was stuck with lilo and booting with different parameters is a pain when using it, I decided is time to try to install and start using grub-pc, aka grub2.


Documentation on migrating from lilo (or even grub 1) is lacking, even more for cases where you have the /boot directory on LVM, like I do. IMHO, one of the most important things during a migration is to never lose the ability to boot properly your system, which means that it was a must not to write the grub code into the MBR unless I was 100% sure I will be able to boot with grub at the next reboot.


I tried quite a few approaches (installing grub in a partition, trying to create a real /boot partition), but they all failed on way or another, so I will not describe any of those failing methods.


What I found to work was to:
  • install the grub-pc package,
  • create its configuration and set it up (creates the module files in /boot/grub and /boot/grub/grub.cfg),
  • then install the boot code on an external USB stick, while nothing else was to written on the stick (so no data lost from the stick);
  • after successfully booting from the USB stick, install the boot image on the internal harddisk's MBR
  • reboot and be happy with grub2
Note that, although I run lenny, I decided to use sid's grub package since the little information on grub2 that existed pointed to grub-mkconfig which doesn't exist in lenny's grub-common package. Due to some bug I found earlier at work when trying to migrate my workstation, I knew the squeeze version wasn't good either because it failed to properly boot systems with / on LVM. The earliest version that works is 1.96+20090603-2 and installs without problems directly from sid on a lenny system.

Now lets go over the steps in more detail*.

Creating the configuration is a matter of creating the device.map file and grub.cfg:
update-grub


Create a core.img file with support for lvm:
grub-mkimage --output=/boot/grub/core.img ext2 chain pc gpt biosdisk lvm


Install on the MBR of the USB stick (making sure lvm will be visible):
grub-install --modules="pc ext2 biosdisk gpt chain lvm" /dev/sdb


Try to boot from the stick at least one kernel. If it fails, you probably didn't add in the proper modules (see the possible module names in /usr/lib/grub/i386-pc and add the necessary ones in the modules list). If you're dropped into the GRUB rescue prompt, use ls and set to check if the root and prefix variables are set correctly and if the lvm root is visible.

If you manage to boot, you're ready to replace lilo or your old boot loader.


Install on the internal disk MBR:
grub-install --modules="pc ext2 biosdisk gpt chain lvm" /dev/sda


Reboot and be happy.



Please note that you might have added some optional parameters in your old lilo.conf which aren't present in the new /boot/grub/grub.cfg file and you might want to add those. If you want to add some option to all the images, you'll probably want to append those parameters to the value of this variable from /etc/default/grub:

GRUB_CMDLINE_LINUX="quiet"

For instance, since I want to find when sleep stopped working for my machine, I changed mine into:

GRUB_CMDLINE_LINUX="acpi_sleep=beep ec_intr=0"


After that, run update-grub once more to propagate the changes into /boot/grub/grub.cfg.





* skipping package installation; just use aptitude's text user interface and install grub-pc and grub-common from sid; depending on the system you might need to install grub-efi, grub-ieee1275 or even grub-linuxbios instead of grub-pc

Wednesday 17 June 2009

[help] kernel: same config as debian, but mine doesn't boot

Update2: I finally managed to figure out what was wrong. The pristine kernel was missing this patch ata_piix-ich8-fix-native-mode-slave-port.patch which I got from the linux-patch-debian-2.6.18_2.6.18.dfsg.1-24etch2_all.deb package.

Fortunately the package was still available from oldstable, but I am wondering when will snapshot.d.[no] return.

Now I can get back to detecting which is the commit that broke sleep, although I suspect I am searching for 9666f40:

http://git.kernel.org/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=9666f400





Update: I managed to install grub2 and the initramfs fails to find the root because it can't find the "st" volume group. Since I compiled in the kernel the support for LVM, it was clear that any issue that might have appeared was due to the initramfs.

All this seems to be due to this:

(initramfs) dmsetup ls
/proc/misc: No entry for device-mapper found
Is device-mapper driver missing from kernel?
Failure to communicate with kernel device-mapper driver.
/proc/misc: No entry for device-mapper found
Is device-mapper driver missing from kernel?
Incompatible libdevmapper 1.0.2.27 (2008-06-25)(compat) and kernel driver
Command failed

So now I just have to figure out how to patch the old kernels to work or how to install an older libdevmapper.




My laptop doesn't resume properly from sleep (although hibernate/resume works), although it worked at some point in the past with 2.6.18 (at least the one in Debian Etch worked, kind of).

In an attempt to git bisect in order to find which was the commit responsible for the regression, I tried to compile the vanilla 2.6.18 Linux kernel with the exact configuration (with minor differences) as the Debian Etch kernel, but I was surprised to see that my make-kpkg compiled kernel didn't boot.

The differences are:

--- config-2.6.18-6-amd64    2009-06-17 00:57:56.000000000 +0300
+++ /boot/config-2.6.18-heidi 2009-06-17 10:36:49.000000000 +0300
@@ -1,7 +1,7 @@
#
# Automatically generated make config: don't edit
-# Linux kernel version: 2.6.18
-# Thu Dec 25 21:04:29 2008
+# Linux kernel version: 2.6.18-heidi
+# Wed Jun 17 10:36:49 2009
#
CONFIG_X86_64=y
CONFIG_64BIT=y
@@ -1045,7 +1045,7 @@
CONFIG_IDE_GENERIC=m
CONFIG_BLK_DEV_CMD640=y
# CONFIG_BLK_DEV_CMD640_ENHANCED is not set
-CONFIG_BLK_DEV_IDEPNP=m
+CONFIG_BLK_DEV_IDEPNP=y
CONFIG_BLK_DEV_IDEPCI=y
CONFIG_IDEPCI_SHARE_IRQ=y
# CONFIG_BLK_DEV_OFFBOARD is not set
@@ -1069,7 +1069,6 @@
CONFIG_BLK_DEV_HPT34X=m
# CONFIG_HPT34X_AUTODMA is not set
CONFIG_BLK_DEV_HPT366=m
-CONFIG_BLK_DEV_JMICRON=m
CONFIG_BLK_DEV_SC1200=m
CONFIG_BLK_DEV_PIIX=m
CONFIG_BLK_DEV_IT821X=m
@@ -1144,7 +1143,6 @@
CONFIG_AIC79XX_DEBUG_ENABLE=y
CONFIG_AIC79XX_DEBUG_MASK=0
CONFIG_AIC79XX_REG_PRETTY_PRINT=y
-CONFIG_SCSI_ARCMSR=m
CONFIG_MEGARAID_NEWGEN=y
CONFIG_MEGARAID_MM=m
CONFIG_MEGARAID_MAILBOX=m
@@ -1360,6 +1358,7 @@
CONFIG_ADAPTEC_STARFIRE_NAPI=y
CONFIG_B44=m
CONFIG_FORCEDETH=m
+CONFIG_DGRS=m
CONFIG_EEPRO100=m
CONFIG_E100=m
CONFIG_FEALNX=m
@@ -1418,6 +1417,7 @@
#
CONFIG_TR=y
CONFIG_IBMOL=m
+CONFIG_3C359=m
CONFIG_TMS380TR=m
CONFIG_TMSPCI=m
CONFIG_ABYSS=m
@@ -2088,7 +2088,6 @@
CONFIG_SENSORS_ATXP1=m
CONFIG_SENSORS_DS1621=m
CONFIG_SENSORS_F71805F=m
-# CONFIG_SENSORS_F75375S is not set
CONFIG_SENSORS_FSCHER=m
CONFIG_SENSORS_FSCPOS=m
CONFIG_SENSORS_GL518SM=m
@@ -2116,7 +2115,6 @@
CONFIG_SENSORS_W83781D=m
CONFIG_SENSORS_W83791D=m
CONFIG_SENSORS_W83792D=m
-CONFIG_SENSORS_W83793=m
CONFIG_SENSORS_W83L785TS=m
CONFIG_SENSORS_W83627HF=m
CONFIG_SENSORS_W83627EHF=m
@@ -2350,6 +2348,7 @@
CONFIG_VIDEO_BTCX=m
CONFIG_VIDEO_IR=m
CONFIG_VIDEO_TVEEPROM=m
+CONFIG_USB_DABUSB=m

#
# Graphics support
@@ -2737,6 +2736,19 @@
CONFIG_USB_SERIAL_GARMIN=m
CONFIG_USB_SERIAL_IPW=m
CONFIG_USB_SERIAL_KEYSPAN_PDA=m
+CONFIG_USB_SERIAL_KEYSPAN=m
+# CONFIG_USB_SERIAL_KEYSPAN_MPR is not set
+# CONFIG_USB_SERIAL_KEYSPAN_USA28 is not set
+# CONFIG_USB_SERIAL_KEYSPAN_USA28X is not set
+# CONFIG_USB_SERIAL_KEYSPAN_USA28XA is not set
+# CONFIG_USB_SERIAL_KEYSPAN_USA28XB is not set
+# CONFIG_USB_SERIAL_KEYSPAN_USA19 is not set
+# CONFIG_USB_SERIAL_KEYSPAN_USA18X is not set
+# CONFIG_USB_SERIAL_KEYSPAN_USA19W is not set
+# CONFIG_USB_SERIAL_KEYSPAN_USA19QW is not set
+# CONFIG_USB_SERIAL_KEYSPAN_USA19QI is not set
+# CONFIG_USB_SERIAL_KEYSPAN_USA49W is not set
+# CONFIG_USB_SERIAL_KEYSPAN_USA49WLC is not set
CONFIG_USB_SERIAL_KLSI=m
CONFIG_USB_SERIAL_KOBIL_SCT=m
CONFIG_USB_SERIAL_MCT_U232=m
@@ -2756,6 +2768,8 @@
#
# USB Miscellaneous drivers
#
+CONFIG_USB_EMI62=m
+CONFIG_USB_EMI26=m
CONFIG_USB_AUERSWALD=m
CONFIG_USB_RIO500=m
CONFIG_USB_LEGOTOWER=m
@@ -3002,7 +3016,6 @@
CONFIG_ADFS_FS=m
# CONFIG_ADFS_FS_RW is not set
CONFIG_AFFS_FS=m
-# CONFIG_ASFS_FS is not set
CONFIG_HFS_FS=m
CONFIG_HFSPLUS_FS=m
CONFIG_BEFS_FS=m
@@ -3201,6 +3214,7 @@
CONFIG_SECURITY_NETWORK_XFRM=y
CONFIG_SECURITY_CAPABILITIES=y
# CONFIG_SECURITY_ROOTPLUG is not set
+CONFIG_SECURITY_SECLVL=m
CONFIG_SECURITY_SELINUX=y
CONFIG_SECURITY_SELINUX_BOOTPARAM=y
CONFIG_SECURITY_SELINUX_BOOTPARAM_VALUE=0

The initramfs simply stopped at an early point with some errors which look really weird taking into account debian kernel's shouldn't be that different from mine (photo described below):


Loading, please wait...
unknown keysym 'endash'
/etc/boottime.kmap.gz:23: syntax error
syntax error in map file
key bindings not changed
usb 1-2: device descriptor read/all, error -84
ata_piix 0000:00:1f.2: invalid MAP value 2
resume: libcrypt version: 1.4.1
resume: Could not stat the resume device file '/dev/sda5'
Please type in the full path name to try again
or press ENTER to boot the system:

I suspect the key map error, the usb error and the resume error to be unrelated to the boot problem.

For some reason I suspect the ata_piix error to be related.


After pressing enter more messages appeared:


The image reads further:

mount: mounting /dev/root on /root failed: No such device
mount: mounting /dev on /root/dev failed: No such device or directory
mount: mounting /sys on /root/sys failed: No such device or directory
mount: mounting /proc on /root/proc failed: No such device or directory
Target filesystem doesn't have /sbin/init.
No init found. Try passing init= bootarg.


(BusyBox prompt follows here).


I looked over the net for some hints, but i wan't able to find a solution.


Since I am forced to use Lilo (/boot on LVM) and I didn't managed to make grub-pc work on this system I am kind of stuck and don't know what to do to make the damn kernel boot.

I am running Debian Lenny, but I am willing to backport a few packages, if ncessary.

Help would be really appreciated.

Thursday 4 June 2009

Solution: E: Cannot get debconf version. Is debconf installed?

If you ever get this error when running apt-get or aptitude:

E: Cannot get debconf version. Is debconf installed?

Then your go to /var/lib/dpkg/ and make sure the files status, available and diversions are not empty. If they are, copy the corresponding *-old file into the proper file and be happy.


This is how they looked in a cowbuilder chroot of mine which refused to build packages (I highlighted the important zero-ed files):

root@twix:/# cd /var/lib/dpkg/
root@twix:/var/lib/dpkg# ls -l
total 280
drwxr-xr-x 2 root root 4096 Apr 13 2008 alternatives
-rw-r--r-- 2 root root 0 Jun 3 13:46 available
-rw-r--r-- 2 root root 99608 Jun 28 2008 available-old
-rw-r--r-- 2 root root 0 Jun 3 13:46 diversions
-rw-r--r-- 2 root root 2501 Feb 28 2008 diversions-old
drwxr-xr-x 2 root root 32768 Apr 13 2008 info
-rw-r----- 2 root root 0 Dec 10 20:27 lock
drwxr-xr-x 5 root root 4096 May 26 2005 methods
drwxr-xr-x 2 root root 4096 May 26 2005 parts
-rw-r--r-- 2 root root 47 Feb 28 2008 statoverride
-rw-r--r-- 2 root root 0 Feb 28 2008 statoverride-old
-rw-r--r-- 2 root root 0 Jun 3 13:46 status
-rw-r--r-- 2 root root 115966 Jun 28 2008 status-old
drwxr-xr-x 2 root root 4096 Jun 29 2008 updates


Hmm, that looks fixable ...

root@twix:/var/lib/dpkg# cp available-old available
root@twix:/var/lib/dpkg# cp diversions-old diversions
root@twix:/var/lib/dpkg# cp status-old status
root@twix:/var/lib/dpkg# ls -l
total 508
drwxr-xr-x 2 root root 4096 Apr 13 2008 alternatives
-rw-r--r-- 1 root root 99608 Jun 4 16:10 available
-rw-r--r-- 2 root root 99608 Jun 28 2008 available-old
-rw-r--r-- 1 root root 2501 Jun 4 16:10 diversions
-rw-r--r-- 2 root root 2501 Feb 28 2008 diversions-old
drwxr-xr-x 2 root root 32768 Apr 13 2008 info
-rw-r----- 2 root root 0 Dec 10 20:27 lock
drwxr-xr-x 5 root root 4096 May 26 2005 methods
drwxr-xr-x 2 root root 4096 May 26 2005 parts
-rw-r--r-- 2 root root 47 Feb 28 2008 statoverride
-rw-r--r-- 2 root root 0 Feb 28 2008 statoverride-old
-rw-r--r-- 1 root root 115966 Jun 4 16:10 status
-rw-r--r-- 2 root root 115966 Jun 28 2008 status-old
drwxr-xr-x 2 root root 4096 Jun 29 2008 updates


Now it works :-)

Thursday 21 May 2009

Kernel issues - Debian and pristine

Ever since I bought this laptop I was quite content with it running Debian GNU/Linux (Lenny) and, except the sleep functionality not working (bug reported, but I have no answer for any new approaches) I have no other major issues.


Actually, the problems are partially solved since I am in a "pick your favourite bug" situation:
  • with the 2.6.26 kernel from Debian the information about the power source is incorrect (kernel bug which goes away for me right since 2.6.27)
  • while with a newer (>=2.6.27) pristine kernel, power information is accurate, but the entire bluetooth stack (init.d scripts and apps) needs a restart after a hibernate/resume cycle to work again; I added my info in the corresponding upstream bug and I hope it gets fixed
Still, I am really curious, since the Debian Kernel Team policy is to accept only patches accepted upstream, theorecally that would mean newer upstream kernels should work wrt that bluettoth issue, assuming this isn't a regression (it doesn't look like one from my experience).

So what is present in Debian kernels that isn't in the pristine ones that makes BT work afer resume? If you know the answer, please add it to the bug report.


On the Debian side of the kernel, which are the chances that newer Lenny kernels will include the power fixes necessary for MSI laptops to report power related info correctly? I know, I know, I should probably report a bug, but I want to know first if there will be a lenny-n-half release, otherwise it doesn't make sense.

Friday 15 May 2009

svn-buildpackage is now orphaned

I have decided that is high time to declare svn-buildpackage orphaned since many people are replying on it to be useful, but nobody cared enough to answer to the RFH Eduard Bloch made some 3 years ago.

I know it would have been better if I would have asked a request for adoption, but, honestly, the package didn't had a maintainer in the last year and that would have been lying to everybody.

The package is quite important and I would hate to see it leave the official archive since many people do need it and use it regularly (I know for sure the GNOME, Perl and the Debian Games Team use it) and I have enjoyed working on the package while I was motivated.

The code is maintained in SVN and the trunk can be viewed at:

http://svn.debian.org/wsvn/collab-maint/deb-maint/svn-buildpackage/trunk/

and can be checked out with any of these commands:

# read-only copy
svn co svn://svn.debian.org/svn/collab-maint/deb-maint/svn-buildpackage/trunk svn-buildpackage

# read write, if you have an account on alioth.debian.org:

svn co svn+ssh://svn.debian.org/svn/collab-maint/deb-maint/svn-buildpackage/trunk


Also, note that the package has several features which the new maintainer(s) should be aware of and must make sure they all work when changing the code. Also, there are some things to remember:
  • there is support for native and non-native packages
  • non-native packages' repo can be a complete repo (with an upstream branch) or an incomplete repo (just the differences from the upstream - most times the debian directory, but not always)
  • there is an interactive and a non-interactive mode, both have to work properly
  • the packages can be stored in the repo under 2 different layouts and both have to work since they are both used; support for an arbitary layout would be great and I have a few ideas about how to implement that, so please contact me if you want to work on that
  • team maintainance workflow MUST be supprted and should be one of the highest concerns for the maintainer; this means that being able to work on a new package without issuing more than one command to have all necessary stuff for the build, package upgrades to be done is the target to reach for (currently the situation is a lot better than it was in the past)
  • there is on misfeature from the past that should be finally dealt with - something that was supposed to work as a cache ended up working like an override; meanwhile the effect for new packages/checkout has been minimised, but the code could do better at dealing with old checkouts affected but this (drop the old file name for the overrides, use a new one and scream when the old file name is encountered)
  • 0.6.24 is waiting for an upload
  • a test frame is missing and would be most welcome; I already started working on this based on the git test frame, but didn't managed to have a good-enough-to-publish code

These being said, I am really hoping svn-buildpackage will find a new maintainer since it deserves a lot more attention than I am providing. Don't forget, 0.6.24 is wating for an upload already.



Update: Neil Williams answered and agreed to take over maintenance, but he doesn't usually use svn-inject and svn-upgrade, so somebody taking care of those would be needed. Ironically, those two scripts are the ones in the worst shape of the three main scripts.

Tuesday 12 May 2009

To the person that almost ran over us

Yesterday, as I was driving towards towards Bucharest, just after exiting Roșiori de Vede, somebody driving a white van with a trailer almost ran over us. I had to drive on the opposite lane to avoid the collision.

During the incident I was cold blooded and managed to keep a clear mind, but right after it, I felt my knees softening and had to stop to recover.

So, in the remote case that person will read this post, thanks for at least breaking when I horned.

Friday 8 May 2009

I bought a folding bicycle

For some time I've been pondering about buying a bicycle since it seems my weight has been increasing lately up to about 90 kg, which, for my height and age, is about 20 kilograms too much.

But since I am living in a rented apartment, storing the bicycle was a problem, until I realized I could buy a folding bicycle. When that idea hit me, I literally couldn't sleep until about 6 am and I searched the internet about the options, issues to expect, things to check.

In the end I found a Dahon Mu P8 bicycle someone was selling on a bidding site and, after seeing it I concluded that was in mint shape, so there was no reason not to buy it since the price was half of a new one, while this one was only a year old.

I bought the bike yesterday and rode it to work from the place where I met the person who sold it to me and it was quite an enjoyable experience. I still have to do some minor adjustments (saddle is a little bit loose and folding could be better if the handle bar was in another position) before I can ride it regularly to work, but that's just, well, a minor problem :-P.



Now I have a way to do regular exercise without feeling is a drag, so I expect to lose some weight soon after I start riding it to work regularly :-) . Maybe I'll manage to lose about 5 kilos until DebConf, which would be great.

Friday 1 May 2009

I'm going to DebConf9

I purchased my tickets and I'll be flying from Bucharest directly to Madrid on the 22nd and I'll be returning on the 30th. If somebody wants to fly with me on the same flights (although only the return seems more possible), please contact me privately*.

Although initially I planned to go with my wife and go on a vacation to Portugal or Spain after DebConf, we later agreed it would be better if we decouple the vacation from DebConf, so I'll be travelling alone.


* Igor, you might be interested in this post, but I won't mind being contacted by other people, too.

Friday 10 April 2009

Is Romania part of the European Union?

This is a really slim and really incomplete description of the events turning really bad for Romania and severely bad for Moldavian civilians.
  • Moldavia calls his ambassador from Romania
  • the peaceful protests turn violent on Tuesday (while Voronion recognised for Ria Novostni that they allowed the protesters to control for a day the Presidential building and the Parliament (in Romanian)
  • Moldavia accuses Romania without any proof of implication in the events in Moldavia
  • The Romanian ambassador Filip Teodorescu, and the Counseling Minister of the Romanian Embassy in Moldova, Gabriel Gaboran, are declared persona non grata in Moldavia; Romania can't do the same since the Moldavian ambassador is not in the country
  • Vladimir Voronin announces visas will be introduced for Romanians (an abussive measure since the EU should have been announced of such a measure with 48 hours in advance)
  • Romanian authorities respond by:
    • a ferm denial of the unproven accusations - from what I have seen CNN and Euronews simply don't accurately represent the declaration, and the texts put under quotes - the word "provocation" - imply that the Romanian position is not honest
    • they declared that they will NOT declare the Moldavian ambassador as a persona non grata and that the regime of gratuitous visas for the Moldavian citizens will not change
  • EU DOES NOT ANSWER AT ALL TO THIS ABUSE AGAINST EU CITIZENS
  • Wednesday protests are quiet but media access is highly restricted and inaccurate information is aired through the national Moldavian Television
    • Romanian journalists from Antena 3 were harassed, followed and, fearing for their safety, they appealed OSCE authorities in Moldavia to be able to leave the country safely
  • Wednesday and Thursday many arrests occur in Moldavia and the Romanian officials requested the Moldavian officials to tell them if among the arrested people are any Romanian citizens; no answer was provided by the Moldavian authorities
  • France, Sweden and Czehia and some other EU members declare that they "understand the complexity of the relation sensible issue between Romania and Moldavia" and appeal to Moldavia to rebound the diplomatic relation with Romania - WHAT? In Diplomatic lingo that seems to mean something like "we know Romanians are idiots, but please, Moldavian authorities, let's get back to dialogue"
  • Today, Friday 10, the Moldavians are called to protests and the authorities are authorized to use real ammunition
    • Teachers, university administration personnel, opposition representatives announce that people should not attend the protests and measures will be taken against anyone allowing people (mostly youngsters) to attend the protests
  • Russia declares that "the EU has a member state that hasn't clearly delimited its borders" which obviously refers to Romania, thus attacking Romania and alleging that Romania has unionist expansions; EU DOESN'T DO ANYTHING!
Are we living in a parallel world? What interests would Romania have to ever consider that it would be involved in this? Moldavia is the poorest country in Europe, has huge problems with justice, corruption, criminal activity, social security, border security (Transdnistria) and other issues which Romania does NOT want to import since we're already in a bad position by ourselves!


WHAT THE HELL IS EU DOING? Romania is a member of the EU and it seems all the attacks against Romania are not addressed in any way by the EU, on the contrary, EU members either assist passively, look the other way or even allow us to understand that indeed they think Romania is involved.

Thursday 9 April 2009

About the protests in Moldavian Republic

Many people in the western world are completely unaware that in the Moldavian Republic there is an ongoing protest against the current Communist Party which is at power after the parliamentary elections held on Sunday. The protestants accuse the Communists of election fraud and there are numerous reports of dead people being recorded as voters, people which, by religion, chose not to vote, and other several people which couldn't have voted.

Tuesday the protests took a violent turn, apparently "aided" by some instigators which were reported to be seen as recording the protesters, taking notes and, generally, not fitting the picture. During the day the national television broadcasted absolutely no information on the events, and aired documentaries, cartoons and no news on any of the protests. To me, this looked very much alike what the Romanian Television aired during the Romanian Revolution in December '89 when during the fights in the streets of Bucharest the Television aired no images from the centre of Bucharest.

But, back to Moldavia, at the end of the day, sadly, the Parliament and Presidency buildings were devastated, making it easy for the Communist leaders to produce some disinformation propaganda based on real footage.

Yet again, sadly, but it seems under the protection of some of the aforementioned instigators, the flags of the EU and Romania were waved at the highest levels of the Parliament building during the time the protesters allegedly took over that building (there were several reports that the Police forces actually simply let them in, without actually needing/being forced to do that; also the passivity of the policemen seen in the footage from Romanian televisons was obvious).

As many Moldavian students live and study in Romania, some of them wanted to go home and take part at the protests happening in Chișinău. To their surprise, many of them were denied the right to enter their home country. Many, if not all, Romanian journalists were also denied access in the country accusing alternatively technical issues, lack of proper papers (although only the passport or the ID card was officially required), lack of safety, or simply refusing without reason.


Today, the Moldavian president Voronin, accused Romania as being behind the manifestations in Chișinău, Moldova's capital and said it will declare as a persona non grata the Ambasador of Romania in Moldova, and thus forcing him to leave Moldova within 24 hours. He went even further and said that visas will be required from now on for Romanian nationals. As soon as this was announced, it was one of the most invoked reasons by the Moldavian customs as a rejection reason, although, according to Moldavian Embassy officials in Romania, no rules or procedure were known for the release of visas for Romanian nationals.

Also, during Wenesday, Moldavian crossing points were opened and closed alternatively but incosistently accros the entire border for Moldavian nationals. Romanian nationals were denied in most cases (although some Romanian truck drivers were reported as allowed to cross). At some point during the day the Moldavian officials from the customs told the Moldavian students awating at the border that they are offered access on the condition they go direclty home with the buses provided by the Moldavian customs and were warned that going to Chișinău wasn't a smart choice for them. Some of the information from students which managed to enter their home country suggested that is advisable to not enter the country since they were going to be denied of the right to leave the country later, when they were to return to Romania to their studies (after Easter).

What's sadder is that the Moldavian voting system is built in such a way that the vote counting, in the end is done by Government officials behind closed doors, inside a Ministry. OTOH, the international official observed the things which happend in public, but did not see any of the dead voter lists (since they were not present when those votes were casted), and declared the vote as mostly legal and without major or significant incidents.


According to the media, before the elections, the Communists were credited with 35-37% of the votes in an independent poll, while in the exit poll conducted by the Communists themselves they were credited with 42-45% of the votes. In the end the last official partial results credited them with approximately 51% of the votes.

About Vladimir Voronin, it is a known fact that he has double citizenship, Moldavian and Russian and is a reserve general within the Russian Army and currently has a pretty nice pension from the Russian state.


All I can say is that, although the Moldavians' desire to have a real democracy is a legal and reasonable request, the western world chose, due to the international circumstances, to look the other way around and not to incommodate Russia in any way. Moreover, to accuse Romania to have unionist desires an act upon those desires is planly stupid since now Romania is part of the EU and Moldova uniting with Romania is simply impossible now, since Moldavia's economy would sunk even more the fragile and regressing Romanian economy and Romania would instantly fail the EU requirements which would mean disaster for us.

Wednesday 11 March 2009

Acceptable and unacceptable behaviour

Many people answered to my previous rant stating that it is upstream's prerogative to refuse integration of external patches. I agree and I never said they must integrate patches if they open their source.

What I find unacceptable, and the only reason for the rant, is the fact that upstream deleted my posts from the forum when it was clear that none of the fake reasons that were given was the real reason, since I answered to all of them with sane, logic and reasonable arguments.


I find acceptable to refuse external patches, although undesirable.

Still, I find it unacceptable to try to erase all tracks of a conversation from which it is clear that you were wrong, and try to keep face by erasing traces.

I would have found it hard to deal with, but still acceptable, if upstream would have said simply "please don't try to make patches for glest with the purpose of integrating them later on, we don't want any patches from outsiders". That would have been a decent thing to do.

cd-circleprint - calibration info for c5380

If you're using a HP Photosmart C5380 All-in-One printer to print on a CD, you might find it useful to use the following cd-circleprint configuration file when using mainly A4 paper format.


delta 20.0
begin_from_bottom 7.5
viewer /usr/bin/evince
converter convert
radius_inner 21
tickmarks 1
print_circle_boundaries 1
begin_from_left[0] 1.5
begin_from_left[1] 1.5
number_of_labels 2
debug 0
circle_radius[0][0] 50
circle_radius[0][1] 41
circle_radius[0][2] 41
circle_radius[0][3] 50
circle_radius[1][0] 50
circle_radius[1][1] 41
circle_radius[1][2] 41
circle_radius[1][3] 50
x_scale 1
y_scale 1



I am unsure if usually using A4 paper format changes anything, but the .ps file cd-circleprint creates uses A4 on my system.


Does anyone knows a decent editor for CD artwork?

Thursday 12 February 2009

autohibernate, zenity and cron

I have been trying to make a script that should put my laptop into hibernate, run automatically from cron, so it forces me to get to sleep.

I had managed to make it work from a console (tty1), but it seemed as if it refused to work from cron.

During the tests my local mailbox was getting the output of the command, and I stood and watched at this error message for more than an hour trying to figure out what was wrong. I couldn't understand what was wrong:


This option is not available. Please see --help for all possible usages.

This was from zenity and I was starting to suspect that it was failing to expad properly the text variable since it worked with a fixed text.

This was failing:

(...) | /usr/bin/zenity --progress --auto-close --text "'$NOTIFICATION$XMSG'"

And this was working:

(...) | /usr/bin/zenity --progress --auto-close --text "OH!MY!GOD!"


I couldn't figure it out. Until I tried this:

(...) | /usr/bin/zenity --progress --auto-close --text "OH!MY!GOD!îîăăîăî"


And it failed.


God damn! Setting LANG in the script fixed the issue right away!


So, if you ever want zenity to show up from cron dont forget to:
  • set DISPLAY
  • set LANG
zenity is a pice of shit when it doesn't work. It could have printed the "option which wasn't available".

Friday 16 January 2009

Symbian develoment on Linux (almost native) (Part 1)

After my previous failed attempt at installing Carbide C++[1] to allow me to develop stuff for Nokia E71 (i.e. Symbian), recently I have been digging up the internet on information on how to develop directly in Linux.

After much digging and lots and lots of confusion, I actually managed to find some useful information which allowed me to install a cross compiler and the C++ SDK for my phone (S60 3rd Edition Feature Pack 1) on my MSI PR200 laptop which runs Debian Lenny (amd64). The compiler was built from source and its build arch is x86_64 linux, so it should be able to be a little bit faster than the precompiled binaries for i686.


The key of the solution was the GnuPoc project and the fork that offers support for platforms newer than S60 v2 which is avilable at:

http://www.martin.st/symbian/


Besides the GnuPoc download, you'll need to install the appropriate toolchain and compiler:

EKA1 + a modfied gcc release - for S60 v1 and v2
EKA2 + CodeSourcery's GCC (I chose the source variant) - for S60 v3 or newer and UIQ


The instruction on Martin's page are really good, so I won't repeat them here.



After this, there's the non-free part, the SDK installation which needs to be downloaded from forum.nokia.com (you need an account on forum nokia, but the download is free of charge). The installation procedure is also explained on Matrin's page and they work properly (at least they worked for me).

By the way, there are two variants of the SDKs: a full SDK (Java, C++) and one only for C++. The instructions refer to the C++ version, but I don't know if they'd work with the full version.



I did everything until this point and I haven't completed and/or tested if things work, but I'll do it and update the information.


[1] actually I needed a tool chain, but having a graphical IDE was looking really good