Gentoo Logo
Gentoo Logo Side
Gentoo Spaceship

Contributors:
. Alec Warner
. Alex Alexander
. Alex Legler
. Alexis Ballier
. Andreas Proschofsky
. Andrew Gaffney
. Arun Raghavan
. Ben de Groot
. Bernard Cafarelli
. Bjarke Istrup Pedersen
. Brent Baude
. Caleb Tennis
. Christian Faulhammer
. Christian Zoffoli
. Damien Krotkine
. Daniel Drake
. Daniel Gryniewicz
. Daniel Ostrow
. David Abbott
. David Shakaryan
. Davide Italiano
. Denis Dupeyron
. Diego E. Pettenò
. Donnie Berkholz
. Doug Goldstein
. Gentoo Haskell Herd
. Gentoo News
. Gilles Dartiguelongue
. Greg KH
. Gunnar Wrobel
. Gustavo Felisberto
. Hanno Böck
. Hans de Graaff
. Ioannis Aslanidis
. Jan Kundrát
. Jeffrey Gardner
. Jeremy Olexa
. Joe Peterson
. Jonathan Smith
. Jorge Manuel B. S. Vicetto
. Joseph Jezak
. Josh Saddler
. José Alberto Suárez López
. Kenneth Prugh
. Krzysiek Pawlik
. Lance Albertson
. Luca Barbato
. Luis Francisco Araujo
. Marcus Hanwell
. Mark Kowarsky
. Mark Loeser
. Markos Chandras
. Markus Ullmann
. Mart Raudsepp
. Matthias Geerdsen
. Michael Marineau
. Michal Januszewski
. Mike Doty
. Mike Pagano
. Mounir Lamouri
. Nathan Zachary
. Ned Ludd
. Nirbheek Chauhan
. Olivier Crête
. Patrick Kursawe
. Patrick Lauer
. Patrick McLean
. Paul de Vrieze
. Peter Weller
. Petteri Räty
. Pieter Van den Abeele
. Piotr Jaroszyński
. Remi Cardona
. Renat Lumpau
. Rob Cakebread
. Robert Buchholz
. Robin Johnson
. Romain Perier
. Ryan Hill
. Sebastian Pipping
. Serkan Kaba
. Shyam Mani
. Steev Klimaszewski
. Stefan Schweizer
. Steve Dibb
. Stuart Longland
. Sune Kloppenborg Jeppesen
. Sven Wegener
. Thilo Bangert
. Thomas Anderson
. Timothy Redaelli
. Tiziano Müller
. Tobias Klausmann
. Tobias Scherbaum
. Yuval Yaari
. Zack Medico
. Zhang Le

Last updated:
October 14, 2009, 23:04 UTC

Disclaimer:
Views expressed in the content published here do not necessarily represent the views of Gentoo Linux or the Gentoo Foundation.


Bugs? Comments? Suggestions? Contact us: planet@gentoo.org

Powered by:
Planet Venus

Welcome to Gentoo Universe, an aggregation of weblog articles on all topics written by Gentoo developers. For a more refined aggregation of Gentoo-related topics only, you might be interested in Planet Gentoo.

October 14, 2009
Tobias Scherbaum a.k.a. dertobi123 (homepage, stats, bugs)

Vor rund 14 Tagen schrieb ich über die anstehende Auflösung des Förderverein Gentoo e.V. – nun 14 Tage später sieht erst einmal vieles danach aus, als wenn auf der kommenden Mitgliederversammlung ein neuer Vorstand gewählt werden kann und zumindest die Auflösung (vorerst?) vom Tisch ist. Die angedachte Mitgliederversammlung am Wochenende 07./08.11. in Bottrop findet ebenso nicht statt. Anstelle dessen wird voraussichtlich im Rahmen des 26C3 in Berlin (vermutlich am 27.12.) eine außerordentliche Mitgliederversammlung stattfinden. Alle Mitglieder des Vereins werden selbstverständlich zeitig hierzu eingeladen.

Ich möchte mich ausdrücklich bei denen entschuldigen, die mir in den vergangenen Wochen Mails mit Hilfsangeboten etc. zukommen lassen haben – ich konnte nicht alle Mails beantworten, aber es tut durchaus gut, zu sehen, dass auch andere noch ein Interesse am Verein haben. Dafür Danke!

Möglichst kurzfristig soll die Webseite des Vereins ein Facelift erhalten und ab dann im Idealfall regelmäßig mit frischen Informationen versorgt werden.

October 13, 2009
Diego E. Pettenò a.k.a. flameeyes (homepage, stats, bugs)
Multiple password recovery failures (October 13, 2009, 14:21 UTC)

For safety, I never use the same exact password unless it’s the very generic one for services that I don’t care about at all; any service that really keeps information about me, like Amazon and various other hardware (and software) suppliers, have a different password each. I try to stick, whenever I can, with the same username; although sometimes I’m provided an username already (and sometimes, they use my surname, included the accented “ò” letter that ensures funny stuff will happen).

Now, with so many different passwords, it’s almost logical that at some point I’ll forget one; I actually make use of the save password feature in the various OSs/browsers to remember the password for me (on the other hand, I do change some passwords periodically). Sometimes though, when I reset Firefox, change computer, or simply use a new box, I find myself in small trouble since I can’t remember what password I was using on a given site.

This is usually not too bad since almost all sites nowadays provide a “Lost Password” feature. The problem is that such feature is, often enough, written in so many bad ways:

  • don’t send me my old password! If you’re able to send me my old password, then you’re already at two failure points: the first is that you have my password saved in clear text in your database (which is bad because if your database is compromised, your user’s passwords are readable), the second is that you sent me an email, most likely through clear text channels, with the password in clear-text;
  • don’t just change my password! What if somebody else was asking for my password to be changed to waste my time? Send me a token to change the password, please;
  • don’t send me a permanent new password! Even though I’m smart enough to change it right away, make the password a one-time temporary password that requires me to change it right away, pretty please; this way nobody could find it in my mail archive by mistake (the stolen-laptop kind of problem).

While I’m not the kind of paranoid person who would use continuously one-time passwords (well, without considering the banking account), I’m paranoid enough to be doubtful when a service does not provide SSL-based login (okay even my own blog does not do that, but in general I mean for important stuff), and I seriously get scared when a service that remembers – for instance – my credit card, sends me an email with my password in clear-text. Which is why I use different passwords in the first place.

I learnt this the hard way actually, because the ASP web application used for the forum of an ancient gaming site I was involved is stored the passwords in clear-text, on an Access database file that was readable via HTTP if you knew the path, and since that went hacked quite easily (I only started administering that box after this happened), and I was using the same password for lots of services.

October 12, 2009
To sleep or not to sleep (October 12, 2009, 23:23 UTC)

It's over 1AM again, and I'm still not finished with Gnome 2.28 review. I've spent quite some time this weekend and tonight looking at what was wrong with gnote, gnome-system-monitor, gparted and a few other c++ apps suddendly starting to crash after I updated glib on Friday. Turns out something in the mm stack is doing something wrong so I filled Gnome bug #598209.

Updated to epiphany-2.28 since I got sick of epiphany-2.26 crashing when I wanted to make it remember a new password. Turns out it's not as nice as I would have thought a nearly two years efforts would be. Lots of problems where loading of a page would stop in the middle of the process. I had to install firefox to fill bug reports and access the pages that fails. That's quite a regression but upstream is now aware of it through Gnome bug #598115. Hopefully it'll be fixed for Gnome 2.28.1.

I also spent some time cleaning up unneeded revisions in tree since I had to occupy myself when building all those c++ bindings. So where are we now, a bit less than 41 packages to go for review and about 80% of completeness on my gnome 2.28 status page.

Steve Dibb a.k.a. beandog (homepage, stats, bugs)
the hdtv mini htpc that may never be (October 12, 2009, 17:18 UTC)

So, my efforts to get a small Mini-ITX system capable of playing back HD content so far has not been successful.  And, as is usual with stories of my hardware adventures, the problem always lies with something totally unexpected.  Here's the story so far.

41ZjEdxog+L._SL500_AA280_

At the end of September, I finally plunked down some cash and got a Zotac GF9300-D-E Mini ITX motherboard from Amazon.  The board is a bit older, but it's loaded with features.  It's got an onboard Nvidia 9300 video card, with HDMI output along with both SPDIF ports.  On top of it, it is a socket 775 Intel chipset, so that means I wouldn't have to bite the bullet and go with a sluggish Atom again.  Don't get me wrong, the Atoms are nice for general computing, but I still don't think they are really up to the job for dedicated video playback.

So, I got one of those, along with the same 35W Intel Celeron CPU that has been working so extremely well on my first Zotac Mini-ITX that is only capable of SD playback.  I don't want to knock that board either, because it has been doing extremely well.  I've been very happy with it since day one.

31m9lanQwQL._SL500_AA280_

The board arrived, and I immediately set it up and got everything plugged in.  I took out my old Zotac and rested the new one into the Silverstone HTPC case.  I've got an LC19 which is actually big enough to hold a Micro-ATX board -- really, this thing is huge -- so a Mini is comfortable and capable enough to slide right in there.  There's a lot of things I like about this case.  It's top cover is covered with ventilation holes so you don't have to worry about the board overheating.  In fact, the original Zotac was running so efficiently, that the CPU fan would rarely turn on.  It was great.  I do have some issues with the case, though.  There's no reset button, which would have been nice, and the power supply has always seemed a bit flaky to me for some reason.  I can't really pinpoint what the problem is, but it just seems a little cheap to me.

Anyway, I plugged in thew new HD-capable Zotac, hooked up all the cables, and hit the power button.  The CPU fan started spinning briefly, then stopped completely.  At first I assumed it was like the original board, and it the smart fan meter was kicking in and it was just powering down because it was running cool.  Except that the board wouldn't POST.  I wasn't getting any video output at all.  I took everything back out and meticulously checked all the connections, and they certainly looked fine.  I made sure all the connections were secure on the case as well, and they seemed good too.  A bit puzzled, I put it all back together and tried again, with the same result.

At this point I figured that maybe it didn't like my RAM configuration, so I took the module out of the first row, and set it into the adjacent one.  After doing that, I hit the power button, and then *nothing* happened this time.  The fan wasn't even spinning up at all.  Crap.

Finally I did what I should have done the first time around, and I grabbed a PC speaker component and plugged it into the motherboard.  I've had tricky motherboard issues in the past, but my last line of defense was always the BIOS beep codes.  Once I interpreted those, I could fix the determined issue and be on my way.  I was expectantly hoping that the same would hold true here.  I plugged in the speaker, turned on the computer, but nothing.  No POST, no initial fan speedup, and no speaker codes.  At this point I assumed the board was DOA, so there was nothing I could do for it.  I did have *one* last sneaking suspicion though.

The new Mini-ITX motherboard also had a 4-pin CPU power plug, but I wasn't plugging anything into it.  The manual casually mentions plugging it in, but I had assumed that it was optional -- only because my previous Zotac ran perfectly fine without plugging one in, and because my case, while the power supply has a 4-pin port, didn't come with a cable.  So I always assumed I didn't need one.

13211

I decided to see if that was the issue, instead of sending it back, and trying my luck to see if I could still solve the problem.  So, I went off to Monoprice and ordered three of the cables (for 85 cents each, I love you, Monoprice).  In a rare show of patience, I waited almost a week for them to arrive in the mail before resuming my experimentation.

With my new little cable, and honestly the last piece of the puzzle at this point that I could try with this case, I plugged it in and hoped for the best and ... nothing.  Still no initial fan spin, no POST, no love.  I took everything out and replaced the original Zotac (with the same RAM, too), plugged everything in, and of course, it started up just fine.  So, at least I know the case and power supply are still okay.

3677S

It's about this time that I finally realize that perhaps I should try my second Mini-ITX case instead, a Morex that I got from Logic Supply.  At first I kind of scoffed at the idea, since the Silverstone is by far the better of the two, and if it didn't work in that one, there was little chance it'd work in the economic model.  I was wrong, though.  It powered up just great, and worked fine.  So, now I'm really lost as to why.  I still suspect that there is something funky about the power supply on the Silverstone case, and I'm currently toying with the idea of replacing it myself.  It'd certainly be cheaper than getting a new case.

So, I decided to move my hardware setup around, and keep the new Zotac in this smaller case.  The only problem was that it didn't have as good an airflow, with the only real ventilation on the sides.  That would (and does) work fine with my fanless VIA C7s, but not here.

After setting up the system and playing around with the box, I was extremely happy with the performance.  I watched all my HD trailers in 1080p a couple of times each, with VDPAU and the picture was gorgeous.  It was great, and would have worked wonderfully if the motherboard wasn't running so hot.

The problem was that the heatsink on the northbridge (I think that's the right term, I'm not a total hardware geek) would get really, really hot.  The CPU itself was running really cool, since it had its own fan, it was just fine.  I didn't realize there was a problem until I came in to watch TV shortly I think the day after I had set it up, and the box was turned off.  It was just after all the intial setup and testing stages, so I assumed that I had just turned it off and forgotten.  But as I was watching some video, it shut itself off.

I took the top of the case off to see if I could figure out what the problem was, and that's when I nearly scalded myself touching the heatsink.  It seemed kind of flimsy and cheap to start with, and I was kind of surprised to see how crappy it looked, finally giving it a good look, and comparing it mentally to the other Minis I have.

