news aggregator
February 4, 2012
From the ice inside your soul
Christina Perri — Jar of Hearts
I bet at four o'clock this morning you weren't in a police station.
Or, at least, if you were I bet you were drunk and I bet it wasn't voluntary.
After the usual Friday night poor showing from my local pub (people who follow me on twitter will be aware that the torture of watching a hundred people think they're affirming their lives by singing Mr Brightside at the top of their voices is a regular part of my balanced weekly diet), I walked home, on a cold and cloudless night. I live about ten minutes walk from town, so the walk's no hardship, except that I was dressed in shirt and no coat and it was, as mentioned, cold.
I need to be clear about this. Ten degrees below zero, Celsius, is seriously chilly when you're standing in it in shirt-sleeves. I'm sure people in actually cold places like Canada or Minneapolis or Refrigeration, North Dakota will be laughing mockingly at this point, but firstly, bugger off, secondly I bet you lot bother to put a coat on when you go out, thirdly it's not two in the morning for you, and fourthly bugger off.
Anyway, I get home and... no door key in my pocket.
You know that feeling when the Fist of Fear grabs your balls when you realise something disastrous has happened? (I don't know what the Fist grabs for women. Feel free to fill me in, or actually maybe not.) Anyway: yeah, that. I went through the usual search-all-pockets-and-then-search-them-all-again routine, just in case a mischievous cold-tolerant leprechaun hid my key from the first search and then put it back, and... no door key. Oh dear.
I'll tell you this; the walk back to the pub again seems a much longer trek. Nowhere near as long as the second return to the house without my key, though, after it turned out no-one had handed it in. And now, what the hell to do, eh? I'm not prescient enough to hide a key in the garden, especially since that's a damned good way to come home one night and find no television where a television used to be, so... locksmith? Do they have 24-hour locksmiths? I can't be the first moron to have done this.
If you're bored today, I have a suggestion for you. Go and find a dude who claims to be a 24-hour locksmith and punch him in his stupid lying face.
Incidentally, how in Jah's name did anyone manage in this situation five years ago without a smartphone, huh?
Not that the internet helps when no-one frigging answers their supposedly-24-hour phone. Also, it turns out that about four of the local 24-hour locksmith companies are actually the same company, who did answer their phone, agreed to send someone, and then after an hour of me standing in the freezing bloody freezing cold confessed that they didn't actually have anyone to send.
It's now half three in the morning, and the shivering is starting to get on my nerves, and I can't get into my house without destroying something like a double-glazed plate glass window which will cost me hundreds of pounds to fix and my hands are shaking enough that I can barely light a cigarette, let alone throw a brick through a door that probably wouldn't break anyway, and I'd like to avoid the police showing up since I have no way of proving that I actually live here except for being able to describe where all the broken bits of skirting-board are, and everywhere is closed and the doors are all locked and it's really spectacularly bone-shudderingly mightily arse-clenchingly ridiculously psychopathically cold, and what to do? I tried sleeping in the shed. Now, cold is not like wind. Being inside a thin empty wooden building does not protect you from it. I was shivering like a jackhammer on a bouncy castle and it was becoming clear, even in my not-very-operational brain state, that lying on the floor at minus ten with only a shirt on could quite possibly lead to me actually freezing to death for real.
Well, if the police came, either I'd get into the house or they'd arrest me, and being arrested would at least make me warm, and right now I'd cut my right hand off if Pol Pot showed up as long as he brought a pair of gloves and some soup.
And then, through the frozen and frosty neurons came the sparkling thought that the police station would be open, wouldn't it?
I actually felt warmer just at the thought. Not much warmer, though.
Anyway, that's how I came to be sitting in the cop shop voluntarily at four am. One lovely copper even made me a cup of tea after I poured out my tale of woe in one long sentence, breaking only for my teeth to chatter together like I was trying to bite through the world.
Police stations: while I appreciate that you're generally there to deal with miscreants and so on, it wouldn't kill you to get rid of two screwed-to-the-ground plastic chairs and put in, say, a chaise longue. After switching my phone to airplane mode I managed to eke out enough battery life that I could sit and read while huddled up against the radiator for five hours until nine o'clock this morning, whereupon I went and fetched the spare key from my estate agent after the longest and coldest and most sleepless night I have ever experienced.
So, tips, for surviving a similar situation.
- Have a spare key. Note: I do not have a spare key hidden in my garden, burglars, so don't go looking for it. I do not know how to have a spare key somewhere where you can get at it but thieves cannot; suggestions welcomed.
- Have a girlfriend so that there's someone to let you back in.
- Next time you see a policeman, be nice to him.
I think I might have a nap now.
February 3, 2012
Myself, Giovanni Campagna as well as Colin Walters have all been working hard trying to make GJS somewhat of a competitor to PyGObject, being a full introspection stack for the GNOME Desktop Environment. Rather than give you a bunch of history, let me just give you a quick taste. There’s much more to the landing than this, such as implementing your own signals, properties, as well as implementing interfaces, but it will take me a few days to come up with an exciting example that fully showcases the power that you now have.
const Lang = imports.lang; const Cogl = imports.gi.Cogl; const Clutter = imports.gi.Clutter; const Gio = imports.gi.Gio; const MyClutterActor = new Lang.Class({ Name: 'MyClutterActor', Extends: Clutter.Actor, vfunc_get_preferred_width: function(actor, forHeight) { return [100, 100]; }, vfunc_get_preferred_height: function(actor, forWidth) { return [100, 100]; }, vfunc_paint: function(actor) { let alloc = this.get_allocation_box(); Cogl.set_source_color4ub(255, 0, 0, 255); Cogl.rectangle(alloc.x1, alloc.y1, alloc.x2, alloc.y2); } }); const MyClutterEffect = new Lang.Class({ Name: 'MyClutterEffect', Extends: Clutter.DeformEffect, vfunc_deform_vertex: function(effect, width, height, vertex) { vertex.x += Math.random() * 20 - 10; vertex.y += Math.random() * 20 - 10; } }); let actor = new MyClutterActor(); let stage = new Clutter.Stage(); actor.animatev(Clutter.AnimationMode.EASE_IN_OUT_CUBIC, 2000, ['x', 'y'], [200, 200]); actor.add_effect(new MyClutterEffect()); stage.add_actor(actor); stage.show_all(); Clutter.main();I’ve arrived safely and soundly in Brussels for FOSDEM, despite a weird back injury (I didn’t know you could get those from sneezing…) I’ve had a nice time talking to folks already, even if I’ve gotten a couple of rants about GNOME. There’s been some really great positive discussion too.
I’m excited for the Legal Issues devroom I’m cohosting with Tom, Bradley and Richard and also for the Crossdesktop devroom. I’ll also try to hang around the GNOME booth. Please come and say hi. See you there!
Somedays, I think why can't we have computers which just work.
But then I remember that I am a Computer Scientist.
So, yeah, I guess I understand why.
:D
Quite related to GNOME, really.
I’m so happy about this added functionality! I want to publicly thank Zoom for such a great free update.
The Zoom H1 makes super high quality recordings, and now also serves as a high quality digital audio mic while connected to a Linux computer.
Performing the Zoom H1 version 1.x to 2.0 upgrade in Linux
In short, this fails.
Something about writing the H1MAIN.bin to the Fat32 file system in Linux causes the very brittle upgrade process to fail. It will notice the file and begin the process, and end with “WRITE ERROR”. Thankfully it doesn’t brick the device.
The solution is to:
- copy your recordings off the device
- format the card inside the device: hold the Trash button while turning it on, then confirm the format by pressing the Record button
- copy the H1MAIN.bin file to the root of the device’s filesystem using a Windows computer (download Zoom H1 System Software Version 2.0 and unpack)
- initiate the upgrade: turn on the device while holding the Play/Pause button, then confirm the upgrade by pressing the Record button (twice)
Once upgraded, the mic functionality is detected and works automatically in Ubunutu (and presumably other Linux distros), and shows up in PulseAudio as both an Input and an Output. This means you also now have two audio outputs.
It even works in the Luz Spectrum Analyzer. Enjoy!
I’m so happy about this added functionality! I want to publicly thank Zoom for such a great free update.
The Zoom H1 makes super high quality recordings, and now also serves as a high quality digital audio mic while connected to a Linux computer.
Performing the Zoom H1 version 1.x to 2.0 upgrade in Linux
In short, this fails.
Something about writing the H1MAIN.bin to the Fat32 file system in Linux causes the very brittle upgrade process to fail. It will notice the file and begin the process, and end with “WRITE ERROR”. Thankfully it doesn’t brick the device.
The solution is to:
- copy your recordings off the device
- format the card inside the device: hold the Trash button while turning it on, then confirm the format by pressing the Record button
- copy the H1MAIN.bin file to the root of the device’s filesystem using a Windows computer (download Zoom H1 System Software Version 2.0 and unpack)
- initiate the upgrade: turn on the device while holding the Play/Pause button, then confirm the upgrade by pressing the Record button (twice)
Once upgraded, the mic functionality is detected and works automatically in Ubunutu (and presumably other Linux distros), and shows up in PulseAudio as both an Input and an Output. This means you also now have two audio outputs.
It even works in the Luz Spectrum Analyzer. Enjoy!
* byobu - nicer than plain screen with good defaults, for example key binding for scrolling is like in a regular terminal.* sbuild - nicer than pbuilder, defaults to overlay directory instead of tarball, hence fast by default, nice colors, build summary. I have heard about it for a long time, but the recent mention during Ubuntu devel week made me curious. It is friendlier now - no need for LVM snapshots. http://wiki.debian.org/mk-sbuild* syncpackage - which now allows syncing from Debian if you have Ubuntu upload rights. No need to burden the archive team members anymore for every sync or go the roundabout way of getting from Debian and then uploading manually without changes.* Modern Debian packaging in the form of the 3.0(quilt) source format and the new dh tools. The former allows a cleaner separation between the upstream and distro bits while the latter makes the debian/rules file much shorter and cleaner even than with CDBS, let alone with the classic debhelper way.* Twitter Bootstrap - mostly unrelated to packaging or command line stuff, but very nice regardless. CSS+Javascript UI elements that for me at least make jQueryUI superfluous, while being promoted as 'oh, just a CSS framework and style guide, not much else'.
A few Openismus people will be at FOSDEM In Brussels this weekend. FOSDEM is always a great conference, but I can’t be there myself as my travel is generally limited by the need to take care of my kids.
Michael Hasselmann and Jon Nordby are both giving talks about the Maliit input method framework, as seen on the N9. We are eager to find customers who need our help to integrate and improve this only real choice for an open-source on-screen keyboard. So we hope that some people of influence take the opportunity to get to know the project and its excellent developers.
Jens Georg is also giving a talk about Rygel, used in the N9 to support UPnP and DLNA. For German speakers, there are already video and slides online of a recent talk that Jens did about Rygel in Berlin for Deutsche Telekom’s Developer Garden. I was amused to discover that DLNA had specified themselves into a situation where a minimum certified server and a minimum certified receiver were only able to share a small resolution JPEG format. Apparently it’s getting better, and Rygel can deal with it all.
As promised, the poll to name the openSUSE event to be held in Orlando, FL September 21-23, 2012 is now online. Please vote before February 11th!
And as always, if you want to get involved in planning, please visit our planning page.
Thanks!
Bryen M Yunashko
In a few hours, I'll be flying to Brussels with Ivan, for a new edition of FOSDEM, undoubtedly the best Free Software conference in Europe.
I'm looking forward to hang out with Debian, GNOME and #dudes people, as well as to explore some other quiet and cool spots in the city with our hosts Raül and Vir.
I'll probably be around the CrossDistro and CrossDesktop rooms most of the time, but before that I'll be at the Delirium café not long after landing in Brussels.
For someone who doesn't enjoy cold weather that much, this is going to be a special edition… oh dear, -10℃, this is fucking crazy!
So as usual I need an excuse for not blogging for so long. This times it’s work, moving to Berlin and some other things.
Anjuta
While I haven’t contributed that much code in that cycle apart from minor bug-fixing there have been a couple of nice contributions:
- Sébastien Granjoux did amazing work to improve our project management which is now much easier to use and more powerful
- Marco Diego Aurélio Mesquita (what a name) improved the glade integration by allowing to automatically connect widgets and code
- But I guess I should cover all this in a “What’s new in Anjuta 3.4″ post pretty soon
Gdl
The often forgotten but still heavily used docking library…Inkscape forked that library into their repository and added some fixes for them that were never magically contributed back and at some point (especially with the gtk+3.0 transition of gdl) I became very hard to merge between the projects. However, lately Alex Valavanis stepped up and ported most of the Inkscape patches back into gdl master and hopefully Inkscape will be able to use stock gdl (or probably better gdlmm) really soon.
Gnucash
As I tried to organize all my banking stuff I made some contribution to the best linux banking software in the area of HBCI/FinTS which is a german standard to securely initiate online transactions with your bank. I hope to find some time to actually implement SEPA (read EU- or international transactions using IBAN and BIC) at least originating from german accounts. But I have to think about how to compute (98 – (x mod 97)) for x being larger than a 64-bit integer and while I found some strategies on the web this was too much math for a late evening. Before you ask, this is part of the way an IBAN checksum is computed and I need this checksum because at least for Germany the IBAN can be generated as a combination of account number and bank-code.
Brno Hackfest
/me will be there saving the world or drinking beer, maybe both.
Laptop
After having been for a couple of hackfests which my much loved white netbook (read: “Oh, it’s so cute…”) I though it’s time for a real (male laptop. It doesn’t seem very easy to get a reasonably priced laptop without a Windows license or preferably with a preinstalled and working Linux. After some searching I ended up buying a ThinkPad Edge 320 from linux-laptop.de which arrived pretty quickly (apart from some problems with the postal service). I ordered it preinstalled with Linux Mint after having only used Fedora for a while.
The installation was complete but the fan was constantly running which annoyed me but can be fixed by installing the thinkfan utility and now things are quite again! I reported this back as I kind of assume things like that installed when I order a laptop with operating system.
- Up early, breakfast, onto Easy Hackery slides, nasty head cold catching me with a vengance. Italo published a beautiful FOSDEM infographic which he has been building.
PackageKit has a “WhatProvides” API for mapping distribution independent concepts to particular package names. For example, you could ask “which packages provide a decoder for AC3 audio files?
$ pkcon what-provides "gstreamer0.10(decoder-audio/ac3)" [...] Installed gstreamer0.10-plugins-good-0.10.30.2-2ubuntu2.amd64 GStreamer plugins from the "good" set Available gstreamer0.10-plugins-ugly-0.10.18-3ubuntu4.amd64 GStreamer plugins from the "ugly" setThis is the kind of question your video player would ask the system if it encounters a video it cannot play. In reality they of course use the D-BUS or the library API, but it’s easier to demonstrate with the PackageKit command line client.
PackageKit provides a fair number of those concepts; I recently added LANGUAGE_SUPPORT for packages which provide dictionaries, spell checkers, and other language support for a given language or locale code.
However, PackageKit’s apt backend does not actually implement a lot of these (only CODEC and MODALIAS), and aptdaemons’s PackageKit compatibility API does not implement any. That might be because their upstreams do not know enough how to do the mapping for a particular distro/backend, because doing so involves distro specific code which should not go into upstreams, or simply because of the usual chicken-egg problem of app developers rather doing their own thing instead of using generic APIs.
So this got discussed between Sebastian Heinlein and me, and voila, there it is: it is now very easy to provide Python plugins for “what-provides” to implement any of the existing types. For example, language-selector now ships a plugin which implements LANGUAGE_SUPPORT, so you can ask “which packages do I need for Chinese in China” (i. e. simplified Chinese)?
$ pkcon what-provides "locale(zh_CN)" [...] Available firefox-locale-zh-hans-10.0+build1-0ubuntu1.all Simplified Chinese language pack for Firefox Available ibus-sunpinyin-2.0.3-2.amd64 sunpinyin engine for ibus Available language-pack-gnome-zh-hans-1:12.04+20120130.all GNOME translation updates for language Simplified Chinese Available ttf-arphic-ukai-0.2.20080216.1-1.all "AR PL UKai" Chinese Unicode TrueType font collection Kaiti style [...]Rodrigo Moya is currently working on implementing the control-center region panel redesign in a branch. This uses exactly this feature.
In Ubuntu we usually do not use PackageKit itself, but aptdaemon and its PackageKit API compatibility shim python-aptdaemon.pkcompat. So I ported that plugin support for aptdaemon-pkcompat as well, so plugins work with either now. Ubuntu Precise got the new aptdaemon (0.43+bzr769-0ubuntu1) and language-selector (0.63) versions today, so you can start playing around with this now.
So how can you write your own plugins? This is a trivial, although rather nonsense example:
from packagekit import enums def my_what_provides(apt_cache, provides_type, search): if provides_type in (enums.PROVIDES_CODEC, enums.PROVIDES_ANY): return [apt_cache["gstreamer-moo"]] else: raise NotImplementedError('cannot handle type ' + str(provides_type))The function gets an apt.Cache object, one of enums.PROVIDES_* and the actual search type as described in the documentation (above dummy example does not actually use it). It then decides whether it can handle the request and return a list of apt.package.Package objects (i. e. values in an apt.Cache map), or raise a NotImplementedError otherwise.
You register the plugin through Python pkg-resources in your setup.py (this needs setuptools):
setup( [....] entry_points="""[packagekit.apt.plugins] what_provides=my_plugin_module_name:my_what_provides """, [...])You can register arbitrarily many plugins, they will be all called and their resulting package lists joined.
All this will hopefully help a bit to push distro specifics to the lowest possible levels, and use upstream friendly and distribution agnostic APIs in your applications.
February 2, 2012
I microblogged (diaspora, identica, twitter) the following statement a few weeks ago:
First new year’s resolution, 10 days late: I will use ‘hereditary license’ any time I am tempted to say ‘viral license.’
Surprisingly, this generated quite a few responses (on identica and elsewhere)- some people liked it, but many people had their own alternative to propose. So here are some longer-form thoughts.
There are four primary options that I am aware of when trying to find a one-word term for open source licenses that in some way compel distributors to also distribute code- i.e., the licenses called “copyleft” by those of us who have spent too much time with this stuff. The terms:
- Copyleft: This is the common name when speaking to other people experienced in open source, so it’s obviously the first choice when you know your audience has at least some experience in open source. But to an audience not already involved in open source (the only time I’m ever even vaguely “tempted to say viral”), the phrase is completely non-obvious. It has zero evident meaning. In fact, it can actively confuse: it could mean the reverse of copyright, which to most people probably means “no license” or anti-copyright altogether. So it’s really not a good word to use for audiences who aren’t familiar with open source- which is to say, most audiences.
- Viral: This is another old standby. Traditionally, the objection to this term has been that it is perjorative: no one likes viruses, so ‘viral’ is often seen as (and sometimes is) a deliberate attempt to frame copyleft licenses as inherently bad. That objection is certainly accurate, but I think there is another problem with this word: it implies that, like a virus, copyleft can spread to someone without their active involvement; you can “catch” it from the digital equivalent of being in the same room with someone, or not washing your hands. This isn’t the case – there must be a strong relationship between the copylefted code and the other code that might be required to be shared. This, to me, is where “viral” really fails to communicate. It makes people think that a copyleft is something that might “happen to them” instead of it being something that they have to be actively involved with.
- Share-alike (or the related word “reciprocal”): Oddly, neither of these is used much outside of the Creative Commons world. Neither of these are bad terms: they are reasonably value-neutral, and they both imply that there must be an actively chosen relationship between the parties, which I think is important. But to me they don’t capture the why of the relationship; it makes it sound like there might be a choice in the matter, or something you do because you’re a nice guy.
- Hereditary: Richard Fontana traced this back to at least 2004, so it isn’t new, but without doubt this is the least used of the various terms I’m discussing here. At least for the moment, though, and for general audiences, I’m leaning towards thinking it is the best option. First, it implies that there has to be a real, derivative relationship between the two codebases; it can’t just happen at random (like viral implies). Second, it also implies that once the relationship exists, further licensing isn’t a choice- you must pass it on to the next folks who “inherit” from you. (Share-alike/reciprocal might imply that you do this because you’re a nice guy, which isn’t the case, or that you do it back to the original sharer- which also isn’t necessarily the case.) The analogy obviously isn’t perfect, most notably because a mere redistributor who hasn’t created a derivative work that “inherits” from the parent work is still bound by the license. But I think on balance that it has the fewest tradeoffs.
So there you go, for the dozen people who asked, and the hundreds, nay billions more who don’t care :)
I haven’t blogged lately. For some reason since the popularization of Facebook posts and tweets, my ability to write more than a few coherent sentences have greatly diminished. Perhaps it is just me getting old but change is what change does and a lot of change has happened recently. The biggest recent change is me getting a promotion to Senior Software Engineer and moving from the Fedora team to the OpenShift team inside of Red Hat. Yes, I have traded Beefy Miracles for Space Pandas and I think the change has done me some good. I have wanted to transition to a more customer driven structured part of Red Hat without sacrificing the excitement of working with a fast moving project. OpenShift fit the bill very nicely with their agile development workflow in the emerging field of PaaS (Platform as a Service) cloud development. It is also nice having a large and growing team to work with.
My involvement with PyGObject
That being said most of my hacking time will be spent on OpenShift related projects and while I had already transitioned out of day to day PyGObject maintainership some time ago, I will no longer have any real time to dedicate to the project (I’m actually learning Ruby right now). To tell the truth, not being able to put any more serious time into the project is one of the major reasons I decided I needed a change. There are a number of other people still contributing to the project but it is sorely in need of a lead maintainer who can do releases, keep people on schedule and ping the right people when bugs languish. I feel PyGObject is in good shape but as it begins to get more uptake bugs fixes need to be committed, edge cases corralled and the last mile needs to be traversed. I will still hang out in #python on GIMPNet and can be persuaded to look at patches or even write a few if you ping me and are nice.
Jobs
With me leaving the Fedora team there is now an opening for someone to join the team. They are looking for an all around FOSS rock star who can work in a number of different areas such as packaging, desktop and web development, and any number of miscellaneous skill your would encounter with any FOSS project. The main responsibilities would be maintaining, improving and integrating our infrastructure tools such as Fedora Community Packages web app, Bodhi update tool and Fas accounts system as well as developing tools to make it easier to contribute to Fedora. Most of the tools are written in Python so being a Python expert is a big plus as well as having worked as part of a team on any major open source project. If that sounds like fun to you send me your resume (I get a bonus if you get hired).
OpenShift is also expanding so if any of these jobs look more like your speed feel free to mail me also.
[read this post in: ar de es fr it ja ko pt ru zh-CN ]As some of you may have noticed, SUSE will have their SUSECon event in Orlando, Florida this coming September. And because SUSE recognizes the importance of the openSUSE Community, they have graciously granted space for us to have our own conference of sorts immediately after SUSECon.
So, yesterday we had our kickoff meeting to start planning our event. We have yet to have an official name for it but we will be launching a poll tomorrow on our Connect site to see which name most people like. Stay tuned for the announcement to that poll link! And if you have a suggestion for a name, mention it now so I can be sure to include it in the poll.
I posted a detailed summary of what we discussed during the kickoff meeting. What I really liked about yesterday’s meeting was the obvious interest and energy of the community in attendance. The community has waited a long time to see such an event in the Western Hemisphere and now those voices are finally heard. This does not however replace our main openSUSE Conference which is held every year in Europe. The Florida event is more of a regional somewhat smaller-scale event that aims to bring together the Community in the North America region, though obviously it is open to everyone from around the globe.
It is an event that will be defined and driven by our community. And I’ll be sure to blog whenever I can to keep you updated on the evolution of this event.
So what’s next?
This is not a community event if the community isn’t involved. And that means we now need volunteers to step up and join the various committees. Small or big, the tasks are varied and there’s a good chance there’s something interesting enough for you to roll up your sleeves and get involved. Check out our planning wiki page and add your name to the volunteer section.
We’re hoping to get a formal announcement of the event (including its name and website) by early March. But don’t let that hold you back from marking your calendar to visit Orlando, Florida September 21-23!
VLC uses libdvdcss and ignores region codes, a copyright mechanism designed for the sole purpose of fucking consumers and the primary reason why I will never ever purchase DVDs.
From the final version of ACTA:
5. Each Party shall provide adequate legal protection and effective legal remedies against the circumvention of effective technological measures that are used by authors, performers or producers of phonograms in connection with the exercise of their rights in, and that restrict acts in respect of, their works, performances, and phonograms, which are not authorized by the authors, the performers or the producers of phonograms concerned or permitted by law.
Considering that region codes are an arbitrary software restriction, surely they aren’t considered an effective technological measure. Or are they?
Without prejudice to the scope of copyright or related rights contained in a Party’s law, technological measures shall be deemed effective where the use of protected works, performances, or phonograms is controlled by authors, performers or producers of phonograms through the application of a relevant access control or protection process, such as encryption or scrambling, or a copy control mechanism, which achieves the objective of protection.
Do you notice something funny about that definition? It removes the criteria that effective technological measures be effective. Bypassing region codes might be legal, depending on how broadly you interpret the above, but playing encrypted dvds on Linux is out of the question.
Stop ACTA. More here.
If you are reading this on Planet GNOME, follow my blog directly. This is my last week on PGO.
- Up earlyish, attempted to catch the train to Cambridge, drove instead, slideware on the train to Kings Cross. More happy hacking on the Eurostar.
- Off to meet up with some Mozilla hackers at a beautiful co-working space. Caught up with JP, Julian Seward, Taras Gleck & met a host of others. Out for dinner.
Two more big weeks at GNOME, and Marina has reminded me that my internship is already halfway over. This made me sad, until I remembered I don’t have to leave… ever!
These weeks were full:
- Allan Day, Sri and I had a successful meeting using Google hangout, where we discussed the redesign of news.gnome.org, a restructuring of the news process, and tried on reindeer disguises. We couldn’t help but be impressed with the hangout, which worked perfectly with our 3 different operating systems. Since then, Sri has worked tirelessly to create a test space for me to start building the site. I attempted to load the gnome-grass theme to my own hosted space as a fall-back, but encountered php errors when activating the theme. I’m working on solving that, but it would probably be better to have space on existing GNOME servers. THANK YOU to Sri and Andrea Veri for all their work.
- I started on the task of writing an article about the GNOME “Thank You Pants Award” for the Annual Report. To that end, past pants winners, Matthias Clasen and Gil Forcada have obliged me by answering several interview questions regarding this creative award given annually for service to the GNOME community. I hope to write an amusing entry for the Report by next week.
- On Joanie Diggs’ suggestion, I have started working on updating the GNOME deployments page on the wiki. It is sorely out of date, and does not present a good or current portrait of GNOME in the real world. The very good news is that, with Marina’s help, I have already tracked down some unmentioned projects of note, and am hopeful of finding more. Our marketing efforts depend on us proving the viability of GNOME by being able to cite real-world usability. I’m happy to contribute to that end.
- During an OPW intern meeting, we discussed a fun new design project to improve the women’s intern application process and new intern introduction process by creating a series of comics outlining these areas for contributors. I plan to help with this once it gets going.
- I’m happy to report that on Tuesday, I got my git privileges instated, thanks to Andrea Veri and Vinicius Depizzol, creator of the Gnome grass wordpress theme. I hope this will make me more effective helping out with the web development task load, which is hefty right now. Little tasks like updating the a11y progress banner on gnome.org can be done so quickly when you can git push!
- Last, but not least, I’m going to start creating some of the hackergotchis that some of you have been waiting for! Look for more floating heads coming your way!!
So, I’m busy… and it’s all good.
P.S. If any of you are going to the developer conference in Brno, I’d sure love to connect with you about doing a short report from the event for GNOME news-
Last week was a blast. Spending a couple of days working on Pitivi fulltime and meeting with the awesome GStreamer folks again was a thrilling experience. Not only that, but it happened in the beautiful city of Málaga.
Coming from Montréal, I’m still a bit shocked at the sight of people wearing coats, scarves and tuques in broad daylight at +15°C.
Hell, the weather in Malaga was so consistently mild that even if we were in the middle of January, in the morning I went outside straight from the shower with wet hair, which dried in minutes!
While we’re talking about showers again… Malagans, unlike Bostonians, got the usability of their shower handles/lever/thingie right. However, they completely fail at road signage and urban planning. I thought I’d never see the day when I’d find something worse than the province of Québec, but it seems we have a new winner here:
- Street names written in minuscule font sizes on buildings (when they are present at all)? Check.
- Road signs inside the ramps/exits (when it’s too late)? Check. (Québec has that too)
- One-ways everywhere? Check.
- Inability to get back on a highway if you take the wrong exit? Check.
- Roundabouts where you have to yield to people outside the roundabout? Check.
- Roundabouts with streetlights every 30 degrees? Check.
- Tiny road signs inside the roundabout instead of on exits? Check.
I found this all quite amusing. Except when Antigoni and I had to get back to the airport and mistakenly ended up on an exit ramp on avenida de Andalucía.
Okay, back to the hackfest.
Notwithstanding the work we did on planes or busy airports and the many discussions we’ve had around tapas, we spent three days doing solid coding, debugging and ass-kickin’ on Pitivi and GES. I’m very happy that, in the process, Antigoni learned some new tricks and knowledge to make her more comfortable with hacking on the pitivi codebase. We also got our shares of laughs too. Like the fact that I ate three hours of Edward’s time trying to investigate why importing clips crunched my hard drive for many seconds… and then realizing that the culprit was not my code nor the gst discoverer, but GTK+ itself.
More precisely:
- Thibault spent the whole time hacking on GES and answering our questions.
- Antigoni went concrete/practical by attempting to fix undo/redo for effects, getting more familiar with GES in the process. I’m happy to have been able to answer some of her questions and being able to point out pitfalls in the code: at times, it even seemed like I knew what I was talking about, which is always a great thing!
- Edward spent nearly the whole time grunting and swearing in French, except when the sound was muffled by his palms:
As for me, I:
- Fixed image thumbnailing/permissions on the wiki and deleted 1846 spam image files scattered in 1539 folders.
- Reimplemented pitivi’s clip import process using the asynchroneous gst discoverer, which means that not only does the import progressbar work again, but it is blazing fast and doesn’t block the UI.
- Cleaned up code, standardized variables and fixed various bugs (such as seeking to the end of the timeline, or making the viewer check the pipeline position only when actually playing… your CPU will thank me)
- Implemented the ability to save/export the current frame as an image file. Hey, the code was just sitting there in GES, waiting to be used!
- Got convinced by Thibault to try implementing transitions and timeline video thumbnails myself. We’ll see how it goes.
We stayed one or two days after the end of the hackfest. Thus, on Saturday, pretty much the only day where weather sucked, the superhacker trio went on a touristic ride to Ronda, in awe at some of the alpine beauties of Andalucía:
More pics here.
This week made me realize/feel something even more strongly than before: since Thibault’s massive cleanup, hacking on Pitivi with GES is easy. No more files/modules confusion. No more “massive core” getting in your way. The code can still benefit from some cleanup/simplifications to make it feel more “pythonic” (patches welcome), but it already feels incredibly more agile and elegant. It now feels enjoyable rather than a maintenance ordeal. More like poetry, less like a thesis.
If you were hesitating to contribute to Pitivi, now is an exciting time to take a fresh look at it. We need help and there’s a lot of low hanging fruit that can be fixed. We’ll be happy to help you get started.


