Paypal and nationality…

I do not have a paypal account.

I do have a credit card (AMEX) and I’m living in Italy.

Today I tried to setup an account and bind it to my card. I dislike localizations so the first thing I did was having it keeping the English language after I had to tell the system I’m Italian.
Well I registered and everything went smooth till the point of telling paypal the card I want to use…
I followed the links and… =_= Oh, my card isn’t in the list…
Strange. Let’s try to use the contact module to see what’s wrong and… Oh, it says that it isn’t available for “U.S. English”, I should go to my preferences and switch it to Italian…

In the end apparently IF I’m Italian I cannot use AMEX…

Paypal sucks?

Creppolo “l’ottavo nano” and short sighted politicians

Last week I spend some time visiting some friends in Massa, a quite nice city near a quite nice seaside. It’s all fine with sand, sea and the usual places where to relax. We went in a crepe and piadina shop, there we found the owner pretty depressed: he is thinking about closing the shop by the summer.

Though times you think, well no, Creppolo is quite known and lots of people gather there by the day and by the night, if you want to eat something tasty during the night and you are around there you’ll probably end up there… So, why closing? Well apparently the municipality council/major doesn’t like to have shops open the whole night (even if it’s a tourist city in the seaside…) and decided that by 2AM every shop MUST be closed. Creppolo made most of its sells between midnight and 4AM.

That is pretty annoying since I liked that place and pretty annoying for all the other shops that sell stuff at night (there are many). I always appreciate the short-sightedness of the people elected by people.

Today it’s an election day for the Europe, please make sure you don’t miss this chance to vote somebody that won’t spoil your hard work ^^

Communication, utf8?, strong words

That’s a follow up from Diego about somebody quite angry that went to vent a bit too much and got quite a backslash. Then he got also some issues with his blogging software hiding all the comments about his rant. Now things are more or less normal and you can read the comments again.

Given I’m the first using strong words about software I dislike (like cmake) I try to be ready to be proven wrong. Since that usually means that that either I got somebody planting some clues on me with the proper bat or things improve in the mean time, both cases usually I’m happy/happier to be proven wrong. Being wrong is something that may happen.

Now, I hope that what Matti and Boudewijn did was out of frustration, since I assume that after stupidity and before malice. If you release something it’s YOUR FAULT if it’s broken since YOU are the committer in your tree. Smearing other people to cover the fact YOU, too, messed up is plainly wrong…

cmake vs autotools, a benchmark

Recently wesnoth got released and there is already an ebuild in portage.

Since upstream stated that autotools were being deprecated (actually some people come up to avoid that in the end) Mr_Bones crafted an ebuild using cmake.

Here some values:

build time for cmake -> 3.20m (take everything with at least some of variance)

build time for wesnoth using cmake -> 8.15m (again some more, some less depending on the runs)

build time for wesnoth using autotools -> 8.00m (again some less, some more depending on the runs)

my method is quite simple:
– first I fetch the sources and then build some times cmake and wesnoth 1.6a and use time to see how much it takes.
– then I use the older ebuild 1.4.7, remove the no-python from src_prepare since its unneeded, I call it 1.6a-r1 and then build some times that one as well.

Apparently cmake nearly add about 1/3 to the actual build time if you don’t have it already installed (and you shouldn’t) and compared to the autotools system it adds some time by itself.

In short people shouldn’t use cmake if autotools are available.

Benchmarks – howto

Here a bullet list about doing benchmarks

  • Reproducibility: your numbers worth nothing if nobody could reproduce them, so you have to give along them a script or a detailed description of what you did.
  • Statistics: outliers and other artefacts may screw your results, make sure your script is run enough times
  • Indices and values: if you want to proof something you need hard numbers possibly something everybody can understand easily and cannot be misunderstood: cpu cycles, time to complete, memory usage, are quite good, given you aren’t testing on particularly different architectures or systems.

Quite short, isn’t it? Still many people just state their values by inference (like “it ought to do 2x the syscalls thus should be twice slow”), or just tries to benchmark something that isn’t what you want to test (like “glxgears is slower now, mesa is slower at rendering complex scenes”) or have a quite different settings and configurations (think about having your application with a minimal configuration and the same one with a larger one)

Usually the best way to get a meaningful benchmark is preparing a script and give instructions about how to use (like which version of companion software are you using) and then provide the numbers (media with variance if you are inclined) and a summary of the system, this way others can play and try themselves. This is quite useful since the optimization you are working on may be great on gcc4.3 on PowerPC but be problematic on x86 with gcc-2.95.

Other times you want just people to compare something that is _quite_ influenced by the surrounding system or is annoying to setup, in those cases having a full system image is quite a boon, _everything_ could be the same. And given how easy is to use virtualization/emulation software nowadays it just take a bit of bandwidth.

Random ideas about changes, their value, their impact

During the last month we got many arguments about how fundamental was one or another change to portage and how this or that had been a life change for many users.

I’m talking about the whole discussion about glep54 and the following one.

When it was first proposed I found the glep lacking details and given that some people were vehemently against it I asked to have it updated. Since some other people found the idea of improving our support for live ebuilds as whole (not just the versioning) interesting I tried to gather ideas and put them all into a draft. The thing got quite big and covered many steps needed, most of them not detailed yet.