I rebooted and went into the BIOS menus to see what the temperatures were looking like.  The northbridge was running at 66 C, which is 150 F.  Again, I don't know too much about hardware, but I was pretty sure they're not supposed to get that hot.  I left the top of the case off to let it cool down, and kept it running.  Coming back later, I saw that it had dropped to 48 C.  I rebooted, went back into my OS and watched plenty of video, and it was chugging along great since then.  So, it seems like it just needs some good airflow, and will probably be reasonably happy.

That leaves me with the problem of what to do next.  Technically, I could leave it in the Morex case, without a cover and expose it to dust and who knows what else is floating around my house, or I can try fix the Silverstone case just so I can use this board.

At this point, I'm a little tired of throwing so much money towards the problem, especially when it all should have worked in the first place.  Add to that that the new Mini-ITX I got is really the first-generation of this type of arrangement, and the nvidia ION is the one that is replacing this.  Aside from the Intel Atom CPU, I probably wouldn't have a problem with it, and so I'm also considering replacing it with that one.

I'm still not sure what to do, and part of me is leaning towards a third option -- wait for a year or so for the hardware specs to improve.  I'm not dead-set on having HD capable playback just yet, and it's more in the realm of "would be nice to have" instead of "really useful" right now.  Besides, even before I could start getting some content, I need to expand my server's capacity issues, as my media storage is almost at 100%.  I think I have something like 40 GB free space left.  Even then, I still need to get a Blu-ray ROM so I can rip my movies, and I only have about 12 Blu-rays right now to start with.

So, everything right now just tells me to wait.  Which is real shame, considering this board is very nice -- once it's given the proper TLC.  I think this is one of those situations where I would really like the whole thing to work out, but I imagine at the same time that the issues that are causing me problems right now, will only give me headaches later on down the road.  It's probably better to just cut my losses now and save up for something better later.

Gunnar Wrobel a.k.a. wrobel (homepage, stats, bugs)
layman moves from subversion to git (October 12, 2009, 13:49 UTC)

In preparation for layman-1.2.4 the repository has been converted from subversion to git. The new repository can be found at git://layman.git.sourceforge.net/gitroot/layman/layman

October 10, 2009
Diego E. Pettenò a.k.a. flameeyes (homepage, stats, bugs)
And finally, the Portage Tree overhead data (October 10, 2009, 17:35 UTC)

I’m sorry it took so long but I had more stuff to write about in the mean time, and I’m really posting stuff as it comes with some pretty randomly ordered things.

In the post about the Portage Tree size I blandly and incompletely separate the overhead due to the filesystem block allocation from the rest of size of the components themselves. Since the whole data was gathered a night I was bored and trying to fixing up my kernel to have both Radeon’s KMS and the Atheros drivers working, it really didn’t strike as a complete work, and indeed it was just to give some sense of proportion on what is actually using up the space (and as you might have noticed, almost all people involved do find the size, and amount, of ChangeLogs a problem). Robin then asked for some more interesting statistics to look at, in particular the trend of the overhead depending on the size of the filesystem blocks.

This post, which comes after quite some angst is going to illustrate the results, although they do tend to be quite easy to see with the involved graphs. I hope this time the graphs do work for everybody out of the box; last time I used Google Docs to produce the output and linked it directly, this saved a lot of traffic on my side, but didn’t work for everybody. This time I’m going to use my blog’s server to publish all the results, hoping it won’t create any stir on it…

First of all, the data; I’m going to publish all the data I collected here, so that you can make use of it in any way you’d like; please note that it might not be perfect, knowledge about filesystems isn’t my favourite subject, so while it should be pretty consistent, there might be side-effects I didn’t consider; for instance, I’m not sure on whether directories have always the same size, and whether that size is the same for any filesystem out there; I assume both of these to be truths, so if I did any mistake you might have to adapt a bit the data.

I also hasn’t gone considering the amount of inodes used for each different configuration, and this is because I really don’t know for certainty how that behaves, and how to find how much space is used by the filesystem structures that handle inodes’ and files’ data. If somebody with better knowledge of that can get me some data, I might be able to improve the results. I’m afraid this is actually pretty critical to have a proper comparison of efficiency between differently-sized blocks because, well, the smaller the block the more blocks you need, and if you need more blocks, you end up with more data associated to that. So if you know more about filesystems than me and want to suggest how to improve this, I’ll be grateful.

I’m attaching the original spreadsheet as well as the tweaked charts (and the PDF of them for those not having OpenOffice at hand).

Overhead of the Gentoo Tree Size

This first graph should give an idea about the storage efficiency of the Gentoo tree changes depending on the size block size: on the far left you got the theoretical point: 100% efficiency, where only the actual files that are in the tree are stored; on the far right an extreme case, a filesystem with 64KiB blocks… for those who wonder, the only way I found to actually have such a filesystem working on Linux is using HFS+ (which is actually interesting to know, I should probably put in such a filesystem the video files I have…); while XFS supports that in the specs, the Linux implementation doesn’t: it only supports blocks of the same size of a page, or smaller (so less than or equal to 4KiB) — I’m not sure why that’s the case, it seems kinda silly since at least HFS+ seems to work fine with bigger sizes.

With the “default” size of 4KiB (page size) the efficiency of the tree seems to be definitely reduced: it goes down to 30%, which is really not good. This really should suggest everybody who care about storage efficiency to move to 1KiB blocks for the Portage tree (and most likely, not just that).

Distribution of the Gentoo Tree Size

This instead should show you how the data inside the tree is distributed; note that I dropped the 64KiB-blocks case, this because the graph would have been unreadable: on such a filesystem, the grand total amounts of just a bit shy of 9GB. This is also why I didn’t go one step further and simulated all the various filesystems to compare the actual used/free space in them, and in the number of inodes.

This is actually interesting, the fact that I wanted to comment on the chart, not leaving them to speak for themselves, let me find out that I did a huge mistake and was charting the complete size and the overhead instead of the theoretical size and the overhead in this chart. But it also says that it’s easier to note these things in graphical form rather than just looking at the numbers.

So how do we interpret this data? Well, first of all, as I said, on a 4KiB-sized filesystem, Portage is pretty inefficient: there are too many small files: here the problem is not with ChangeLog (who still has a non-trivial overhead), but rather with the metadata.xml files (most of them are quite small), the ebuilds themselves, and the support files (patches, config files, and so on). The highest offender of overhead in such a configuration is, though, the generated portage metadata: the files are very small, and I don’t think any of them is using more than one block. We also have a huge amount of directories.

Now, the obvious solution to this kind of problems, is, quite reasonably actually, using smaller block sizes. From the reliability chart you can see already that without going for the very-efficient 512 bytes blocks size (which might starve at inode numbers), 1 KiB blocks size yields a 70% efficiency, which is not bad, after all, for a compromise. On the other hand, there is one problem with accepting that as the main approach: the default for almost all filesystems is 4KiB blocks (and actually, I think that for modern filesystems that’s also quite a bad choice, since most of the files that a normal desktop user would be handling nowadays are much bigger, which means that maybe even 128KiB blocks would prove much efficient), so if there is anything we can do to reduce the overhead for that case, without hindering the performance on 512 bytes-sized blocks, I think we should look into it.

