It was unfortunate when Sony decided to pull out the Other OS support from PS3. One of the reasons of convincing myself to buy it was this feature. With that feature gone, the PS3 stood as nothing much but mostly a media center and an occasional game box.
But with the Move, I think they have compensated it. It is a greatly engineered product with very good accuracy. It has been a week and I've been thoroughly enjoying it. I liked the packaging too. One single compilation of Sports Center contains like 5 games in it. Just the Table Tennis alone is worth it. But there are more that I need to try.
Another surprising factor was pricing. United States pricing for the starter pack is expensive than at what I got here. This was something I didn't expect at all.
Thank you Sony for creating a good product.
The screenshots.debian.net site is a public repository of screenshots taken from applications contained in the Debian GNU/Linux distribution and its derivates like Ubuntu.
It was created by Cristoph Haas to help people get an impression of what a certain software will look like on your desktop before you install it. Everybody can take screenshots and upload them through the upload form. So far there are about 3100 screenshots, which is actually a small number if you consider Debian Squeeze contains about 15000 source packages
After I hacked a bit on KSnapshot, the KDE snapshot tool, Sune asked me to add an export to screnshots.debian.net command. I had not thought of it before but that looked like a great idea, it would make the process or taking-screenshot, visit-upload-form, upload-each-screen so much easier!. So I started to develop my first KIPI plugin.
Here is the resulting Debian Screenshots plugin, as you would use it in KSnapshot:
Being a KIPI plugin, it is available not only from KSnapshot but also from Digikam, Gwenview and the other applications which support KIPI plugins:
Which makes me think: what about having a debshots (the software powering screenshots.debian.net) installation over at kde.org and have screenshots for all the KDE applications? What do you think? Promo team? Sysadmins? Setting it up shouldn t be difficult: I m no Python or Pylons expert (I m more of a Ruby and Wt C++ guy
and got it running in a VM in an afternoon, even solving some SQLAlchemy 0.6 issues.
I have this project in my head, I want to work on it but I always lack the time. In order to go forward, I thought I could write about it, at least it would let me clarify my ideas and the core goals. So here I am, I will present you Librement (I have registered the alioth project but it s empty).
The core goal is to make it easy for every user to contribute to free software in some way. I will now present the main features that I envision.
Defining skills and interests
In order to propose tasks that the user can do, we must have an idea of his skills. So on the first run (and later through a preferences menu) the user will be invited to define his skills:
Follow me on Identi.ca, Twitter and Facebook. Or subscribe to this blog by RSS or by email.
11 comments Liked this article? Click here. My blog is Flattr-enabled.

(This is a part of a series of posts on my recent experience with Windows. See Windows (I) for the first post.)
For the past month, I got disconnected from basically all of my usual activities. Not only from Debian work (well, yes, I followed up on a couple of important bugs and releases, but I was in a very low power consumption mode of sorts), DebConf organization/following (some people have contacted me regarding the DebConf 12 venue decision, for which we should start working and have a presentation soon) Even the always-so-important Real Life got pushed aside. I barely participated in this year's EDUSOL (On-line Encounter of Education and Free Software). Even work suffered I asked my boss to hold any incoming requests for me (save, of course, for urgent stuff).
I am now shyly coming up from the hole I dug myself in for this time.
Why did I do such a thing?
I do not have a formal education beyond high school. Due to several personal issues, I was accepted to the best university in my country, and to the first generation of the study program I would definitively love to have followed, but didn't attend.
Of course, I had a fair bit of computing background, enough to be competitive and start working. After amazingly few years, I didn't only get a decent job, but I got a job precisely at the very university I wanted to study at (and where my father has worked for the past 40 years). And, even with some changes along the years, here I am with 10 years of laboral history in this university, with an academic position (although the smallest academic position, but still). It is one of my life's achievements, one of the things that makes me proudest of.
Still, I don't want to stay at this level for the rest of my life. And an institution such as this one has rules Yes, flexible enough to allow me in, but rules whose importance I cannot deny. I aspire to become a professor/researcher at some point, and that is just not possible without filling in the prerequisites. Besides, I want to try my hand at teaching at a universitary level.
So, what choices did I have besides devoting at least four years to full-time study? Well, there is a government entity that evaluates and regulates formal education given by smaller universities CENEVAL. For probably around ten years now, they have offered the ACREL (Acuerdo 286 Licenciatura) program to validate professional knowledge acquired through work experience And I'm writing this detail as several people have asked me for details on it. So, once you are accepted in the program (basic requisites: Having a high school certificate, over 30 year old, and with over 10 years of provable work experience), they can grant a Licenciatura degree (i.e. the equivalent to a four-year study program). So, in order to get it granted, I have to:
We ve come a long way since the times when you needed to configure 2 X servers in XDM just to be able to use 2 X sessions at once. However there was still some way to go until recently. A number of bugs that could be wrongly attributed to bugs in the X server or in the desktop environment were actually caused by the display manager doing crap.
GDM up to 2.20
Since the introduction of the flexible X servers feature, GDM hadn t evolved much on the matter of user switching. What it used to do was pretty straightforward:
I have been helping with an overdue web app project lately, and the project uses ASP.NET MVC, so I have had to use Windows for most of my day. Since I had been using GNU/Linux almost exclusively since 2003, this is quite an adventure (imagine trying out GNU/Linux after a seven year break). It is not nearly as bad as I thought it would be, even though I am using the not-so-well-liked Windows Vista which came pre-installed with my computer.
When I accidentally looked at my personal Debian repository, I realized that it is time to remove obsolete things from it.
There were packages for polld, for which which I don't see need anymore (it is now properly handled by kernel), hacked acpid packages, which were doing special things for Toshiba M30 notebook (which I don't use with Linux anymore and nobody else probably knew about these packages) or wmmp, a Window Maker applet for MPD, which I haven't used for quite a long time. All those are gone now and I don't think anybody will miss them (if you do, please tell me).
What stayed there are daily snapshots of dictionaries for StarDict and gnaughty package, which was rejected as possibly causing troubles.
Filed under: Debian 0 comments Flattr this!
You probably know about top , in Debian and Ubuntu part of the
procps package.
Ever wanted to see CPU and memory usage as bars and not numbers?
Ever wanted to kill a process from inside top by just selecting its
row instead of having to type its pid?
Ever tried to press a cursor key inside top? It makes a noise and says
Unknown command - try h for help . Short said: top is not
that interactive.
Ever wanted top to be more colorful?
Well, there is a solution to all these issues. It s called htop (Debian package) and is some kind of colorful, ncurses based
cross-over between top and a Midnight Commander for processes:

More screenshots of htop at
screenshot.debian.net and at the
project s site at SourceForge.
It can do many things, top can t do:
In this post I'll describe the changes made to the kernel and some of the
Squeeze packages for the Freaky Wall.
The plan is to submit whishlist bugs to the BTS on the hope of having all what
is needed for this project available on Debian after the Squeeze release, as
my feeling is that a freeze is not the right time to push this changes... ;)
I'm giving access here to all the changes made to the source packages, but if
anyone wants the binary packages (amd64 only) send me an email and I'll give
you the URL of an apt repository that contains all the modified packages (it's
the one at work, that contains other modified packages) or, if there is
interest, I can put them on people.debian.org.
Kernel
To be able to build the firewall we need a kFreeBSD kernel with some options
not compiled on the version distributed with Debian.
To compile the kernel I've followed the procedure described on the following
debian-bsd mailing list post:
http://lists.debian.org/debian-bsd/2010/09/msg00023.html
Basically I've done the following:
apt-get build-dep kfreebsd-8
apt-get source kfreebsd-8
cd kfreebsd-8-8.1
cat >> debian/arch/amd64/amd64.config << EOF
# Add pflog, pfsync, ALTQ and CARP support
# ----------------------------------------
# http://www.freebsd.org/doc/en_US.ISO8859-1/books/handbook/firewalls-pf.html
device pf
device pflog
device pfsync
options ALTQ
options ALTQ_CBQ # Class Bases Queuing (CBQ)
options ALTQ_RED # Random Early Detection (RED)
options ALTQ_RIO # RED In/Out
options ALTQ_HFSC # Hierarchical Packet Scheduler (HFSC)
options ALTQ_PRIQ # Priority Queuing (PRIQ)
options ALTQ_NOPCC # Required for SMP build
# http://www.freebsd.org/doc/en_US.ISO8859-1/books/handbook/carp.html
device carp
EOF
vi debian/changelog
dpkg-buildpackage -B -uc
Once the package was built I installed the new kernel package and rebooted the
machine.
Utilities
To be able to use some utilities related to pf I have built patched
versions of three packages:
freebsd-utils: I have included pflogd and ftp-proxy on the package and
have added some options to allow the use of additional interface types with
ifconfig (carp, pfsync, lagg, bridges, ...).
There were a lot of changes needed:
pflogd and ftp-proxy Makefiles are missing from the original
tarball, I modified the get-orig-source of the debian/rules, but I build
my packages against the original tarball, with the extra files included
directly on the package .diff.gz.pflogd daemon needs a _pflogd user and group and a
/var/run/_pflogd directory, so I've added the directory and the creation
of the user and group to the package post-install.ftp-proxy daemon uses the proxy user when dropping privileges and
I've modified the code to make it use the /var/run/ftp-proxy directory for
the chroot.-dev packages were
missing and I put them on the packages' debian directory. I've created a
debian/include directory and moved there the original debian/net
directory and added the headers debian/include/net/if_bridgevar.h and
debian/include/net/if_lagg.h to add bridging support to ifconfig and the
debian/include/pcap-config.h and debian/include/pcap-int.h libpcap
private headers to be able to compile the pflogd binary.pf, pflogd
and ftp-proxy, but I have not done it at the package level yet, as what I
got was enough to work with the tools.
The debdiff against the freebsd-utils-8.1-2 source package is available
here or
here. libpcap: A test had to be removed in order to be able to support pflog
on the library; the debdiff against the libpcap-1.1.1-2 package is
available here or
here.tcpdump: The package also had to be modified to include the code to print
the pflogd entries on the pcap file; the debdiff against
tcpdump_4.1.1-1 is available here or
here.
I knew walking all
over the Pyrenees during a whole month would come with some side
effects. I could imagine having a few muscular issues in my legs and some
back pain for a while after getting back; after all we did over 7 hours of
exercise every single day during a month. What I got after our hike was
totally unexpected...
I should have run a half marathon in Gandia on the 21st, and instead I
stayed at home doing some assignments. When we came back, I was in a
really good condition, and wanted to keep the good shape we had built the
month before. Given I haven't been able to swim for nearly a year now,
due to the Misterious Shoulder Injury and I don't have enough time to go
out cycling regularly, I centered my efforts in running, with the idea of
starting to get prepared for cross/mountain races this season.
Training had to wait a little because some days after getting back, I
got a sudden pain on both knees, which even made climbing stairs
difficult. It stuck for a while, and when it finally went away, more or
less, I went ahead and tried going out for a run. I haven't been training
for over two years, so I indended to increase the distances
proggressively. The first day I went out, I ran really nicely for the
first 25 minutes, and suddenly I started getting an intense pain in the
outer side of my right knee, to the point I could barely walk back
home.
I've tried letting them rest for weeks, and every time I try them, the
pain comes back. My physiotherapist says my body has developed quite a few
asymmetries, probably caused by the many days I had to walk crippled by a
big blister in my right foot. As time passes, I feel I'm losing all the
physical improvements I had developed during the summer, and I can't do
anything about it.
The new approach to tackle this is yoga. I know my body isn't too
elastic, and the lack of stretching during the walk made it even worse, so
I'll try to forget about real traning during some time and focus on
healing my muscles. Hopefully, this will help me resolve the nastiest
physical problem I've ever come across.
Debugging a computer program is such an interesting activity because it's
not really a matter of fixing a program. It's a matter of fixing your own
understanding to the point that the cause of the bug becomes obvious.
So debugging means constantly challenging your assumptions, constantly
looking for the overlooked insignificant thing that turns out to be crucial.
I mostly debug by print statements. I don't like it much, but it works.
I add some print statements around the problem area and see if what's going
on matches what the model in my head thinks should be going on. If it
doesn't, I try to fix the model, and if it does, I focus the print statements
in tighter and tighter, deeper and deeper, until I finally reach the bug.
It's nasty and ah-hoc, but it works really well, mostly. And I know I'm in
good company doing it.
But that method can fail; I myself can end up caught in a loop. Like today,
tracking down an obscure bug in Branchable's
auditing subsystem, when I found myself at what was apparantly the point of a
bug: Function A was supposed to call function B, but B never seemed to be
called. So surely A was buggy, and I instrumented it to bits with print
statements and stuff, and started wondering if the libraries it relied on
were somehow breaking it in non-obvious ways before it could call B, or
maybe there was a bug in the runtime language that was breaking the call to B.
Going deeper and deeper didn't help, because the thing I was overlooking was up
at the top level -- one of the first print statements I inserted showed that
all this code was running twice. Why? Didn't seem relevant to the bug so I
ignored it. Of course what I was ignoring was a symptom of the real problem:
The first run was by another subsystem, that happened to redefine function
B temporarily..
Actually, one of the nice things about Haskell is that print statements are not
very helpful in debugging pure code. Pure code tends to get loaded up in ghci
and tested interactively, and the bug is then clear. Or a quickcheck test case
gets written with an invariant that the pure code should satisfy. I spent a
whole day a few weeks ago writing an inverse form of a buggy function in
git-annex just so I could feed them both into quickcheck and automate
debugging. (Most of that time was spent wrestling with unicode decomposition ..
ugh.) Being used to getting down in the buggy code with print statements, that
at the time felt rather like a waste of time unrelated to getting on with
making my program work, but it was very much worth it since I got my program
working 100% in even crazy edge cases, and got a test suite for free, too.
Most of my debugging of Haskell code so far has not involved bugs in pure
code. The most memorable bug was actually
a bug in ghc's IO manager,
which I'd have never tracked down without Josh's help. The problem with
finding bugs in the runtime environment or compiler is that after you've found
enough over the years, you're more likely to go down false paths distrusting
runtime environments, like I did with the bug today. The beginner's
assumption is that the runtime environment just works, but I by now may
have over-challenged that assumption. :)
Every so often, we get bug reports about Varnish leaking memory.
People have told Varnish to use 20 gigabytes for cache and they
discover the process is eating 30 gigabytes of memory and they get
confused about what's going on. So, let's take a look.
First, a little bit of history. Varnish 2.0 had a fixed per-object
workspace which was used for both header manipulations in vcl_fetch
as well as for storing the headers of the object when vcl_fetch was
done. The default size of this workspace was 8k. If we assume an
average object size of 20k, that is almost 1/3 of the store being
overhead.
With 2.1, this changed. First, vcl_fetch doesn't have obj any
longer, it only has beresp which is the backend response. At the
end of vcl_fetch, the headers and other relevant bits of the backend
response are copied into an object. This means we no longer have a
fixed overhead, we use what we need. Of course, we're still subject
to malloc's whims when it comes to page sizes and how it actually
allocates memory.
Less overhead means more objects in the store. More objects in the
store, means, everything else being equal, more overhead outside the
store (for the hash buckets or critbit tree and other structs). This
is where lots of people get confused, since what they see is just
Varnish consuming more memory. When moving from 2.0 to 2.1, people
should lower their cache size. How much depends on the amount of
objects they have, but if they have many and small objects, a
significant reduction might be needed. For a machine dedicated to
Varnish, we usually recommend making the cache size be 70-75% of the
memory of the machine.
A reasonable question to ask at this point is what all this overhead
is being used for. Part of it is a per-thread overhead. Linux has a
10MB stack size by default, but luckily, most of it isn't allocated,
so it only counts against virtual, not resident memory. In addition,
we have a hash algorithm which has overhead and the headers from the
objects are stored in the object itself and not in the stevedore
(object store). Last, but by no means least, we usually see an
overhead of around 1k per object, but I have seen up to somewhere
above 2k. This doesn't sound like much, but when you're looking at
servers with 10 million objects, 1k of overhead means 10 gigabytes of
total overhead, leading to the confusion I talked about at the start.
Next.