Basically the live template draft aims to have portage do the following:

– let you automatically merge from a specific live branch
– have emerge –fetch work as supposed introducing a phase just for that
– let you track what you installed and possibly re-install as is
– have a way to generate automatically snapshot ebuilds and binpkgs in a non ambiguous way
– some more (like have portage show you which revision and from which branch comes what you installed on emerge -upv)

Glep 54 just aim to make sure versioning is theoretically and thoroughly correct, no matter how crazy overlays, upstream and package maintainer could be. To make an example, right now if someone wants to provide a live ebuild he could prepare an ebuild with a large version value (say 9999) and assume nothing bigger would appear, version usually are small values like 1.2.3.
Now, nothing forbids to have a version that is, say, 10000, making invalid the assumption cat/pkg-9999 is the higher value. The glep54 comes with a solution for this issue, have a new prefix to state that he ebuild is live, thus has to be considered above all the others within it’s range. This change has to be folded within a EAPI change or even better to a file extension change as stated in glep55 since it’s as simple to state as radical: older portage, not knowing anything about what this prefix is, will issue a warning.

Installing from live sources is completely unsupported thus those ebuild are rightfully p.masked and their use is quite specific. The current amount of them is scarce: 90 on 26130 ebuilds are live.

So, if you got the question about if you’d approve this proposal and consider implementing that and all the changes due that would follow or just put it on hold till it would be more useful what would you do?

A pragmatic approach would either be either reject it since does pretty much nothing in the big scheme (0.003 is nearly nothing) a less pragmatic approach, due the tendency to thinker, would be just try to make it more useful so it could be of appeal to a wider interest…

Probably the same time would have been better spent on things that are more interesting like have a better way to state what a dependency is (if it is something I’ll need to link to, something that I need to run) to ease the life of our embedded arches (say ppc, arm, sh, mips) or to fully support multislot and multiabi so we can avoid emul-linux on amd64 and have ppc64 being able to run xlc w/out many annoyances *cough*, or start thinking about how to enable pgo as widely as possible since it appears to make the difference in certain situations (e.g. firefox).

Alive again

During August I was supposed to prepare something new for the LScube project.
I was supposed to do a bit more for the Summer of Code (Sorry Keiji and Seraphim) and the FFmpeg project (libswscale isn’t yet in shape I know).

Sadly I spent about a month with a bad pneumonia and just now I’m starting to catch up really. (I hoped to stay better before but, as my 2 miss on council meetings shown, wasn’t ok yet)

Diego is doing a wonderful job rationalizing LScube suite, Ale almost finished his Flux (started as a way to show me that C++ isn’t the problem, just people misusing it), Michael decided to make libswscale the default in FFmpeg forcing more people taking care about it.

What now?

Well first I’ll try to not miss new council meetings (and I’ll ask Chrissy and Diego to back me up when happens I cannot be there).

I have some pending stuff about libswscale that will end up having a better structure to provide arch specific optimizations, once they hit I’ll try to do again a witch hunt over ffmpeg using applications to provide the new libavcodec in portage.

Hopefully the next feng (and friends) release will hit portage and the stale fenice and libnemesi will be replaced accordingly ^^;

There is plenty of new stuff on the CELL land to be tried and provided (like mars)

I’ll try to take some time to merge the openmoko patches to the new (and gcc-4 building) qemu so I won’t have to provide an qemu-openmoko to help people interested in getting Gentoo on the freerunner (openrc could help a bit the boot time possibly and bitbake is a bit annoying from time to time)

Last but not least Syoyo is getting his blazing fast renderer Lucille to be usable even by common people.

Lots is happening (with and without me) =)

Alternatives…

Here some ideas about alternatives and gentoo possible alternative implementation (refer to Diego’s post):

– implemented as an eselect module, possibly with an alternatives interface for those who like it
– will work just on executables you directly run
– it will be backed by an eclass to handle post-inst/post-uninst (registration and removal to the alternatives list)
– it will use the environment, a separate config dir, a C wrapper [pick one or all]
– the wrapper will check his argv[0], look at the config dir for the string to call and run it.

Probably even those 5 lines have conceptual bugs but I guess that’s enough for a draft.

lu

Japan!

I’ll stay for about a month in Japan, till the latest I was too busy and not so sure I’d make it so I avoided blogging about this till I were sure.

Hopefully I’ll have another great time hurrying from a city to another (Hiroshima and Sapporo will be the southern and northern cities I plan to visit) and I’m looking forward to meet the local gentoo community again (I never thanked you enough).

I’m not sure how I’ll be able to get a reliable network link, but I think I’ll find a way ^^.

Alternatives, part II

You may already know that I have some complaints about pidgin:
– its developers use a brain damaged dvcs (yes monotone sucks, yet another application written in C++ that sucks after cmake)
– The ability to listen to the user feedback is severely reduced.

Since we are talking about alternatives looks like somebody tried to make things a little nicer and forked the code so far and made something fun out of that.

Seems promising, I hope it works well enough to be put on Gentoo soon if the pidgin devs don’t come to their senses =P