As other have said, “throwing more disks at it” is not always the proper solution (mostly because while you can easily find how to add more disk space, it’s hard to get reliable disk space. I just added two external WD disks to have a two-level backup for my data…

So comments, ideas about what to try, ideas about how to make the data gathering more accurate and so on are definitely welcome! And so are links to this post on sites like Reddit which seems to have happened in the past few days, judging from the traffic on my webserver.

Donnie Berkholz a.k.a. dberkholz (homepage, stats, bugs)
links for 2009-10-10 (October 10, 2009, 12:02 UTC)


Robin Johnson a.k.a. robbat2 (homepage, stats, bugs)

solar was asking about release statistics, so I grabbed the current data from Bouncer. The nearly 34k releases for 10.0 is just in the 5 days that it's been out. I included the various architetures that were part of each released 'product', to make some degree of comparision possible.

WhatHitsArches
2005.1
installcd-minimum 228561alpha,amd64,hppa,ia64,ppc,ppc64,sparc64,x86
installcd-universal 374388alpha,amd64,hppa,ppc,sparc64,x86
packagecd 162537alpha,amd64,ppc,ppc64,sparc64,x86

2006.0
livecd 242422x86
minimal 287496alpha,amd64,hppa,ia64,ppc,ppc64,sparc64,x86
packagecd 42572amd64,ppc-g4,ppc-ppc,sparc64
packagecd-32ul 10909ppc64
packagecd-64ul 2981ppc64
universal 111359alpha,amd64,hppa,ppc,ppc64,sparc64

2006.1
livecd 307481amd64,x86
minimal 330505alpha,amd64,hppa,ia64,ppc,ppc64,sparc64,x86
packagecd 39118ppc,ppc-g3,ppc-g4,ppc64,ppc64-g5
universal 122280alpha,hppa,ppc,ppc64,sparc64

2007.0
bt-http-seed 72980ALL
livecd 411958amd64,x86
minimal 496943alpha,amd64,hppa,ia64,ppc,ppc64,sparc64,x86
packagecd 27593ppc-g4,sparc64
universal 137554hppa,ppc,ppc64,sparc64

2008.0_beta1
livecd 19426amd64,ppc64,x86
livedvd 4amd64,x86
minimal 14069alpha,amd64,hppa,ia64,ppc64,sparc64,x86
universal 1745ppc64,sparc64

2008.0_beta2
livecd 37771amd64,x86
livedvd 17842amd64,x86
minimal 55745alpha,amd64,hppa,ia64,ppc,sparc64,x86
universal 3142ppc,sparc64

2008.0
livecd 477934amd64,x86
minimal 406531alpha,amd64,hppa,ia64,ppc,sparc64,x86
packagecd 12308sparc64
universal 83600hppa,ppc,sparc64

10.0_pre20090926-1952
livedvd 4870amd64,x86

10.0
livedvd 33703amd64,x86

10.1
livedvd 0amd64,x86

Notes
  • 2008.* has the LiveDVD's pulled from mirrors due to size complaints.
  • bt-http-seed was an (failed) experiment with a set of mirror URLs for trying to load-balance Bittorrent's HTTP seeding
  • Bouncer really needs replacing, but there's nothing really good to do so that I'm aware of. mod_sentry isn't nice. Other suggestions welcome. Should support products, architectures within products, seperate check/serve URLs, detailed hit recording for analysis.

David Abbott a.k.a. dabbott (homepage, stats, bugs)
Gentoo Ten Live DVD 10.1 (New Release) (October 10, 2009, 01:41 UTC)

After numerous bug fixes and enhancements the Ten Team would like everyone to try out the 10.1 release.
Downloads
Gentoo Ten Live DVD 10.1 x86
Gentoo Ten Live DVD 10.1 amd64

A FAQ is available to assist you. We have also started a thread in our Forum. Please post any BUGS you encounter.

Thank you for your support.

October 09, 2009
Diego E. Pettenò a.k.a. flameeyes (homepage, stats, bugs)
Is ohloh here to stay? (October 09, 2009, 14:53 UTC)

You probably know ohloh — it’s a website that provides statistical information about a number of Free Software (but not limited to) projects, fetching data from various source repositories and allowing developers to “aggregate” their commit statistics; it works partly like cia but rather than receiving commit messages, it fetches the whole commits (since it analyses the code as well as the commits).

While I like it, and blogged about it before, I do start having some reserves to it; there are quite a few problems related to it that made some of its useful features moot, and at the same time it seems like it grew some extra features (like download servers) that seem, nowadays, pretty pointless.

Don’t get me wrong, I love the idea itself; and I’m pretty sure developers love statistics, but as I said there are quite a few issues, especially when you add to the story some things like the huge increment in use of distributed version control systems (Git, Bzr, Mercurial, …), and the increased popularity of identi.ca among free software developers. I’m afraid that some of these environment changes are going to kill off ohloh by this pace, mostly because it really doesn’t seem like it’s going to adapt anytime soon.

You might remember my post about the journal feature which was, at the end, simply a tweaked microblogging application; I say tweaked because it had one fundamental feature: hash-tags weren’t simply invented, they directly related to the ohloh projects. Unfortunately, even I abandoned that feature. The reason for that was not only that it seemed to fail to reach the critical mass for such services to be useful, but also that the implementation had quite a few problems that made it more of a nuisance than something useful. The Jabber bot happened to die more often than not, and even when it worked sometimes it failed to update the website at all. I don’t know whether a proper API was defined for that, but it didn’t get support from desktop microblogging software like gwibber for instance, which could have helped build-up the critical mass needed.

Another issue is with the explosion of DVCS, as I said: since now any people wanting to branch a software to apply some fixes or changes is able to have their own repository, there has to be some filtering in which repositories do get enlisted in ohloh: who decides which repositories are official? This is probably one of the reasons why managers were added to the projects; unfortunately this came probably in too late, and as far as I can see most projects lack a manager at all.

And another problem still: seems like any project that involves changing something in the Linux kernel ended up importing a whole branch of the Linus repository (for obvious reasons), which makes my contributions list projects such as Linux ACPI LinuxSH LTTng OpenMoko (this actually created a bit of a fuzz with a colleague of mine some time ago) OpenEZX KVM linux-omap and linux-davinci and that’s just for one patch, mostly (a few already picked up my second named patch to the kernel, which is even more trivial than the first one; I got a third I’ll have to re-send around sooner or later).

But this by itself would just mean that, like many other projects, of all possible kind out there, ohloh has problems to face and solve, no sh*t Sherlock. Why do I go a step further saying that it might not be around for long still? Well, some time ago, I think it was in relation to the blog post I named above about journals, I was contacted by Jason Allen which is ohloh’s head, who asked my help to clear out some problems with indexing gentoo’s repositories (the problem still exists, by the way, there is a huge timeframe indexed but nowhere near the 10 years we just celebrated). I was able for a while to contact him when some problem came up with ohloh and that was fine; unfortunately I have been unable to contact him for a few months now (around the time SourceForge acquired them if that says anything), and this includes pinging him on ohloh’s own journal feature. I hope he’s alright, and simply too busy with the joined stuff to answer, but still that doesn’t profile well for ohloh as a website.

There are other problems as well, don’t you worry: for instance, the projects allow to set up feeds to publish in the project’s page: they used to have problem with UTF-8 and thus garbled my surname (not the only ones mind you), but this became even worse with time because requests go out without an User-Agent (which means my current mod_security configuration is rejecting the requests); of course I could whitelist the ohloh’s server IP address, but… it doesn’t look like a complex bug to fix does it?

And finally, the other day I was considering making use of the ohloh data to prepare a script showing a tagcloud-like list of projects I contribute to, I wanted something that could show easily what I really do… ohloh makes available an API that most likely had everything I needed, but, for a website that proposes you to “Grok Open Source” (that’s what the homepage says), having a clause like this in the API documentation seems a bit… backwards:

It is important not to share API keys. In order to access or modify account data, your application must be granted permission by an individual Ohloh account holder. This permission is granted on a per-key basis.

Now, I know that it’s pretty difficult for webservices to properly authenticate applications using services, and thus why API keys are used; but at the same time, doesn’t this block the whole idea of open-source clients using those APIs?

October 08, 2009
Kenneth Prugh a.k.a. ken69267 (homepage, stats, bugs)
A failing battery? (October 08, 2009, 17:22 UTC)

So I’ve been noticing that along with the previously mentioned problem of GNOME not knowing when my AC power is plugged in or not, my battery’s life seems to have been cut in almost a third. I used to get approximately 3 hours of runtime on battery, but lately I have been getting just about 1 hour. The time to charge the battery to full has also increased by a pretty significant amount of time than I remember.

GNOME’s battery applet and acpi -V show the battery doing fine up till about 65% charge and then it just plummets to 5% battery and low battery warnings appear. That’s quite a drastic drop.

For instance, here’s some of the graphs from GNOME today of my battery:

bat0

5 minutes later:

bat1

Looking at those graphs makes me believe that my battery may be standing on its last leg, but I’m not really that knowledgeable about laptop batteries.

Is it time for me to start looking for a replacement battery at this point? Or is there possibly some way to salvage this battery. It’s not really that old, about a year old if I remember correctly. Is it worth trying to recalibrate the battery or is it just shot? Any help is appreciated.

Steve Dibb a.k.a. beandog (homepage, stats, bugs)
utosc: distro round table (October 08, 2009, 15:18 UTC)

Assuming all goes well today (I don't fall into an alternate universe), I'll be taking part in the Utah Open Source Conference a bit.  There is going to be a *nix Distribution Round Table discussion, and I'll be representing Gentoo Linux.  Yeehaw.

Please be sure to hold your applause until the end.

Acutally, to be honest, I'm a bit nervous, since I have no clue what I'm going to say, and I don't do well with crowds.  Should be interesting.  Maybe it'd be a good time to pitch Ubeantoo.

October 07, 2009
Diego E. Pettenò a.k.a. flameeyes (homepage, stats, bugs)
How special PAM supports gets added to Gentoo (October 07, 2009, 16:24 UTC)

You might wonder why the PAM support for special authentication method is somewhat lacking in Gentoo; the reason is that, mostly, I maintain PAM alone, which means that you get to use whatever I use myself most of the time. One of the things that I was very upset we didn’t support properly was the Smartcard/Token based authentication; unfortunately, while I got two smartcard readers in the past months to do some work, I hadn’t fetched a smartcard yet, and tokens seem to be quite difficult to find for end users like me.

Thanks to Gilles (Eva), I now have a token to play with, and that means I’m looking to write up proper support for token-based authentication (and thus, smartcard-based as well). This already started well, because I was able to get one patch (split in three) merged in pam_pkcs11 upstream (available in the gentoo 0.6.1-r1 ebuild), as well as cleaning up the ebuild to work just like it’s supposed to as a PAM ebuild (for instance not installing the .la files which are not used at all).

But since this is not yet ready to use, it’s easier if I show you how it works after a day or two of tweaking:

Yes today I was quite bored.

Please note that this is not really “production ready” in my opinion:

  • the pam_pkcs11 module uses the /etc/pam_pkcs11 directory for configuration, but almost all PAM modules use /etc/security for their configuration;
  • the pkcs11_eventmgr daemon has to be started by the user manually, but it uses a single, system-wide configuration file (/etc/pam_pkcs11/pkcs11_eventmgr.conf), this does not really seem to be the right way to handle it for me, but I’ll have to discuss that with upstream;
  • most likely we want to provide, based on USE flag or in a different ebuild, some scripts to handle the event manager more easily, for instance making it start on each X and console login, and making sure that the login is locked as soon as the key is removed;
  • the event manager polls for the card, which is using CPU and power for no real good reason; a proper way to handle this would require for udev to send signals on plug and remove so that the event manager can handle that; since the exact key needed is unlikely to be known at rules-generation time, this might require adding a central daemon monitoring all the smartcards and tokens and passing the information to registered event managers.

This mostly means that there’s going to be a long way to go before this is ready, and I’m pretty sure I’ll have to write a complete documentation on how to set it up, rather than just a blog post with a video, but at least it’s going to be feasible, at one point.

Please feel free to comment on whether the video is useful at all or not; I’m trying to experiment with less boring methods of explaining stuff related to Gentoo and free software in general, but I have no clue whether it’s working or not, yet.

October 06, 2009
Kenneth Prugh a.k.a. ken69267 (homepage, stats, bugs)
Gnome: Are we plugged in? (October 06, 2009, 15:19 UTC)

Lately I have been experiencing an annoying behavior from Gnome. I am on my laptops battery fairly often being a student, so going into powersave mode and the like is a must. This normally isn’t a problem and basically just works when I plug into/out of AC power.

In the past few weeks, however, I have been getting problems from Gnome. I will unplug the AC power and Gnome won’t recognize it and won’t adjust all my settings to conserve power. Sometimes after a few minutes Gnome will realize it, but there have been occurrences where I have drained the entire battery flat and it still believed it was plugged in. Sometimes suspend/resuming will cause it to realize it is in battery mode but not always.

So far I have not found a solution for this or an absolute way to poke Gnome to realize it’s on battery power. I’m hoping it will just magically fix itself in the next few days.

Diego E. Pettenò a.k.a. flameeyes (homepage, stats, bugs)
This is crazy, man! (October 06, 2009, 09:43 UTC)

And here, the term “man” refers to the manual page software.

I already noted that I was working on fixing man-db to work with heirloom-doctools but I didn’t go in much details about the problems I faced. So let me try to explain it a bit in more detail, if you’re interested.

The first problem is, we have two different man implementations in portage: sys-apps/man and sys-apps/man-db. The former is the “classical” one used by default, while the latter is a newer implementation, which is supposedly active and maintained. I say supposedly because it seems to me like it’s not really actively maintained, nor tested, at all.

The “classic” implementation is often despised because, among other things, it’s not designed with UTF-8 in mind at all, and even its own output, for locales where ASCII is not enough, is broken. For instance, in Italian, it outputs a latin1 bytestreams even when the locale is set to use UTF-8. Confusion ensures. The new implementation should also improve the caching by not using flat-files for the already-processed man pages, but rather using db files (berkeley or gdbm).

So what’s the problem with man-db, the new implementation? It supports UTF-8 natively, so that’s good, but the other problem is that it’s only ever tested coupled with groff (GNU implementation of the (n)roff utility), and with nothing else. How should this matter? Well, there are a few features in groff that are not found anywhere else, this includes, for instance, the HTML output (eh? no I don’t get it either, I can tell that the nroff format isn’t exactly nice, and I guess that having the man pages available as HTML makes them more readable for users, but why adding that to groff, and especially to the man command? no clue), as well as some X-specific output. Both those features are not available in heirloom, but as far as I can see they are so rarely used that it really makes little sense to depend on groff just because of those; and the way man-db is designed, when a nroff implementation different from groff is found, the relative options are not even parsed or considered; which is good to reduce the size of the code, but also requires to at least compile-test the software with a non-groff implementation, something that upstream is not currently doing it seems.

More to the point, not only the code uses broken (as in, incomplete) groff-conditionals, but the build system does depend on groff as well: the code to build the manual called groff directly, instead of using whatever the configure script found, and the testsuite relied on the “warnings” feature that is only enabled with groff (there was one more point to that: previously it returned error when the --warnings option was passed, so I had to fix it so that it is, instead, ignored).

But it doesn’t go much better from here on: not only man-db tries to use two output terminals that are no defined by the heirloom nroff (so I hacked that around temporarily on heirloom itself, the proper fix would be having a configuration option for man-db), but it also has problems handling line and page lengths. This is quite interesting actually, since it took me a long time (and some understanding of how nroff works, which is nowhere near nice, or human).

Both nroff and groff (obviously) are designed to work with paged documents (although troff is the one that is usually used to print, since that produces PostScript documents); for this reason, by default, their output is restricted width-wise, and has pagebreaks, with footers and headers, every given number of lines. Since the man page specification (command, man section, source, …) are present in the header and footer, the page breaks can be seen as spurious man page data in-between paragraphs of documentation. This is what you read on most operating systems, included Solaris, where the man program and the nroff program are not well combined. To avoid this problem, both the man implementations set line and page breaks depending on the terminal: the line break is set to something less than the width of the terminal, to fill it with content; the page break is set as high as possible to allow smooth scrolling in the text.

Unfortunately, we got another “groff versus the world” situation here: while the classic nroff implementation sets the two values with the .ll and .pl roff commands (no, really you don’t want to learn about roff commands unless you’re definitely masochist!), groff uses the LL register (again… roff… no thanks), and thus can be set with the command-line parameter -rLL=$width; this syntax is not compatible with heirloom’s nroff, but I’m pretty sure you already guessed that.

The classic man implementation, then, uses both the command and the register approach, but without option switches; instead it prepends to the manpage sources the roff commands (.ll and .nr LL that sets the register from within the roff language), and then gets the whole output processed; this makes it well compatible with the heirloom tools. On the other hand, man-db uses the command-line approach which makes it less compatible; indeed when using man-db with the heirloom-doctools, you’re left with a very different man output, which looks like an heirloom in itself, badly formatted and not filling the terminal.

Now we’re in quite a strange situation: from one side, the classic man implementation sucks at UTF-8 (in its own right), but it works mostly fine with heirloom-doctools (that supports UTF-8 natively); from the other side we got a newer, cleaner (in theory) implementation, that should support UTF-8 natively (but requiring a Debian-patched groff), but has lock-ins on groff (which definitely sucks with UTF-8). The obvious solution here would be to cross-pollinate the two implementations to get a single pair of programs that work well together and has native UTF-8; but it really is not easy.

And at the end… I really wish the roff language for man pages could die in flames, it really shows that it was designed for a long-forgotten technology. I have no difficulty to understand why GNU wanted to find a new approach to documentation with info pages (okay the info program suck; the documentation itself doesn’t suck as much, you can use either pinfo or emacs to browse it decently). Myself, though, I would have gone to plain and simple HTML: using docbook or some other format, it’s easy to generate html documentation (actually, docbook supports features that allows for the same documentation page to become both a roff-written man page, and an HTML page), and with lynx, links, and graphical viewers, the documentation would be quite accessible.

October 05, 2009
Diego E. Pettenò a.k.a. flameeyes (homepage, stats, bugs)

I say “default editor” in quotes because Gentoo really does not have a default editor, but rather a fallback-editor for whenever the users hadn’t chosen one themselves. And this is why stuff like the stage3, sudo, openrc and so on default to that when $EDITOR is unreliable (that is, until we can move to a full-fledged wrapper script).

Paul, in the previous post explained it quite well, albeit briefly, but since some other people asked me about that again, I’ll quote him and then go in a bit more of details:

… Third nano was kept as the default because it is small, straightforward, and easy to get out of when you don’t know it (let’s face it neither vi(m) nor (x)emacs is that easy to get out of). Fourth, by having the EDITOR/VISUAL variables point to nano (which is installed by stage2 as well as stage3) things would be working (although probably not optimal) out of the box. …

Indeed Paul speaks well: neither vi (or vim) nor emacs (or xemacs) is going to work. Why is that? Some people even goes as far to say that “it’s called *vi*sudo“ and “vi is the default Unix editor”. At the same time, I wouldn’t be surprised to hear “Emacs is the default GNU editor”. Well, let’s decompose it in two different problems.

Technical problem: the system set is messy already (and this is also “thanks” to my own pambase creation — which is, though, a solution to a previous problem). The packages that do enter the system set should be, whenever possible, small and with little dependencies. This includes, obviously, USE-optional dependencies, since when they are enabled, the dependencies also become part of the system set (like it happens with gnome and pambase). The dependency tree of nano is near invisible, while those of both vim and emacs are quite long (sure there are things like elvis, nvi, zile and jove, but this will bring us to the next point…).

Reality problem (or flame-retardant method): there is no way on Earth that any average number of people will be accepting to use the same editor as default, when taken from the list of “most popular” editors. Hey we cannot even find consensus among the three developers of lscube (I’m using Emacs – yeah I’m an Emacs user, burn me – and my colleagues using VIM and Eclipse). If we were to choose vim, all Emacsen users will complain, if we were to use GNU Emacs, both vim and XEmacs users will complain, and so on so forth. So we use nano, which is likely to make unhappy the most people, but all in the equal amount.

There’s a corollary to the reality problem above: if we were to choose any of the lightweight variants that I named above, or more of them, most likely the problem would be more or less the same, since almost all people would be pretty unhappy with the choice and would then unmerge that and install their editor of choice. But it would most likely upset the two “main factions” unequally, which would make one feel discriminated against.

Newbie problem: finally, there is another note: both Emacs and VI (and respective clones) aren’t exactly the most user-friendly editors. A newbie user who has no clue how to work in Gentoo is unlikely to guess at first sight how to use either of them, while nano is pretty much the easiest thing you might find around. You can fight as much as you want about powerfulness (Emacs and VI are obviously much more powerful than nano) and you can fight about relative easiness of use (:w versus C-x C-w) but nano is going to win over both of them in that regard.

So no, we’re not going to change the default anytime soon.

Steve Dibb a.k.a. beandog (homepage, stats, bugs)
star trek on blu-ray: wrath of khan (October 05, 2009, 16:09 UTC)

Well, there's not much I can say about the second movie, since I got less than 15 minutes into it, and was so unimpressed, I gave up on it.  I probably should have given it a bit more time, now that I think about it, but I already sent it back to Netflix, ah well.  So, this will probably be a crappy review.

But, my video review is this -- it looked just like the DVD transfer.  It was nice, but nowhere near the picture quality of the first motion picture.  Not even close.  I could tweak my TV of course, and make the colors a bit brighter on the whole, but it just didn't have that Blu-Ray HD look and feel to it at all.

Maybe I got the wrong one, who knows?  There are *already* three versions of the movie out (one, two, three) on Blu-Ray.  It's possible that they are all the same version, just repackaged.  I'm pretty sure the one I got was from the first link.  Which, if that's the case, bummer, because they gave the video a 4.5 out of 5.  Hmm.  I'll probably  need to give it another chance sometime.  Maybe I just wasn't in the mood to watch it.  Who knows.

It's been mentioned, and I haven't done the research since I'm not really picky about this part, that the Blu-Ray version was not the director's cut of the movie.  Having seen the movie so many times, I don't doubt I've seen both versions, but I don't remember anything different standing out, so I have no idea what I'm missing.

Anyway.  I'll probably come back and visit this one again sometime.  The picture just looked grainy and dull to me, and I wasn't ready to sit through it if it wasn't going to the visual overhaul I was expecting.  Hopefully the next two do a bit better.

Gentoo Linux - Ten Years Compiling: 1999 - 2009 (October 05, 2009, 01:03 UTC)

Happy Tenth Birthday, Gentoo!

Gentoo Linux is proud to announce the immediate availability of a new, special edition LiveDVD to celebrate this monumental occasion. The LiveDVD features a superb list of packages, some of which are listed below.

  • System packages include: Linux Kernel 2.6.30 (with gentoo patches), Accessibility Support with Speakup 3.1.3, BASH 4.0, GLIBC 2.9, GCC 4.3.2. Binutils 2.18, Python 2.6.2, Perl 5.8.8, and more.
  • Desktop Environments and window managers include: KDE 4.3.1, GNOME 2.26.3, Xfce 4.6.1, Enlightenment 0.16.8.15, Openbox 3.4.7.2, Fluxbox 1.1.1, TWM 1.0.4, and more.
  • Office, graphics, and productivity applications include: OpenOffice 3.1.1, G/Vim 7.2.182, Abiword 2.6.4, GNUCash 2.2.9, Scribus 1.3.3.11, GIMP 2.6.4, Inkscape 0.46, Blender 2.49a, XSane 0.996, and much more.
  • Web browsers include: Mozilla Firefox (Minefield) 3.5.3, Arora 0.7.11, Opera 10.0, Epiphany 2.26.3, Galeon 2.0.4, Seamonkey 1.1.17, and other favorites.
  • Communication tools include: Pidgin 2.5.9, Quassel 0.5, Mozilla Thunderbird 2.0.23, Claws Mail 3.7.2, Ekiga 2.0.12, Qtwitter 0.7.1, irssi 0.8.13, and many more.
  • Multimedia applications include: Amarok 2.1.1, MPlayer 1.0_rc4, DvdAuthor 0.6.14, LAME 3.98.2, FFMPEG 0.5_p19928, GNOME-MPlayer 0.9.7, SMPlayer 0.6.6, and several others.

The Gentoo-Ten LiveDVD is available in two flavors, a hybrid x86/x86_64 version, and an x86_64-only version. The livedvd-x86-amd64-32ul-10.0 will work on x86 or x86_64. If your arch is x86, then boot with the default gentoo kernel. If your arch is amd64 boot with the gentoo64 kernel. This means you can boot a 64bit kernel and install a customized 64bit userland while using the provided 32bit userland. The livedvd-amd64-multilib-10.0 version is for x86_64 only.

Please select your architecture to be redirected to a mirror for download: x86amd64

A FAQ is available to assist you. We have also started a thread in our Forum. Please post any bugs you encounter.

In addition, we have some exceptional new artwork from Ben Stedman, and Gentoo Developer Alex Legler.

Thank you for your continued support,

Gentoo Linux Developers, The Gentoo Linux Foundation, and The Gentoo-Ten Project

October 04, 2009
Review progress (October 04, 2009, 22:39 UTC)

In overlay news, we are currently at 75% of completeness for the 2.28 release. Currently reviewed 46 ebuilds, at bit less than 55 to go.

In other news, if you get strange gnupg related failures, head over to bug #275291. We will apply patch when someone from gnome herd has a chance to get around it.

Update: fix typo

Mounir Lamouri a.k.a. volkmar (homepage, stats, bugs)
Gentoo/PPC needs you ! (October 04, 2009, 21:41 UTC)

Gentoo/PPC team is here to make sure packages are marked stable and are keyworded as soon as possible and without breaking the tree. Unfortunately, we can't manage the flow of bugs coming and the list is growing too quickly.
Stabilizing and keywording is a big work. Fauli have explained it a few weeks ago in a blog entry.

So if you have a PowerPC and you want to help, you can and we will appreciate it !
First of all, look at the Gentoo/PPC testing doc. Some things may be outdated, consider essentially the procedures.

I've made some bug lists to make the life of everybody easier:
- stabilization requests
- keyword requests
- security bugs

Please, refer to the Gentoo/PPC testing doc if you want to help on one of these bugs.

Do not hesitate to come see us on #gentoo-powerpc on freenode.

Diego E. Pettenò a.k.a. flameeyes (homepage, stats, bugs)
Household hardware (October 04, 2009, 19:42 UTC)

I have written before of my bad luck with my external hard drive, but there had been a few more more failures at my house, not related to computer hardware though, mostly related to household appliances: both the dishwasher and the washing machine decided to break up.

On the bright side the washing machine is under a 5-years warranty (I extended it when we bought it, my parents didn’t want to) and the dishwasher was quite cheap at the time. I’m going to replace the latter with a new AAA-class (highly energy efficient) appliance, possibly with programming support so that my mother can make smaller loads (for instance when she’s alone eating at home) or make it run early in the morning while we sleep. Since the problem, at least with the washing machine, is with the hardness of water (it’s full of calcium) I’m also considering adding a filter to the tap the washing machine is connected: the boiler already has one based on polyphosphate “salts” (not sure if they are actual salts, I’m sorry but my chemistry is not really that good), and it seems to work decently well; finding something that would be refilled with the same stuff is better since it’d be less stuff to buy, and keep at home.

Luckily there has been also good news: I finally replaced the light fixture in my room with a 4-way (from a shitty 3-way that always looked like falling down); the new fixture uses GU-10 sockets, and was designed to hold four 50W halogen lamps (which would give it a 200W total energy use, which is definitely too much for my bedroom). I bought instead four GU-10 LED lamps, 78 LEDs each, declared between 2.3 to 3W the lamp. They are bright! They are brighter than the three CFLs that I used to have at the beginning, which, total, consumed around 30W. Sure there is still the problem of cost (€47 of the four lamps, from Germany), and the size (the fixture had some glass container that was quite nice to the eye, but the LED lamp does not fit in it), but it seems like that kind of technology is really flying.

I’ll have to see if I can get more LED lamps around the house, saving money with energy efficiency on lights will probably allow me to hide the money I spend on computers turned on all day long…

2009 Gentoo 10 Screenshot Winners (October 04, 2009, 18:03 UTC)

Woot! Happy Birthday Gentoo. As part of the Birthday party today we announce the winning screenshots.

Thanks to everyone who entered the contest. There were 54 entries using 5 different window managers / desktop environments.

The Winners
  1. Quick23t Compiz Fusion
  2. ashtophet Fvwm 2.5.27
  3. Integer Fluxbox

For all the specifications and cool details please visit the winners page.

discuss this!

Diego E. Pettenò a.k.a. flameeyes (homepage, stats, bugs)
Explaining the sudo crapfest (October 04, 2009, 17:45 UTC)

Some of you might have noticed that I’ve been attacked in the past few days over a feature change bug (now unrestricted so you all can judge it for what it was) with sudo.

Let’s try to explain what the problem seems to have been with that bug: the sudo ebuild, since a long time ago, when it was maintained by Tavis Ormandy (taviso, of, among other things, ocert fame), changed the default editor used to nano. The reasoning for this is that you have to have a valid default editor in sudo, and that, after all, is what we ship in the stage3 as default editor, and what OpenRC sets as default editor if the user sets nothing else. I kept the same setting because, well, I could see the point in it; and I’m not a nano user, I don’t have a single nano executable on my main running systems: I use GNU Emacs for all my “heavy” editing, and zile (of which I’m a minuscule contributor from time to time) for the smaller stuff.

This is just the default editor used by sudo, but by no definition the only one. Indeed it’s mostly used in two places: visudo and sudoedit. The former, respects the EDITOR variable, with the usual rules, so if your root user has the EDITOR variable set to anything it’ll be used (this is also not a default, we pass explicitly the --with-env-editor option at ./configure); the only place where it’s not used, by default that is, is if you invoke sudo visudo, but not because we set the default to nano, but rather because sudo by default resets the environment. For what concerns sudoedit, it honours the EDITOR variable by default without us doing anything about it.

Why did we ask sudo to explicitly honour the EDITOR variable? Isn’t that unsafe? Well, not really. First of all, sudoedit is a special command that takes care of allowing an user to edit a file without running anything as root user, so the EDITOR will always be fired up with the same permission as the user running it (pretty cool stuff); and for what concerns visudo… if you allow an user to run visudo, they can easily set up their user to do anything at all, so the permission under which EDITOR runs is pretty much moot.

So why did I refuse to use the EDITOR variable in the ebuild? Well the reason is that I hate that particular dirty hack (because a dirty hack it is). Other ebuilds, like fcron, have been doing it, and I don’t like its use there either. The reason is that it makes package building relying on a variable that is not by default saved anywhere, and that might not really be the same between the build and host machines (just as a further example, I have different EDITOR settings between root and my user… if I were to build sudo right now_, with solar’s changes, with my usual method – sudo emerge with envkeep – I would get a build error: EDITOR="emacsclient -c"). If this is really a big concern, the proper solution is to have a proper virtual implementation of the editor: a /usr/libexec/gentoo-editor script that accepts just one parameter (a filename) and relies the call to the currently-selected editor via the EDITOR environment variable. Something like this:

#!/bin/sh

if [ $# != 1 ]; then
    echo "$0 accepts exactly one parameter." >/dev/stderr
    return 1
fi

if [ "x$EDITOR" = "x" ]; then
    echo "The EDITOR variable must be set." >/dev/stderr
    return 1
fi

exec "$EDITOR" "$1"

Note: I wrote this snippet right at my blog, I haven’t tested, checked, re-read it at all.

This would allow ebuilds to properly set a default (or even a forced default!) in their configuration stages, without getting in the way of users’ choices.

Now, this is going to require a bit of work; the reason for that is that you have to make sure that it works standalone, that it works with the packages that would like to use it, and most likely you want to make available a “safe-editor” script as well, to enable eventual safe modes where shell-escape (as well as opening random files) is disabled, for those applications that do open the editor as a different user. Since I have never seen much point in pushing this further (I have a long TODO list of stuff much more important for QA, Gentoo and users as a whole), I haven’t done anything about it before, and I didn’t want to start that. But hey if somebody wanted to contribute it, I would have been the first one making use of it.

Now, how much in the way of users I have been by passing --with-editor=/bin/nano in the ebuild? I would sincerely say very little. Do you want to change the default at build time? Take your “How Gentoo Works” handbook out and look up in the index the topic EXTRA_ECONF. It’s a variable. It allows you to pass further options to econf. Options to ./configure (which is what econf wraps around) are positional: the last one passed is the one that “wins”.

Too much work to use EXTRA_ECONF each time you merge sudo?

# mkdir -p /etc/portage/env/app-admin
# echo 'EXTRA_ECONF=\'$EXTRA_ECONF --with-editor="${EDITOR}"\'' >> /etc/portage/env/app-admin/sudo

It really isn’t that dificult, is it?

And what really ticked me off is users, which, as precious as they are, are still just users (in this case not even a well-known power user) telling me what the “Gentoo way” is… I think I know pretty well the Gentoo way, given I’ve been a major developer for the most part of the past five years, I’m one of those trying his best to keep everything up to date and maintained, I’m the one who’s running his own workstation to make sure that Gentoo packages do build out of the box.

Health status report (October 04, 2009, 16:48 UTC)

For hose who’re still worried after my latest health post I have good news finally. In the past three weeks my blood sugar levels kept between 62 and 118 mg/dL which is definitely not bad. This is, though, while I’m taking both metformin and glibenclamide pills (400+2.5g each meal). I also increased my usual exercise, thanks to Nintendo’s Wii Fit (the best way to stop a geek from being sedentary: give him a chart to follow!).

My eyesight is, though, still fluctuating, although the €65 glasses I bought are definitely useful hen reading, especially stuff written quite small, I’m now using fewer days than I expected them to be used. They are also only for near sight obviously, so I can only use them to read or write, but that’s also fine. After all, they are temporarily and I paid them quite less than the ones I used before, even though the lenses are quite huge.

All in all, I cannot really complain at how things are going, if not for the fact that I’m really sleeping too little, between one thing and another; last night (at the time I’m writing) I was up till 5am to fix my radeon’s driver installation (and I just now remembered that I haven’t opened two bugs for it yet!), and the night before I was up till 3am to prepare charts for some Gentoo-related analysis.

This is mostly why I start to have a short fuse with people who attack me for the work I’m doing. I’m not expecting all the users to be thankful, and I know a lot will always complain about something, see the whole XMMS crap-spreading, but really it gets old after a while, given I’m not paid to do what I do already.

Josh Saddler a.k.a. nightmorph (homepage, stats, bugs)
R700, KMS, 3D, SSD, and other hardware (October 04, 2009, 08:37 UTC)

Gosh, just look at all the buzzwords in the title!

As you may have guessed, I'll be talking a bit about the recent developments on the FOSS drivers for RadeonHD cards, specifically for R700 cards. And some other hardware stuff.

Radeon

Yesterday, October 3, I made some big ol' changes to my workstation.

I decided to try out the new video driver stack that all the kids have been talking about. Kernel Mode Setting, git Mesa/xf86-video-ati/libdrm, git kernel 2.6.32_rc1-git3. All that jazz. I wanted to see if the 3D and KMS features were really working on my RadeonHD 4550 or not. I normally run a stable graphics stack, with ~arch Mesa/x86-video-ati/libdrm where necessary to keep up on 2D acceleration and features.

This was a big leap for me. So I first consulted some of the X11 team members, remi and nirbheek, who were quite helpful. I installed the latest git-sources kernel, which at the time was 2.6.32_rc1-git3. Mike Pagano has since added -git5. Next, I downloaded the individual -9999 ebuilds for the git master packages from the X11 overlay, stuck 'em in my local overlay, and merged 'em. Only thing left to do was reboot.

Lemme tell ya -- KMS in action is awesome. The console output is just beautiful, and there's no more flickering when SLiM and Xfce load.

I did notice some minor graphical corruption of the default mouse pointer. However, the corruption isn't present when using any pointer but the default "arrow", and it also isn't seen when hovering inside a Firefox window. I was told this is because Firefox uses its own cursors. Anyway, I reported the bug upstream.

Disclaimer: I know glxgears isn't a benchmark. But folks always want to know its results anyway. I tried running glxgears, which gave me a result of over 1300FPS with desktop compositing activated. My window manager is xfwm4, so all compositing is via Xrender, not OpenGL. Disabling compositing resulted in a 500FPS boost to over 1800FPS. What's this mean? Who knows. Probably nothing. Moving on.

I took the advice of my fellow developers on IRC and installed quake3-demo. Couldn't run it, though. It blanked the screen, then a message from my LCD firmware appeared, some kind of "input not supported" or "input not detected" error. It slowly repeated the window, drawiing it from center to the top right. I had to Ctrl-Alt-Bksp to get to the console. It also locked up SLiM in the background, pegging one of my CPU cores at 100%. At this point, I rebooted just to test that KMS was still working, then called it a night.

Today, I revisited my pointer corruption bug tried the workarounds posted by Alex Deucher. To my surprise, each one worked! Booting with radeon.modeset=0 removes the glitch, though it makes each boot extremely ugly, of course. Specifying EXANoDownloadFromScreen "true" in /etc/X11/xorg.conf also fixes the corrupted pointer, though it may also be slowing down all screen drawing operations by the tiniest bit. The jury's still out on that one; it may just be my imagination. I decided to keep this second fix, as KMS is just too glorious to throw out. I like pretty boots.

I also revisited quake3-demo, since I found some pointers on the Phoronix forums that had a workaround, which is to run OpenGL applications prefixed by LIBGL_ALWAYS_INDIRECT=1. To my surprise, this worked nicely. I tested resolution has high as 900-something by 720. My screen is 1440x900, but I haven't felt like pushing it that far, yet. The game is fluid and playable. I need to figure out how to display FPS so I can properly record what I'm seeing.

With the success of Q3demo, I remembered that QuakeLive has recently added Linux support. I installed the add-on for Firefox and tried it out. Works nicely, though I'm also running Firefox with LIBGL_ALWAYS_INDIRECT=1 just to be sure. As Alex Deucher and John Bridgman have pointed out on the Phoronix forums, that variable really isn't the safest thing to do, since if something crashes it can take down the whole X server, not just the application. However, it's also the only way I get working 3D games.

QuakeLive is pretty playable, though the framerates in a few places aren't smooth -- I can't tell if this is because of my card's capabilities, or the driver stack, or the whole weird idea of playing a 3D first-person shooter inside a web browser. :) The big problem with QuakeLive is that the sound is terribly distorted: the voices are greatly drawn-out and slowed down, like playing an old tape recorder at 1/4 speed. There are some solutions on the QL forums, but they're mainly for Ubuntu/Pulseaudio users. I haven't found anything that works for me, yet. The effects and music are okay; it's just the voices that lag horribly.

I've also installed the latest Nexuiz, version 2.5.2, in anticipation of future testing. One of these days I'll reinstall UT2004, but I haven't read any succesful reports of that game on R700 cards. There's a lot of testing to do in the future!

Overall, I'm thrilled with the new driver hotness for my ATI card. I bought it specifically because I knew the 2D support at the time was excellent, and because there would be so many good things coming down the way for other features, including 3D acceleration. (Yes, just like the latest XKCD strip. I swear, it's like that guy listens to everything I say and watches everything I do. It's really spooky!)

Hats off to all the developers for making it happen. Many thanks!

SSD

After August's fiasco with a defective SSD, I decided to use my refund from the RMA and order a different SSD a few days ago. This time I've settled on a SanDisk enterprise SSD from an HP blade server. Only cost $49, no shipping charges. Brand new. eBay for the win.

It packs 16GB of SLC flash, which makes it perfect for mounting /usr/portage and /var on it. This way I can feel free to sync whenever I want, instead of only once a week or more. My system drive uses MLC flash, so I've been trying to ease the write load on it, which means putting the high-write activity on a dedicated disk.

The SanDisk SSD "only" has sustained reads/writes at 60MB/sec, but that's plenty for syncing Portage, as the real limiter is not how fast data can be dumped to the disk, but how fast the rsync servers can send it to my box. Same for /var writes -- it's mostly just log files and some tiny temp things, as /var/tmp is already mounted on a RAMdisk. No large files that need >100MB/sec bandwidth. I'm lookin' forward to shovin' it in my box!

More hardware

Since September 28 was my birthday and all, I've been treating myself to various bits of cheap hardware. Like a replacement AC adapter for my DC PicoPSU. The current AC brick is rated at 102W, which is way more than I need, but the problem is that it spins up its tiny fan at only 50%-75% load. This means that opening up a bunch of tabs, compiling packages, playing Quake, watching large-sized Hulu videos and whatnot turns on the fan right away. And it's the world's most annoying fan. It's loud, whiny, it hisses, and it blows the bad smell of very hot electronics out into the room. Lemme tell you, hot plastic and PSU guts do not smell good.

I just ordered a replacement fanless adapter. This thing is high-quality, designed to run very cool. And it's rated at 150W output, meaning it can match my 150W PicoPSU. My max system draw is maybe 60W, but I'll have overhead room in case I ever feel like upgrading a key component somewhere.

I also bought a $40 wireless router, an Asus WL-520gU. I already have a WL-500gP v2, which I hacked and flashed with DD-WRT a long time ago. This new router is so that I can hook up my Xbox 360 to the network without having to run 50 feet of cable across the carpet. I chose the 520gU instead of the gC because the gU supports Xlink Kai, which seems prett cool to me, as I don't have a Gold Live account. Yay for tricky internets. Apparently it's pretty common to buy a cheap wireless router and put it into client mode, rather than buying the $100 official USB dongle . . . which doesn't even support WPA2-AES or any decent security. Asus routers are known for excellent open-source support, and I've had nary a complaint about my current one. Yay for Linux on routers! Yay for online gaming!

* * *

Oh yes, and before I forget, this month's Xfce desktop:

Space ice!

It's October, but my current desktop is so pretty (gallery link) I haven't felt the need to switch for the last couple of weeks. There's another clean version that just shows off the wallpaper in my devspace.

David Abbott a.k.a. dabbott (homepage, stats, bugs)
Podcast 64 The Making Of Gentoo Ten LiveDVD (October 04, 2009, 01:14 UTC)

Happy Birthday Gentoo
livedvd
The 10th anniversary Gentoo LiveDVD was made by the community for the community. It was created with the help of Gentoo developers from around the world and users alike. In this podcast I talk about some of the people and a brief discussion on how it came together.

Full Screenshot
Join us on freenode irc channel #gentoo-ten

LINKS:
Gentoo Ten Team
http://dev.gentoo.org/~dabbott/pr/gentoo-ten-team.txt
Gentoo Ten LiveDVD FAQ
http://www.gentoo.org/proj/en/pr/releases/10.0/faq.xml
Forum Post
http://forums.gentoo.org/viewtopic-t-793820.html
Gentoo Ten Wallpapers
http://www.gentoo.org/proj/en/pr/releases/10.0/graphics.xml

irc network freenode channel #linuxcrazy

LiveDVD (released Oct 4, 2009)
http://www.gentoo.org/main/en/where.xml

Download

ogg

mp3

specs

October 03, 2009
Jeremy Olexa a.k.a. darkside (homepage, stats, bugs)
Re-locating a linode installation (October 03, 2009, 23:02 UTC)

I recently had a bit of downtime on my linode. If you are wondering what a 'linode' is, check out my review or the website. And a big thank you to the folks that used my referral code when they got setup with linode themselves, you guys rock!

So, about my recent 1/2 day downtime. It was self-inflicted because I wanted to move to a different datacenter. I moved my linode from Newark, NJ to Dallas, TX. It is quite a long story, but it boils down to a problem with my ISP (Comcast). I was only able to pull 100K/s from the Newark datacenter and 2-3M/s from the others. This was unacceptable. I tried to get it escalated past Comcast's frontline support but they kept asking me questions like "Do you use a router? If so, each computer only gets 1/2 the speed" & "Every computer is different. I'm glad that you can get 3M/s from another host, that is really good" Sigh.

At least Linode's customer server was helpful and allowed me to work around the ISP. The steps to move a linode are as follows:

  1. File a support request. (My initial request was answered in 11 minutes)
  2. Shutdown your linode
  3. Hit the 'migrate' button, after support sets up your migration
  4. Wait for the transfer. My total transfer time was ~43 minutes (~6G to transfer). This was pretty fast throughput, in my opinion
  5. Meanwhile, update your DNS for your new IP.
  6. Since you can queue up a boot job, I just let it go and checked in on it a couple hours later. Magic, it was online. :)

So, to finish the story off. Linode++, Comcast--. I wish I didn't need to do something like this, I wish my ISP was...I don't know...smart?

Patrick Lauer a.k.a. bonsaikitten (homepage, stats, bugs)
Update: Gentoo in commercial environments (October 03, 2009, 18:28 UTC)

I've been busy collecting some really great stories from people using Gentoo in places that I really didn't expect. Some of them want to remain anonymous, which I have no issue with. But there are some gems like this one:

==========
Hey, I'm the CTO of a small company in Sweden, and this is our short 'success story' :-)

blogg.se is a Swedish blogging platform which generate 130 000 new entries, 150 000 comments and 2 500 new accounts on a daily basis. We currently (September 25th, 2009) have a reach of 2,2M unique visitors per week.

Gentoo has always been the preferred OS choice for us. We (the developers) were all attracted by its 'sane' defaults and clean approach to software deployment.

Here at blogg.se we use Gentoo for all our staging, testing and production environments. We have about 30 running instances on 32-bit, 64-bit and KVM-virtualized hardware.

Gentoo (and its wide ecosystem of utils) has been very helpful in helping us plan our environment. We use layman to distribute our own software, Metro for building custom images and a wide range of apps for maintaining our installs.

The collaborative efforts of Gentoo is inspiring and something you want to be a part of. I'm already involved through the Sunrise-overlay and hopefully qualifying as a Gentoo developer some time soon.

Johan Bergström
CTO blogg.se
===========

That's quite awesome on multiple levels, and I thank Johan for sharing this short glimpse at how people leverage Gentoo. I hope to publish a few more stories soon, so stay tuned and feel free to mail me your story!

Last-minute reminder: Today is Gentoo bugday**! (October 03, 2009, 15:42 UTC)

**fixing bugs with both users and devs together.

Join us in #gentoo-bugs on Freenode, please!

Steve Dibb a.k.a. beandog (homepage, stats, bugs)
ripping vhs (October 03, 2009, 15:17 UTC)

I don't think I've ever written about how to rip a VHS tape before, so I figured I'd write up a quick guide since it looks like that's part of what I'm gonna be doing this weekend.  Yet another item I've long had on my todo list was to get a digital copy of some really old tapes put out by my church, since they were never released on DVD.  Fortunately, it's really easy if you have a TV tuner card.

I'm using a Hauppauage PVR-500 card, which has composite inputs on the rear, and that's how I'm capturing the feed.  That good old analog hole.  Although, ideally, the Macrovision DRM shouldn't allow that, so don't ask me how it's working.

Anyway, it's simply a matter of switching your input to the component input, and then using ffmpeg to capture the stream.

To change the input, you'll need the IVTV utitiles.  In my case, the command is:

$ v4l2-ctl -i 2

Then, with ffmpeg, you can capture the stream, just copying it and saving it in its native format.  My PVR card does hardware encoding to MPEG2 video and audio, so I can just save it directly.

$ ffmpeg -i /dev/video0 -vcodec copy -acodec copy -t <hours:minutes> vhs.mpg

And thar ya go.  Pretty simple.

Uncle_Ben

Here's a screenshot from an old church video.  As you can see, its slightly grainy, but that's because of the source, not because of the transfer.  It would look just as good / bad on the VCR player itself, so the conversion actually works really well.

Edit: I thought I'd add a bit more technical details as far as the MPEG encoder goes.

The video is MPEG-2, and the bitrate is 8000 kb/s.  The framerate is NTSC, of course.  The picture is 720x480 in size (my snapshot above is scaled down for presentation).

The audio is encoded to MP2, and it keeps the stereo stream.  The bitrate is 224 kb/s.

Diego E. Pettenò a.k.a. flameeyes (homepage, stats, bugs)
Charting and Graphing (October 03, 2009, 10:54 UTC)

You might remember my last post about the Gentoo Portage size which contained some pie charts showing the proportion of space used by the various pieces that make up Portage itself.

On a related note, yes I know that pie charts are often the wrong tool; I still think that for the use case of that post, the pie chart was the best option because I only had to give proportions and not a comparison; as you’ll see though, I’m going to use it sparingly.

Finding a decent way to plot the charts has always been a problem for me, since I would have wanted more than once to give some graphical representation of improvements and benchmarks, but the tools available all have their own set of quirks, which means that I have to fight with them a lot more than I can afford myself to:

  • gnuplot (which, by the way, does not make pie charts at all), is tremendously complex, to the point that even the quite good book about it does not help to easily make use of it, if you’re not already an expert in statistical analysis;
  • R, if anything, is even worse, to the point I don’t really want to discuss it!
  • using gruff should allow to draw all the needed chart, given you can easily represent the values in Ruby; unfortunately it doesn’t really work extremely well, and more than once, both for pie charts and bar charts, I found the colours not to properly cover one the other, with quite shitty results;
  • using Google Docs, with the spreadsheet component, looked almost good, if it wasn’t for the fact that lots of people have had trouble loading the charts in my previous post; while the Google application is definitely well-designed, especially for what concerns user interface and basic functionalities (just as an example, the ability to move the graph to its own dedicated sheet, which I remember being available on Microsoft Excel 97, is not available in OpenOffice, while it is present in Google’s spreadsheet), it also lacks some more “public” features: there is no way to ask for the graphs of a given size when exporting (for instance for thumbnails), and at the same time, the auto-generated text in the public, exported chart seems to always be in the locale the generating interface was set in… guess what? I have it in Italian;
  • I ended up reconsidering OpenOffice; it worked great with flowcharts so I wanted to see the good “old” suite at work to do something that it should probably be designed for.

Now, since I’m not sure whether I’ll post this before or after the results (I’m writing it before the results’ post, but that’s not to say much to be honest, since I have a queue of posts already written, as usual), I cannot really say much about the results themselves, but my area of analysis this time has been the distribution of sizes and overhead with different block sizes (as suggested by Robin). I used Ruby to gather the data, and I’ve copied it into a large sheet into Calc (reaching column AL) — incidentally, the amount of data to handle is the reason why I didn’t go with Google Docs this time: with Firefox is definitely too slow to work with it; probably it’s designed to be faster with Chrome. Then it was time to condition the data…

OpenOffice definitely have some usability issues in that matter! First of all, when selecting the range of data to plot, there is no easy way to select non-contiguous columns, since once you release the mouse button the interface returns to the chart wizard. The trick is to choose the columns manually, using the form A1:A8,C1:C8 and so on so forth. I used again Ruby to generate the list of columns for me or it was definitely a mess… I gave up when I had to re-do the graph for the third time because I didn’t select some stuff, so I just used another sheet to copy the information I needed, and then filter out what I wouldn’t be needing.

As I noted above, there is no way, that I could find or Google, to create a sheet that only holds a chart. I’m pretty sure that Microsoft Excel 97 had a feature like that… and I’m definitely certain it has it in version 2007 (because I have a fully licensed Office 2007 here). Google Docs, as I said, has it as well. The reason why I’m upset that it lacks that feature, is because it would have made it quite a lot easier to export the charts for publication; instead the only way I found was to copy the chart, and then paste it in a Draw document: at that point, while the chart was still tweakable to reorder columns and stuff like that, I had to re-tweak it every time I noticed a flaw in the data, since it was disconnected from its original data source.

Another area that OpenOffice definitely got to improve is the handling of colours: everywhere you select colours you’re not allowed to freely select one, you have to add it to the OOo palette first… which in turn requires a restart of OOo itself since sometimes it fails to pick it up in all the instances. This might not be such a huge deal when seen by most users who just need “a” colour, but it really is upsetting when you know exactly which colour you want. And indeed it reduces the usability of Draw: for a word processor or a spreadsheet, precise colours might not be that important, but for software like Draw (or Impress), the ability of choosing an arbitrary colour without having to jump through a long series of hoops is definitely important!

This is definitely something that sometimes upsets me: OpenOffice has almost all the cards ready to be a perfect poker of productivity software, but there are is a number, toward infinity, of details that need to be fixed up (just to add another quickly: the fact that the packages, ebuilds included, don’t install the templates by default, and you got to install them from the Sun extensions site, which by the way installs them in your home directory and I don’t really like that). I really hope that this is going to get fixed in the future, but counting in the go-oo split there is really a lot of mess around OpenOffice, like a lot of other huge projects (OpenJDK/IcedTea, Mozilla/IceCat/IceWeasel, …). Why Free Software developers can’t really get along together for more than their own itches?

October 01, 2009
News from the front (October 01, 2009, 23:04 UTC)

For those that might have been wondering where was that guy speaking about imminent stabilization of gnome 2.26, well I was taking some time off (sort of). The Gnome 2.26 situation got a bit better in the last weeks as due to the production of a release media, a lot of dependencies we were waiting on are finally getting stabilized. You can still see progress on bug #263083, closer than ever !

Since I can't stand working on Gnome 2.26 anymore and since upstream has been kind enough to drop their new almost shiny 2.28, I started doing some QA on ebuilds in overlay before allowing them to move to the tree. Over 92 ebuilds, all of which are not necessarily interesting for gnome 2.28, I've currently reviewed 25 and that's with current 65% of completeness of the ebuild bumps, so there is still quite some work, and don't expect the overlay to be safe for use just yet.

One last word on 2.26, there will be a migration guide, it's still getting a few modifications before it all goes public with stabilization but I'm spreading the word in the hope that we won't see any new bugs concerning what has been documented.

Remi Cardona a.k.a. remi (homepage, stats, bugs)

Turned out that xorg-server 1.6 is pretty much ready for stabilization, as only a handful of bugs were reported over the testing period since last week, and they only concerned the stabilization list.

Without further ado, I've asked our faithful Arch Teams (pretty much all of 'em) to stabilize xorg-server 1.6 and friends. amd64 was the first one to the finish line with a stabilization done in under a day!

Gentoo is again back in business for X. Woo!

Now to all stable users, don't forget to read the upgrade guides we wrote :

Don't forget, please file bugs in bugzilla.

Curses::Toolkit (part 10) - Mouse interaction (October 01, 2009, 12:41 UTC)

So I've been playing with mouse interaction (I stoled some code from Curses::UI, but treid to go the extra mile), and finally I am able to handle mouse interactions within Curses::Toolkit

Curses::Toolkit can now listen to and intercept any mouse button events. You can add a Curses::Toolkit::EventListener::Mouse::Click to any widget, so that it becomes mouse aware.

By default, I think I'll add some mouse interaction to the widgets. For instance Widget::Window already have mouse upport, as I show in the video. I'll add mouse support for Widget::Button, and probably other widgets as well, at least to handle the focus.

The issue is that I fail to catch the events of the mouse moving, I catch only the button events. That's why I can't draw the windows when moving them. Ncurses is supposed to let you catch the mouse positions when moving it, but I failed to get that. Maybe it came from my terminal as well. If you have any idea about that, I could use some help here !

Also, speaking of the terminal, I use Terminal.app usually, but I failed to configure it to catch mouse events (like mouse clicks). I thought it was possible but I had to use iTerm, which in turn I fail to configure to dicplay nice graphical-like borders and corner characters. If you have any clue on either how to configure Terminal.app to catch mouse events, or how to configure iTerm to properly render special characters, please let me know ! :)

Curses::Toolkit (part 9) - New widget : Entry (October 01, 2009, 12:40 UTC)

Let me introduce a new widget in the Curses::Toolkit world : Widget::Entry.

Nothing much to say about it, have a look at this video. I tried to have the Entry widget to support basic shortcuts, and behave like one would like it to behave. I still to add some stuff to it, but it's in decent shape. Enjoy.

Curses::Toolkit (part 8) - New theme (October 01, 2009, 12:37 UTC)

Hello again !

Let's see what's new on the Curses::Toolkit front. Please see the previous posts for the background story.

I have finally worked out a reasonable way to have themes that allow for some advanced customization. Having a theme that defines the colors, if some text should be displayed in bold or in reverse mode is straight forward. However, having themes that can customize the shape of a widget, the way it's placed and drawn is more complicated.

It's hard to find the right balance between on a rigid widget toolkit with a very simple theme engine that allow barely any customization but is very easy to use, and a complicated theming system t hat allows full control on the shape of the widgets but is hard to manage and use, leading to no one willing to expand it.

So I went for a simple pragmatic approach : the basic drawing primitives (drawing a string, a border, a corner, etc) can be themed regarding colors and line style. For the advanced customization, i t's up to the widget classes to declare what can be customized in them. For instance, a Widget::Border declares that its border size can be customized. a Widget::Window inherits from Widget::Border, so if its border size is positive, the border ad the title which is displayed on it will be visible. The Widget::Window itself declares that its title can be placed in the center, right, left, etc.

So the widgets declares what can be customized in them, and their various methods (drawing methods, or coordinates computation) take in account these various parameters, and their parent's ones. Oh it's nothing revolutionary, and if I was implementing a graphical toolkit, it would be unmanageable, because too simple. But because we are in the ncurses world, the possibilities of customization are limited, and the level detail is lower (we are manipulating characters here, not pixels).

So I think this approach is not too bad. Besides it allows me to implement a widget at first without any theming characteristics, then add them later on when I'm polishing its rendering methods.

As soon as I'll have more widgets, I'll see if this way of doing it was a good decision :)

"Aaaaanyway" (as would t0m say), when I started this post I wanted to say that I changed the default theme and the rendering of some widgets, so here is how it looks now. Oh, yes, the yellow on bla ck is horrible, but I'm not a designer. Or a lawyer, for what it takes.

You'll see I've improved the window widget, it can now have a title, that has a nice animation if its title is too long.

Visited BooK (October 01, 2009, 12:36 UTC)

Philippe Bruhat (BooK) was kind enough to host me ( and a friend of mine ) yesterday evening and this morning.

BooK is a nice guy, very involved in the Perl community : among other things, member of the YAPC Europe Foundation and YAPC::EU Venue Committee, president of the French Perl Mongers, member of various mongers groups.

He is also a very good cook, we tested his Tiramisu and home-made pizza. Thank you BooK for the stuff you do for Perl, and for being a good friend !

( that was my "loosily Perl related post while coming back from holiday" ). Stay tuned for more soon :)

FPW 09 - talks videos (October 01, 2009, 12:34 UTC)

As you may know, last week the French Perl Workshop 2009 took place in Paris. It was a nice conference in french, where various subjects (mostly Perl related) were presented.

I gave 2 presentations :

Curses::Toolkit (part 7) - New video (October 01, 2009, 12:34 UTC)

Hello, it's time again for a small video on Curses::Toolkit.

The first part of the video shows some buttons that can have the focus, and I hit tab to switch focus. Window resizing is also supported.

The second part of the video shows a button that - when clicked using space bar - generates a new buttons, add it to the HBOX. These new buttons can themselves receive focus and be clicked to create a third type of buttons.





What's next ? I'll post about key events and key listeners, I'll try to add more widgets, and at some point publish Curses::Tookkit to CPAN.

In the mean time, enjoy.

French Perl Workshop 09 - Still no slides yet ! (October 01, 2009, 12:33 UTC)

It's this time of the year again !

The French Perl Workshop is starting tomorrow for 2 days in the wonderful city of Paris, France. It's organized by the French Perl Mongers.

A bunch of interesting talks, quite a lot of people are planned. I have to say that this year's edition looks very promising, due to a very efficient team that spent a lot of effort to organize it. Of course we'll see how well it was at the end of the two days, but I'm really excited about this edition.

I'll give 2 talks, on POE::Wheel and Curses::Toolkit. Nothing really major (compared to talks on Perl 5.10 or Perl 6...) but every little helps, I guess.

Hm, OK the real reason I'm writing this blog entry is that I'm still missing about 30 slides for my talk that is tomorrow, and it's already late, and I can't motivate my brain to actually do it. Is it the fatality that whatever effort you put in preparing things in advance, you always find yourself writing the slides of your talk the night before ? I guess that's Murphy's law...

Seriously, have you ever given a talk (for the first time) with the slides ready days or weeks ago ? If yes, let me know how you manage that :)

Anyway, if you are in Paris the next days, please head toward the Cité des Sciences and come see us !

1. Focus, the details

Please refer to the previous post for the context about Focus. Basically, Curses::Toolkit is a Perl software toolkit that let's you create nice ncurses based interfaces. It extensively uses widgets, that can have the focus.

As I said in the previous post, not every kind of widgets can have the focus : only a widget that can be interacted by the user should be focusable. For instance, a Label doesn't offer by default any interaction to the user. So a Label widget is not focusable. Likewise, a Border is just displaying a graphical border, and doesn't offer interaction to the user, so same, a Border shouldn't be focusable.

Now let's have a look at the Button widget : it should clearly be focusable, as by default a button is clickable, and do be able to "click" it using the keyboard, the user needs to position the focus on the button and trigger the enter key or the space key. So it's obvious that the Button widget should be focusable

Now let's think about the implementation : the Button widget class is just an nearly empty class that inherits from Border, provides a facility constructor that would add a label in the Border. So a Button widget is basically a Border Widget. But we want to add the focusability concept. That is the situation where you would use words like interfaces, mixins, traits and roles. I like the concept of Role, and I think it suits the purpose here, so I decided to implement the focusability with a Role.

2. Roles

A Role is basically some features (code, attributes), that are injected in the class, but unlike a mixin, it is possible to see from which roles a class has been built from, and change that. Moose offers a great implementation of Roles, as does Perl6. Alas, I haven't yet converted Curses::Toolkit to Moose, so I needed a pure Perl5 solution : multiple inheritance !

Right, multiple inheritance is wrong, it's bad, it's pure evil. That's what you've been told at least. I have to say it's true, multiple inheritance is very rarely a good thing, and it can generate a lot of issues (and make it inherently more difficult to fix them).

However in this case, I thought I could use it, provided I take care of limiting the use of multiple inheritance to implement Roles, and be careful not creating the infamous diamond-of-death structure.

3. Implementation

Here is how the Curses::Toolkit::Widget::Button class look like :

package Curses::Toolkit::Widget::Button;
use parent qw(Curses::Toolkit::Widget::Border Curses::Toolkit::Role::Focusable);

By inheriting from Border, we get all its attributes and methods. By inheriting from the Focusable role, we also signify that this widget can be focused. Let's look at the content of Curses::Toolkit::Role::Focusable :

package Curses::Toolkit::Role::Focusable;
[...]
sub new {
    my ($class) = shift;
    die "role class, has no constructor";
}
[...]
sub is_focusable {
    my ($self) = @_;
        return 1; # in real life it's less trivial 
}
sub is_focused {
        my ($self) = @_;
        return $self->get_property(basic => 'focused');
}
sub set_focus {
        my $self = shift;
        my ($focus) = validate_pos( @_, { type => BOOLEAN } );

        if ($self->is_focusable()) {
                $self->set_property(basic => 'focused', $focus ? 1 : 0);
[...]

As you can see, we protect users from instantiating this class, and then we implement the various role attributes and methods. This implementation is easy to use and flexible : to know if a widget is focusable, just use :

$widget->isa('Curses::Toolkit::Role::Focusable');

Once you know it's focusable, you can use set_focus, is_focused, etc...

One could also imagine needing to remove the focusability at run time on an existing widget. filtering out Curses::Toolkit::Role::Focusable from its @ISA would do the trick, even if it's not very clean.

So, I know all this is not very modern, and it'll disappear when switching to Moose (and Perl 6 soon ?), but in the mean time, I just wanted to share this trick. Eh, it's not everyday you can argue positively about multiple inheritance !

PS : I am by no mean a good OO designer, and what I just exposed might be just plain wrong. I'd be more than happy to be enlightened :) If there is a better way to do this in old-school Perl5 way, drop me a note.

Curses::Toolkit (part 5) - a Button (October 01, 2009, 12:29 UTC)

Today let's have a look at a widget I'd like to implement in Curses::Toolkit : a Button widget. That doesn't look very difficult, but in fact you'll see it requires that a lot of things are in place under the hood for the Button widget to be fully usable.

At a first glance a button is very basic : it has a border, a label, and you can click on it. Actually, it can have anything inside, not only a label. So a Button can be designed as a widget that inherits from Border, and that has an additional constructor ( new_with_label ), that would create and add a Curses::Toolkit::Widget::Label in the border. The button class is Curses::Toolkit::Widget::Button.

So far so good. However, a button is not a button if you can't click on it. That means a new concept needs to be added : the "click" event, or something similar. But to be able to click it, the user has to be able to focus the button. So here we go, a new concept : focusability !

When a widget has focus, it means that the user can interact with it. But not all widgets can be focused : a border as no interaction to propose to the user, so a border should not receive the focus. However, a button is something that can be interacted with, so it should be able to be focused. To implement that, I decided to use a Role. I'm not yet using Moose in Curses::Toolkit (I'll switch to Moose at some point), so I'll implement Roles using multiple inheritance, a Role being an abstract class. With some care, I shall avoid multiple inheritance caveats. This new Role is called Curses::Toolkit::Role::Focusable. I'll come to the details a bit later.

So when is a widget (that is, the class of the widget) focusable ? When it has the Curses::Toolkit::Role::Focusable role. AND when it's sensitive. Indeed, I'm sure you remember these "grayed-out" widget in modern graphical user interfaces ? It's the sensitivity of the widget that determines if it's normal or grayed-out. When in non-sensitive state, a widget cannot be focused. So again, a new concept : sensitivity. We'll say that upon creations, widgets are sensitive.

Sensitivity, focusability, that's nice, but the user needs to be able to click on the button, and change the focus. We'll start by implementing "clicking" with "pressing a key on the focused widget". We'll see how to support the mouse a bit later. Curses::Toolkit needs to be aware that the keyboard has been used, and have a mechanism to handle the keystrokes. That implies to have some sort of events to send the information related to the keyboard. And also to have some kind of event listeners that the user can set, to listen to an event and act accordingly.

That's indeed a lot of new concepts introduced. We'll see in the next posts how to implement them.

POE-Wheel-GnuPG (October 01, 2009, 12:28 UTC)

Today I'd like to present POE::Wheel::GnuPG (source code here ).

I guess you know what GnuPG is. Right, so when you want to encrypt/decrypt data or do other GPG actions in Perl, the best thing to do is to rely on a GnuPG module. I always use GnuPG::Interface because it is very reliable : it's just a wrapper around a fork/exec of the gnupg program installed on your system. Granted, the drawback is that you need gnupg installed and executable, and this is not suitable for all situations. But the benefit is that it's fast, and it's not subject to bugs of pure Perl (or other languages) reimplementation. And it gives you access to all features of GnuPG, like keys management, etc...

So far so good, using GnuPG::Interface is not completely trivial, but it's easy enough. Now, I was trying to solve the following issue : imagine you have a very big encrypted file to decrypt. It's not likely to fit in RAM, but for security (or other reasons), you don't want the decrypted content to be saved in a file. What you want is decrypt the file bits by bits, and process the decrypted file as soon as data are available.

To do that, we'll create a module that interacts with GnuPG::Interface and do non-blocking monitoring of file handles to check when crypted data is needed, and decrypted data is available. I soon realized that this module would be a perfect candidate for a POE::Wheel, as POE provides all necessary tools to monitor file handles and child processes.

Let's see how to use POE::Wheel::GnuPG to do a simple encryption :

  # use POE with the wheel
  use POE qw(Wheel::GnuPG);

  POE::Session->create(
    inline_states => {
      _start => sub {

        # initialize the wheel with the bare minimum
        my $gnupg = POE::Wheel::GnuPG->new(
          ready_to_input_data => 'ready_to_input_data',
          something_on_stdout => 'something_on_stdout',
          end_of_process => 'the_end',
        );
        # Save the gnupg object in the heap for later use
        $_[HEAP]{gnupg} = $gnupg;

        # The Wheel inherits of GnuPG::Interface so
        # it's supports the same options.
        # I indicate that I want an ascii encrypted
        # content, crypted against my gpg key
        $gnupg->options->hash_init(
                        armor   => 1,
                        homedir => '/Users/dams/.gnupg' );
        $gnupg->options->push_recipients('dams@gentoo.org');
        $gnupg->options->meta_interactive( 0 );

        # Let's start the encryption !
        $gnupg->encrypt();
      },

      ready_to_input_data => sub {

        # This is called when gnupg is ready to receive
        # the data to encrypt
        my $input_fh = $_[ARG0];
        print $input_fh "This is the secret data!";

        # This is important to signify gnupg that it should
        # not wait any more data to encrypt
        $_[HEAP]{gnupg}->finished_writing_input();
      },

      something_on_stdout => sub {
          # And now we can read the crypted data
          # from the filehandles
          my $stdout_fh = $_[ARG0];
          return if eof $stdout_fh;
          my @output = <$stdout_fh>;
          print "Received crypted data : @output\n";
      },
      the_end => sub {
          # clean up
          $_[HEAP]{gnupg}->destroy();
          exit();
      },
    }
  );
  POE::Kernel->run();
  exit;

For more detailed usage description, see the POD.

That program performs a simple encryption. In the POD, I provide an example to do asynchronous decryption : check example n°1 in the SYNOPSIS

I used this example to decrypt a big file, printing out the character '.' when sending an encrypted line to the wheel, and printing out 'O' when reading out a decrypted line. Here is the start of the output :

macpro:bin dams$ perl ./test.pl
..................................................
..................................................
..................................................
..................................................
..................................................
..................................................
..................................................
..................................................
..................................................
..................................................
..................................O.O.O.O.O.O.O.O.
.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O
.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O
.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O
.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O
.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O
.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O
.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O
.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O
.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O
.O.O.O.OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO
OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO
OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO
OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO
OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO
[...]
.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O
.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O
.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O
.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O
OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO
OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO
[...]

And so on. You can see that the encrypted data is first read to fill up the buffer, then decrypted data is read out at the same time. At some point, there is too much decrypted data to print, that's why there are a lot of 'OOOO's. Then it all starts again :) I think it's a good demonstration of asynchronous GPG decryption !

September 30, 2009
Marcus Hanwell a.k.a. cryos (homepage, stats, bugs)
The Big Move and New Position at Kitware (September 30, 2009, 23:40 UTC)

On Monday 21 September we packed the majority of our belongings into the back of a Penske truck and made the 500 mile drive (in convoy - Louise, William, Dax and myself) from Pittsburgh, PA to Clifton Park, NY. Since then we have been unloading the truck, unpacking our things into our new home and doing all those things you have to do when you move house, and several things necessary when moving between states and jobs.

Me in the Penske truck before returning it

This is certainly the most rural house I have lived in since I was very young. We found a nice duplex on the outskirts of Clifton Park, it uses well water and I am the proud owner of the contents of two full propane tanks (no natural gas lines run out to the house). We also have a really nice wood fire in the living room, and I snagged the family room and am using it as a large home office! Thankfully they were able to hook up a cable Internet connection on Tuesday last week, and so I was not offline for too long.

Tomorrow is my first day with Kitware, I will be attending a training course being run by Kitware for the remainder of the week and so won't have my first day in the office until next Monday. I will be working in the scientific visualization group on projects such as ParaView, and have had lots of ideas for future Avogadro development over the last few weeks. I am very much looking forward to working in some new areas, but also to enhancing the previous research and development I have done in the area of visualization in chemistry. I am also looking forward to working on CMake.

Steve Dibb a.k.a. beandog (homepage, stats, bugs)
netflix new stuff (September 30, 2009, 15:42 UTC)

I found this article on Wired about Netflix, and their plans for global domination, which is stuff I always love reading about.  There's two things about the future of television and movies I would totally love to see:  First, for cable to completely fall on its face, and everything to become on-demand.  Second, for video rental stores to go out of business so that on-demand will be the most efficient way to get stuff.  Fortunately, it seems that the markets are heading that way naturally.

However, while Netflix is certainly the best contender right now, I think it's worth pointing out that the content is still in its infant stages.  Netflix can stream some movies, sure, but it's selection is not anything compared to say, iTunes, in regards to music availability.  One thing Apple did quite well was it got *all* the major studios to sign on to sell their music.  That means that you can expect to find everything mainstream right there without much difficulty.  Compare that to Netflix, who has *zero* major studios signed on right now.  Hopefully that will change, but everytime I see articles like the Wired one, that tout Netflix's library, I feel the need to clarify to people so they don't get suckered in.

For example, here's a quote from the article, "And the devices won't just be streaming remaindered basic-cable or art-house fare: Already, Netflix customers can call up just about any episode of SpongeBob SquarePants, The IT Crowd, or Lost whenever they like. They can watch recent releases like WALL-E and Pineapple Express. In other words, they can get unlimited access to the kinds of programming that previously required a cable subscription." (emphasis mine).

Just reading that, it *sounds* like Netflix is a drop-in replacement for cable access, which is not the case at all.  Rather than trying to read between the lines and saying something like, "Oh, they have everything between Wall-E and Pineapple Express", it's far more accurate to say "Oh, I can watch Wall-E *or* Pineapple Express."  The selection simply isn't there.

A few weeks ago, I bought my brother a Roku Netflix Player for his birthday (I'm such a nice guy, I know).  He has two small kids, and one of the main reasons I got it was because Netflix *does* serve up a lot of children's programming -- quite a lot, actually -- and I figured he would find that useful.  It's all available on demand, simple bookmarking, easy pause and resume, easy interface, etc.  I talked to him about a week later and one of the first things he mentioned about it was that there weren't hardly any new movies on there.

Right now, their only real provider for new movies is Starz Play.  If you have an account for Watch It Now, and want to find the new stuff, that's really the only place to look.  Plus, it's really hard to find stuff as well.  The website for browsing DVD releases on the Netflix site is amazing.  It's intuitive, it's quick and easy to search and find stuff, it's great at recommendations and it gives you lots of info in lots of ways.  Now, compare that to the Watch It Now navigation menus which are *completely* different.  My take on it is that there is so little content there, that they forcibly dumb down the interface to obfuscate the fact that there's really nothing there.  It's just taking the small amount they have, and spreading it around really thin so it looks like it's more than it is.

So, anyway, while I really hope that Netflix does the right thing, and business-wise, they are poised to take over the market -- Hollywood is holding them back.  I wouldn't blame Netflix in the least.  It's impossible to download *all* the new releases from any service anyway (from what I've seen).  For instance, X-Men Origins: Wolverine came out on DVD the other week, and I wanted to check it out.  I didn't really feel like going down to Blockbuster to get it, so I checked to see if any of my online pals were serving it up.  The Playstation Store had it, but you had to buy the movie, in standard definition, for $14.  No thanks.  Amazon's Video on Demand didn't have it, and neither did Netflix.  I realize that's a small sample to choose from, but there's really not many more services out there -- I think iTunes sells / rents new movies now, but I don't have a way to watch them on my TV anyway, so I didn't bother checking.

Once Hollywood gets on board, then things will really take off.  I read in the news how Blockbuster isn't doing well, and they are the last legacy distribution market.  I kind of can't wait for them to stumble, because if they are gone, the studios will have no other medium to even sell / rent new movies through, except through newer, leaner retailers like RedBox, Netflix, and on demand services.  The future can't get here fast enough for me.

September 29, 2009

Global Financial Derivatives trading company, OSTC Poland, uses Gentoo Linux in significant sectors of its IT infrastructure. We spoke with long time Gentoo user and head of OSTC Poland's IT department, Patryk Rządziński, to learn more about how and where Gentoo is used. We discovered, as you will read in the full interview, that Gentoo, and more generally open source software, serves well in the commercial world.

September 28, 2009
Steve Dibb a.k.a. beandog (homepage, stats, bugs)
jump on it (September 28, 2009, 20:13 UTC)

Hee, hee, hee, this was fun. :)   On Saturday I got to take my little brother out, and I had a great idea this time around.  There's this place in Lindon, Utah (about 20 minutes or so south of Salt Lake) called Jump On It, which is basically an empty warehouse full of all these trampolines joined together.  It's awesome.

I've driven past the place plenty of times and thought, "eh, I should probably go there."  Then I remember my friend Jason wrote about going there one time, and that made a trip even more necessary.  I don't know how I got the idea to go this weekend, it just popped in my head, but I'm glad I did.  I looked it up online, and it's only $8 an hour to go jump around and do whatever you want.

The concept is so incredibly simple, but it is so well done and so much fun.  There are probably at least twenty trampolines just all next to each other, which make this huge, very fun square that you can just jump around in non-stop.  And you can get going fast, really fast, with a lot of momentum.  And you can flip around and hit the sides and just bail and not hurt yourself.  It's awesome.

There are two areas for trampolines, too, there's a smaller one for kids four feet and under, where the tramps are a lot less springy, so you won't go nearly as high.  The other ones are for any size / age group, and the springs there are really tight.  I grew up with a trampoline, so I know all the tricks and how to get really, really high, and I managed to nearly touch the ceiling I was bouncing so high on those things.  Holy crap, that was a feeling.

Here's a pic of the kid's one.  I really, really wish I had taken my camera with me to get some decent shots.  This one is from my cell phone, which is craptacular when it comes to taking action shots, so I had to tell my bro to stop for a second so I could take his pic.  He does not look too thrilled to pause for me.  I can't really blame him.

0926091736b

The other thing that really amazed me is how fast I got worn out.  I didn't think it'd take that much energy, but man, after the first 10 minutes I was about ready to pass out, I was working my body so much.  I had to constantly take a break so I wouldn't throw up / pass out.  The hour sure went by fast, and I'd say I got more than my money's worth.  I gotta get into better shape, and go back.  It's a total blast, and this post hasn't done a great job in the least documenting how much fun it is.

star trek on blu-ray: the motion picture (September 28, 2009, 16:51 UTC)

I have still been, for the most part, extremely hesitant to purchase anything on Blu-Ray just yet.  My modus operandi so far has been to rent a lot of them to see how the quality is compared to the DVD to see if a repurchase is justified.  So far, this approach has been serving me rather well, and I've discovered very early on that it's nowhere the same across the board.  Some movies look awesome, some look okay, and some look like they just dumped the DVD transfer onto the new medium without a thought (which is really noticable, too).

Switching from VHS to DVD was an obvious decision, an upgrade that would have been hard not to argue for.  I imagine I'm getting old if I can even reminisce about such times.  I remember right when DVDs first started coming out, and I would keep a watchful eye on how things were progressing (anyone remember DivX?  What a nightmare).  It's really interesting to see how much the tables have turned in some regards.  Disney was a huge holdout on DVD, and eventually came along with feet dragging, but now, they make the best Blu-Ray editions, bar none.  Universal sucks across the board -- their Blu-Rays have been less than impressive (I just watched the Bourne Trilogy the other week, and the first two were nothing to write home about).  And then, there's Paramount ... who distributes Star Trek.

All the movies except Insurrection and Nemesis got released on Blu-Ray last week, and I have been really excited to check them out (edit: okay, actually I can't find the first one on it's own release ... I must have rented the one from the trilogy set, oh well.  I know the other ones are out though).  I've thought about buying them out-right, but I'm a bit cautious considering the studio's past foray into the market.  What they tend to do is create a money grab by releasing the films a few times in different editions.  First, they'll put one edition out, just to have something people can buy, and then later on clean it up, add more special features, and tout that one as a better upgrade.  It can be a bit maddening, and expensive.  So, I added the first few films to my Netflix queue, to see how well these new transfers held up, and I got to watch the first one this weekend: Star Trek: The Motion Picture.

All I can say is, wow, they did a nice job.  The picture is gorgeous.  For a movie that is so old, I was extremely skeptical that they would even be able to do anything with it at all.  But on my HDTV, the picture was just ... more clear and vibrant.  That's the best way I could describe it.  Some films don't hold up to the test of time when being presented in a larger format, but this one looks like it just came out.

I wish I had a Blu-Ray drive so I could rip the disc and get some snapshots, but that'll have to wait.  I keep thinking of a few scenes that showed off the detail so well that they would do a much better job explaining what I'm trying to get across.

I can't say much about the sound, since my setup is 3.1 (no rear speakers).  Besides, my speakers are from an off-the-shelf surround sound setup, and not really good quality.  I've got it in my sights to eventually replace it with something decent, but that's a major hop and a skip away.  I'll just wait on that one.  For what I heard, it did sound really good though.  I really love how in this movie, it opens with the score for a few minutes and you just get to hear the long version of the Star Trek theme.  Great stuff.

There was only a few spots where there were any video issues at all.  Again, if I could take a screenshot, I would.  It's not that they were bad, it's that it was more like "uh, how did you miss *that* big black blotch right on the front of the Enterprise."  It happened twice, briefly, and that was it.  Aside from that, the only parts where the film quality was lacking was a few scenes which were probably just notoriously hard to clean up, so they didn't -- the ones where the probe from V'ger is on the bridge of the Enterprise, and it's zapping it's way around.  The shot was really fuzzy to start with, and you could notice a huge drop in quality and cleanup for the few seconds that the shot took place.  Again, not a dealbreaker, and in fact you'll see the same thing on the DVDs.

Overall, I'd say this one was well worth the price.  I started playing around with the special features, but didn't really get far because I was tired.  It does have this cool on screen index you can access while the movie was playing, that I thought was really innovative.  It'd give you descriptions of certain Star Trek topics related to the film.  There was also an audio commentary track, though I didn't bother listening to it.

I'm definitely gonna get a copy of this one though, given the chance.  I've got the other ones in my queue and I'll write up a review as I watch them in the next couple of days.  Tell you what. :)

psp go (September 28, 2009, 15:48 UTC)

So, apparently the new PSP Go is going to hit shelves soon.  I totally keep forgetting about it.  While it looks pretty freaking cool, there are a couple of things that are keeping me away completely, and I'd have to think long and hard about getting one.

First of all, this sucker is freaking expensive.  $250.  Eek!  That's only $50 less than a PS3, although that'd be a little harder to lug around in your pocket.  I still have a PSP-2000 or whatever the number is, I know it's not the first generation one, and it works really well.  Sure the UMD thing is slow and cumbersome and sucks power like uh ... something, but it works fine.  And it's about $100 less retail.

This is my *real* beef though with the system -- it only has 16 GB onboard memory.  That could arguably be a reasonable amount, except that this PSP is entirely digital.  The only way to get games is to download them to the flash drive.  On top of that they are marketing it as a great portable movie player.  16 gigs is not a lot of space to play with.  If they had 40 in there then I might start thinking about it, but that still brings me to the next point.

It *still* only accepts Sony Memory Stick Pro Duo (man, what a mouthful) for the extended storage.  Normally, I wouldn't care -- Sony has their own format, yay, whatever, good for them.  But they are priced exhorbantly high.  A 16 GB flash card, that would double the system's space, costs $72 right now on Amazon.  Not only that, but that's the highest storage capacity available.  So, you're going to cap out at 32 GB.  That's a lot, I suppose, but if I wanted to tout around movies with me, I'd still want more space than that.  I dunno.  But at this point you're talking $320 to carry around max storage.

The last thing that has me worried is that all the games are digital.  I'm a big believer in the second-hand market for used games, and the new PSP just guts that opportunity completely.  You want the game?  You buy it new, and you pay full retail price.  Normally, I wouldn't have a problem with that, but what happens with digital games is that when there is only one source to get them, I've noticed that the price does not go down.  Ever.  At all.  Games that are listed for sale at launch point that originally start at $40 or so, might eventually go down an extra $10 or so, but after time, it just stays there, and it's always going to be prohibitively expensive.  That's a problem.  What's worse, is that you would think that after five years or so the price would come down, but by then the owner / manufacturer / retailer has completely forgotten about it, so nothing ever gets changed.  It's really going to screw up the economics, I think, when there's only one way to get a copy of the game (well, legally, of course).

So, while I'd love to get one, I think next time I have a spare $250, I'd probably be putting it towards getting something else.  I think the PSP Go is a great idea, in concept, but too expensive and not enough storage.  I could get past the all-digital downloads, eventually, I assume.  I'd still like to see some way to get a second hand market in there though -- it would really drive things along.

Edit: Whoops, apparently it uses a different format -- Memory Stick Micro M2 (or whatever order that goes in).  The pricing is just as bad, though.  $80 for a 16 GB stick.

dan in real life (September 28, 2009, 15:27 UTC)

I watched "Dan In Real Life" again this weekend (on Blu-Ray, wow it looks nice), and it is quickly becoming one of my favorite movies.

What's interesting, that I have noted, is now that my DVD movie collection is pretty much rounded out -- save the consistent three or four I always forget about and are on my wishlist to get someday -- is that now I get to see which ones I watch regularly.  What surprises me is that it's always the dramas.  There's a few classics that I keep returning to, to watch over and over again, and the great thing is that I enjoy them the next time as much as I did the first one.  It's awesome.  This movie is quickly becoming one of those, too ... I think this is the third or fourth time I've seen it, and it's not even close to becoming old.

If there's one type of movie I can never watch again, it's suspense / action movies.  Ones where they have you gripping / guessing what's going to happen in the end.  I don't like the sense of anxiety it creates, and besides, once I figure out what happens (by watching the movie) the feeling can never be recreated, and watching it again is really just torture for me.  So, there's a lot of movies -- really good ones, even -- that I refuse to buy only because I can't possibly sit through it again.  Movies like The Lion King, Finding Nemo and Toy Story come to mind (that's odd, all animated Disney ones ... go figure).

Anyway, dramas are for me.  And this is a great one.  I managed to score a copy on Blu-Ray for only $10 on Amazon which I could not pass up.  I don't remember the actual timeline, but I think this was one of they very first movies on Blu-Ray I saw ... well, I definitely remember that the colors were so gorgeous, and the transfer was so well done, that it convinced me to stop scoffing the format, and instead give it a chance.  It was probably then that I realized that *recent* movies on Blu-Ray look gorgeous.  And they do.  Wow.  Good times. :)