September 02, 2010

The motivational drivers and barriers of volunteers in open source communities Part 2

I blogged a while back about Barry doing his Masters Thesis on The motivational drivers and barriers of volunteers in open source communities which looked at the Ubuntu Community, he handed it in yesterday and I know some folks were curious about results so I asked him to write a small piece for the blog:

Barry Smyth:
In early 2010 I sat in on a seminar on Open Source Software and the community in Ireland, organised as part of my masters course in DIT Kevin St. One of the speakers was Laura Czajkowski. It was during her
talk that I saw the commitment she had to the community and it begins a process of thought about what drives individuals to offer their time and effort to Open Source Communities.

The course that I was studying was Computing but specialising in Knowledge Management (KM). Knowledge Management is the realisation that knowledge is an organisations greatest asset. We constantly hear
the term Knowledge and Smart economy being touted by the Irish government at the moment. They like so many large organisations realise that it is what we know and don’t realise we already know can
be our greatest resource.

Within companies it is commonplace for individuals to hoard knowledge, we do this for various reasons.

  • We are not confident about what we know, and are afraid others may disregard our knowledge.
  • We fear giving our knowledge freely, as it may make us redundant.
  • We find it difficult to articulate our knowledge.
  • We do not have the tools available to record our knowledge.
  • We simple do not realise that we possess some knowledge.

KM is about accessing the knowledge within people, teams, departments, organisations, then storing that knowledge in an understandable or codified fashion, and finally making that knowledge available and
easily accessible to others. Some prime examples of where KM can work effectively is in the Pharmaceutical industry, where the process of getting new drugs to market can be as long as 12 years. Most of the large pharmaceutical companies have implemented large KM projects. One in particular cut the time for filling applications to the European and American drug boards in half. The KM systems they installed held the knowledge of previous employees and former workers of the American Federal drug  Administration (FDA). Due to their expertise as to what information was required in an application, these applications could be filled out much faster. As you can imagine the saving of several years in getting a drug to market is worth a considerable amount of money to drug companies. This is can be the power of KM.

However what many organisations find when they implement KM initiatives, regardless of the money, time and expertise that they throw at it, is people seem unwilling to share their Knowledge. There are drivers that motivate and barriers that prevent people from sharing their knowledge.

Within Open Source communities, we have a group of people who come together to freely share knowledge. This makes it an ideal place to investigate positive motivations. If KM initiatives could replicate
the motivations within Open Source Communities then their initiatives could prove far more successful.

Back to my story, I began to realise that the Ubuntu community could offer me a perfect environment to investigate motivations to knowledge sharing. In May I contacted Laura and told her about my Idea. Within days we
were sitting down together in a lab in DIT and Laura was showing me around the Ubuntu community. Over the course of the next 3 months with Laura and several other members of Ubuntu’s community I had fashioned
a suitable experiment. The experiment would utilise the existing social networking pages (Launchpad) within the community and over a period of Two weeks would email an advertisement of one of those profiles to the mailing list of the Irish team. I would then survey the Irish team to ascertain the usefulness of the experiment. The idea of the experiment was to measure the levels of trust needed for knowledge sharing, and whether tools like Launchpad could assist in people getting curious about others in the community. This is the starting point of building relationships and trust. The experiment received great support from the community and I had a fantastic response to the survey. The experiment idea was even taken on board as a continuous feature by the UK and North Carolina teams. The results of the experiment did indeed indicate that, firstly trust
is important to knowledge sharing and secondly tools like launhpad if used in a proactive manner can initiate contact between members of the group.

Overall my experience dealing with Laura and the rest of the Ubuntu community was extremely pleasant. I could not of asked for any more help or enthusiasm. It was a privilege to get an insight into a remarkable community.

This is an extract of some of the projects findings:

  • The project’s findings clearly suggested the varying forms of trust. That initial conversations between members in the Ubuntu community did lead to greater curiosity of others.
  • This can then lead to a process where two individuals will get to know more about each other and strengthen the bonds of trust between them.
  • The project also identified tools as being very important within online communities in building familiarity and trust.
  • Correspondence and direct communication was identified as being the most important tool in which people will get to know one another and build trust.
  • The project results suggested that the availability of social networking tools in this case Launchpad was utilised by members as a means to gain more knowledge about other users. However it also suggested that this was after initial correspondence with that individual. Curiosity of others increased after correspondence with them. This would suggest that tools are very useful in the process of building trust and friendships in virtual communities.
  • Communities where there is little correspondence however may not benefit from this trust building processes and utilisation of community tools. This is where the project findings are so useful. They clearly suggest that by advertising members profiles can initiate curiosity in them. Traffic to the profiles and results of the survey indicate that this is the case. This can be an important initiative in implementing the trust building processes in communities and subsequently the sharing of knowledge. It can help drive the initial stages of a KM system and could become an important part of the familarisation and trust building process.
  • The building of friendships was indicated as being one of the main motivators of membership in open source communities and thus the free sharing of knowledge. Trust is a vital element in any friendship and therefore any tools that can facilitate this are very valuable in creating a healthy dynamic knowledge-sharing environment.
  • The findings imply that a proactive approach is needed within a community to initiate the trust building process, that although members desire to build relationships of trust with others they may need a push to do so.

Thanks to Barry for the update, if anyone wants to drop him a line here is his email address.

Holidays

Visa, finally got it

Visa, finally got it

Tuesday next week is my last working day and I’ll be gone for three weeks, without laptop. If you have anything really urgent, talk to any members of my team, Michael or Ara, they know how to get in touch with me.

I’m very much looking forward to this one and happy to meet Mehdi of the LoCo team there! :-)

I’ll be back on 29th September.

Ubuntu in Education

Wow – I’ve already been amazed at learning about some of the great things happening with Ubuntu in Education.  At every level, Ubuntu in schools and learning just makes sense.  Yesterday I was pointed to this great map showing school deployments in Finland:  http://bit.ly/amFiOO .   Greece is right behind them and lots of schools in the US are reporting success using Ubuntu as well.  The work is being done by both volunteers and Solution Providers.

The Andalusia deployment of over 200,000 systems is well documented and Amtron deploying 28,000 in Assam in northern India and Oxford Archaeology and Johns Hopikins and Oakland University and the list continues to grow.  Next week I’m visiting a local school in my backyard of Houston, TX that has migrated to Ubuntu using Moodle and other open source SIS (Student Information Systems).  The project lead is also the volunteer coordinator of the Moodle Core Contrib team.   I had to travel out of town to meet him and learn about this great project.  I’m really glad I did!

Next up, the Edubuntu team is still being driven by the unstoppable Jonathan Carter (highvoltage) and everyone is welcome to stop into #edubuntu and join the weekly meetings on Tuesdays to add your voice.

Who am I?  I’m Dinda!   I came into the world of open source and Ubuntu some five years ago b/c of my interests in Education and all things learning.  You might have seen me around various projects but now I’ve taken on the temporary role of looking at everything related to “Ubuntu in Education” and creating some materials to help anyone who wants to use Ubuntu for learning.  Are you a student?  parent?  educator?  Sys Admin or IT staff at a school/University?  Voter?  Decision maker or Service/Solution Provider?  What do you need to make Ubuntu a success in your school?  Email me or add your comments here.


Just in case you are a HP BL4* G6/7 user

and you have an HP NC 511i Emulex Dual Port 10GB Ethernet/ISCSI/FoE Adapter on board,
it works with Ubuntu Lucid and Maverick (Daily from Yesterday).

The only bug, which is now known as LP bug #628776, is that in the installer kernel module udeb packages the be2{net,scsi} modules are missing.

When you continue the installation without network Ubuntu Lucid/Maverick comes up and detects this card and loads the kernel modules.

Why do you use Ubuntu?

We’ve been looking at making developments to the Ubuntu website that explore and highlight the reasons for using Ubuntu above and beyond the features of the products. One idea we had was to invite community members and Ubuntu users to tweet or post about why they use Ubuntu and display this on the site. The community’s voice on the website would demonstrate one of the key drivers for using Ubuntu: showing the strength and commitment of the community, not just telling visitors about it.  Adding the voice and personality of the community to the websites will enable members and users to participate in our site’s messaging and to share their passion for the concept and principles on which Ubuntu is based.

We decided to run a test yesterday to see how you responded and whether there was interest. There are some great replies. Our favourite so far:

#iuseubuntubecause every update is like xmas

More can be found here: #iloveubuntubecause

Please post your own and raise awareness so we can get a broader response.

Have you got any other ideas for how we can bring this to the fore on our websites?

Install web applications locally on Ubuntu

I was talking with someone yesterday who is hacking a WordPress theme together. If you work with web sites, being able to run a site locally allows testing, experimentation, developing new themes and even just checking that a software update isn’t going to break your site. You might want to keep a web application on a local network and away from the Internet – such as StatusNet, a Wiki or a project management application. All we need is to install a LAMP stack – Linux Apache MySQL and PHP. We’ve already got the “L”!

Synaptic (System->Administration->Synaptic Package Manager) lets you install common groups of packages (Edit->Mark packages by task…) in this case a LAMP server. You can do the same from a command line using “sudo tasksel install lamp“. Once the components are installed, you’ll be asked for a root password – this is used by MySQL and is not the system’s root password.

The default web root is /var/www – if you check it now there is an index.html. Open a browser and enter the system’s address (usually http://localhost/), you’ll be greeted with the contents of that file so we know the system is working. So how do we get our own files up?

Apache uses virtual hosts – we can have multiple sites on the same server. Each site is defined by a configuration file in /etc/apache2/sites-available. If you look there now, you’ll see the default site, we can use this as a template for a new site:

sudo cp /etc/apache2/sites-available/default /etc/apache2/sites-available/wordpress
gksu gedit /etc/apache2/sites-available/wordpress

You need to change DocumentRoot and Directory to point to the folder your site is going to be in. So lets say you want to use a folder called “wordpress” in your home folder, change “DocumentRoot /var/www” to “DocumentRoot /home/USERNAME/wordpress” and “<Directory /var/www/>” to “<Directory /home/USERNAME/wordpress/>“. We can also give an alias, so we access individual sites by name, to do this add the following “ServerAlias wordpress“.

You can then add “wordpress” to /etc/hosts (change the line that reads 127.0.0.1 localhost to 127.0.0.1 localhost wordpress) and use the address “http://wordpress” to access your site.

Ubuntu has a utility to add the site to Apache which will also need restarted:

a2ensite wordpress; sudo /etc/init.d/apache2 reload

If you’re only going to be using one site it would be easier to use the default site (which is already configured). Ubuntu adds the first user to the www-data group, so you can either change the ownership of /var/www or add a sub-folder with either the user’s ownership or membership of www-data (note you’ll need to change the group permission too). I’m adding a folder I own:

sudo mkdir /var/www/dougie;
sudo chown dougie:dougie /var/www/dougie

This can be accessed by http://localhost/dougie. I’ve seen a few forum posts saying that people have issues with folder permissions and there are some misconceptions. I’ve even seen it suggested to edit everything with “sudo nautilus”!

Now with the letter “A” out of the way we can deal with the “M”. Most web applications need at least one database. Remember that MySQL password?

mysql -u root -p

A good example is installing WordPress. Download and extract the contents to your web folder (in my case /var/www/dougie). Create a new database called “wordpress“, with a user called “wordpress” and a password of “wordpress” by entering each command at the prompt:

create database wordpress;
grant usage on wordpress.* to wordpress@localhost identified by 'wordpress';
grant all privileges on wordpress.* to wordpress@localhost;

Type “\q” to exit then open a browser and go to your site, for me that’s http://localhost/dougie.

So lastly we get on to the “P” – PHP. Apache will recognise and run PHP, however be aware of a caveat I’ve noticed in Ubuntu. If you try to use your system hostname instead of localhost in Firefox, it will try to download rather than run PHP files. I believe this is due to the system hostname resolving to 127.0.1.1, a solution to Debian bug #316099.

PHP applications often have their own installation scripts, which WordPress does. Enter the database details we just created on the WordPress install screen:

Once the rest of the screens are complete, you’ll have WordPress installed.

So to recap, all we need to do to add an application is create a virtual host so Apache can serve it up; create a database for it to store data; and configure the application – often via a browser interface. Now you can hack away at those WordPress themes to your heart’s content.

More information is available from the Ubuntu Server Guide.

Related posts:

  1. Blogging platforms Has anyone else noticed a large amount of ping backs...
  2. What do you identify as? I’ve been looking at my site stats and it seems...
  3. Samsung NC10 – a pleasant Ubuntu experience It’s another year and I’m deploying next week. One of...

LoCo Testing Team HowTo

I finally completed the wiki page about the Italian experience in ISO Testing:

https://wiki.ubuntu.com/Testing/LoCoTeam

I would really love if other LoCos would like to start ISO TESTING contributing in making Ubuntu everyday better.  I also ask you to continue improving that page sharing your experiences as well.

Ciao!


Happy Beta day everyone!

Happy Beta Release day one and all. If you’ve not yet upgraded surely now’s the time ;)


Handicap accessibility meeting for open communities webmasters

This blog blog is taken from Kinouchou's blog. And since she wanted to reach as many people as possible, she asked me to relay it here. So please if you have any comments, post them on the original blog post.

Handicap accessibility meeting for open communities webmasters

Accessibility and free software are two very important issues for me, that's why I didn't hesitate to join the accessibility and free software workgroup of the APRIL association in December 2009, in order to combine both aspects of these issues. I am also involved in the French-speaking Ubuntu community, who works actively on redesigning the website. A lighter, more aesthetic version of the website is a good thing, but improved accessibility is better. Given that many different tools are used to operate the website, it is rather difficult to know the different rules to make them accessible.

The idea is to organise a one-day meeting with webmasters from the different free software communities and with a specialist in digital accessibility. Armony Altinier, in charge of the accessibility and free software workgroup, accepted to join the meeting as a specialist. So, this is a great pleasure for me to announce that the meeting will be held in Paris on Saturday, the 20th of November 2010 at the Fondation pour le Progrès de l'Homme. The goal of this meeting is to help "free software developers who act as volunteers to improve the accessibility of the community websites they are in charge of". This free meeting will be the opportunity for participants to establish or widen their knowledge of the stakes related to digital accessibility, to learn to grasp its rules and to think on concrete cases, i.e. their websites.

Any community promoting free software is entitled to participate. the only conditions are to be the webmaster in charge of the community's website, to master HTML/CSS, to know how scripts work and to commit to improve the accessibility of their website. All information is available on handicap accessibility and free software wiki page.

HCI at Canonical


uTouch

Back in March, I blogged about future possibilities (in a blue-sky sense) of multi-touch, mentioning the project management I was doing for MT hardware kernel driver support in Lucid (and then proceeding to dive into the deep end of speculation). It's now an Ubuntu cycle later, and holy crap... I'm having a hard time finding the words. I think the blog title says it all. But I'll try to elaborate :-)

Unless you've been living under a rock, you've probably noticed the big announcements we made a few weeks ago:
For the next few days, we were all over Google news. This was quite a shock, given that we'd been heads-down into the project for so long and hadn't really come up for air nor fully anticipated the impact (to others or ourselves). Needless to say, after the intense amount of work that the team had engaged in over the previous couple months, this was quite gratifying, if somewhat unexpected.

There has been a lot of discussion in blog posts, mail lists, IRC (#ubuntu-touch on freenode.net), Launchpad bugs and merge proposals, etc., so much so that touchscreens now pursue me feverishly when I sleep at night. I'm really not interested in writing more of the same :-)

As such, I want to mix things up a bit...

HCI Remixed

I've been reading an amazing anthology of essays on human-computer interaction. I still haven't finished the book (yeah, I've got about 10 in-progress titles on my nightstand), but am relishing every word in this particular collection. The book is HCI Remixed: Reflections on Works That Have Influenced the HCI Community.

While doing some research at the beginning of the Maverick development cycle, I came across HCI Remixed at the local library -- the title intrigued me and I couldn't resist. Weeks later, after having maxed out the number of times I could renew the book, I just purchased it -- I simply couldn't get enough of the book. Every essay I'd read up to that point was fantastic; each one provided volumes of information, experiences, insights, ideas for follow-up, etc. Whenever I finished one essay, I spent days and sometimes weeks reading up on references, pondering the past and future of human-computer interaction.

Due to the unusual nature of the book, describing it is surprisingly difficult. That being said, the MIT Press page gives you a great taste:
Over almost three decades, the field of human-computer interaction (HCI) has produced a rich and varied literature. Although the focus of attention today is naturally on new work, older contributions that played a role in shaping the trajectory and character of the field have much to tell us. The contributors to HCI Remixed were asked to reflect on a single work at least ten years old that influenced their approach to HCI. The result is this collection of fifty-one short, engaging, and idiosyncratic essays, reflections on a range of works in a variety of forms that chart the emergence of a new field.
If you're into HCI, learning from others, and discovering new sources of inspiration for your own work, this is simply a must-have book :-)

A Small Piece of History

By the time I checked the book out of the Golden public library, it was May and we had begun building the MT team. By July -- once it became clear how astounding the team's work was -- I realized that in 10 or 20 years I could very well be writing an article about Henrik, Chase, Stephen, Ikbel, and Rafi. Much like those in the book, I could be sharing the conversations I'd had with Stéphane Chatty, Mark Shuttleworth, Neil Patel, David Siegel, and John Lea. And that's only the crew which which I was collaborating or discussing directly. There are a lot of folks who've been working very hard on multi-touch infrastructure solutions and exploring ways of integrating these for several years (e.g., Peter Hutterer and Carlos Garnacho).

Though many foundations have been laid, as of yet (to the best of my knowledge), no Linux distribution has released a multi-touch stack that integrated gestures in a unified manner across everything from applications to window managers and beyond. This was something that Mark wanted us to provide to the open source world. In this spirit, the multitouch team hasn't just hacked things together to get a product out in time. A lot of generative, creative thought and care has gone into uTouch. A lot of original problem solving has taken place. Physics PhDs, kernel hackers, X.org hackers, driver creators, application integrators, toolkit gurus -- all of this knowledge was concentrated, applied, and used to distill a first approximation of what a gesture stack in Linux could look like, using the latest available technology and methodologies.

To be honest, we weren't really sure we could pull it off. There was a very good chance we could have failed at our task, quietly chalking up the loss as a lesson learned. Now that we've managed to shape these ideas into actual software, taken the threads of dreams and woven something real, we are thrilled to be engaging with others to see where all of us can take multi-touch and gestures from here.

Thanks to expert input from the wider open source community, we're already looking at ways in which we can improve upon the first version, ways of bringing new ideas and experiences to developers and users of multi-touch hardware running Linux. Things are only just warming up, and the greatest contributions have yet to be made. Every single person in the community has before them a world of possibilities for getting involved and creating the future human-computer interfaces for the free and open source world in the coming weeks and months. These are indeed exciting times.

Meet Jon Sackett

Jon Sackett joined the Launchpad Registry team a couple of weeks ago. Here’s a quick run-down of who he is.

Matthew: What do you do on the Launchpad team?

Jon: I’m part of the Registry team; we maintain the people, teams and projects bits and pieces used by all the other parts of Launchpad.

Right now I’m mostly helping pay down technical debt, but I’m also helping with features that help those core objects be smarter about the way they use other applications.

Matthew: Can we see something that you’ve worked on?

Jon: Almost everything I’ve done has been internal without a real UI component.

Matthew: Where do you work?

Jon: I work in my home office in an apartment in downtown Durham, NC. Sometimes I change it up and work from my porch.

Matthew: What can you see from your office window?

Jon: The old brickface and industrial windows across the road. On days where I’m working from my porch I get a better view of the downtown

Matthew: What did you do before working at Canonical?

Jon: I worked as a Python/Django developer at a company called MetaMetrics, that does some really neat things in education with natural language processing.

Matthew: How did you get into free software?

Jon: I was introduced to Linux in college as a better environment for coding in my CS classes. Since moving into web programming and Python, I think almost every tool I use has come from free software.

Matthew: What’s more important? Principle or pragmatism?

Jon: In concrete matters (like code), pragmatism. It’s no use to anyone if your principles only prevent you from doing things.
That said, principles are still important; when you opt for the pragmatic approach, your principles can still influence how that plays out.

Matthew: Do you/have you contribute(d) to any free software projects?

Jon: Sadly, precious little. I have a patch in the Django project, and a couple of my own projects are available under a BSD license. One of the reasons I wanted to work on Launchpad was to do more with and for free software.

Matthew: Tell us something really cool about Launchpad that not enough people know about.

Jon: How completely well it supports the whole development lifecycle — I think a lot of people consider Launchpad just another code hosting service, and it’s so much more than that.

Matthew: Thanks Jon!

[Discuss Meet Jon Sackett on the Forums]

Originally posted here by Matthew Revell on August 24th, 2010 .

Fool me thrice ...

I’ve now tried to do upgrades from 10.04 to Maverick Meerkat three times and each time I’ve reverted to 10.04 within a day. There was a fair amount of general instability, and for instance, in the last case OpenOffice.org Writer crashed any time I tried to save any files. Normally I’ve upgrade to the development release somewhere between Alpha3 and Beta. I’m not sure if it’s that 10.04 has just been such an exceptional release or if Maverick is still a bit rough around the edges, thoughts? For the first time I’m even contemplating not upgrading this go-round.

However, there are some things I’m looking forward to in Ubuntu 10.10. First off, I’m a netbook-bound computer user so I’m really intrigued about what the Canonical team is doing with Unity. I was a big fan of the previous netbook UI (using netbook-launcher, maximus, and friends) and have my doubts about Unity. I’ve tried the Dx team PPA to use Unity on 10.04. It seems slick, but quite resource intensive and a bit incomplete. I’m concerned about the amount of screen real estate used up by the new sidebar. On my netbook it makes web browsing (which is a huge part of my day) more difficult. Ultimately I wonder if Unity is going to be too slick for it’s own good, at least in the short run. However, if anybody can pull it off, Neil Patel and co. are the guys to do it.

I’m also looking forward to the indicator work. So far I haven’t found indicators to be all that useful. Sure, they look pretty, and I can swipe across them, but I don’t use the Messaging Menu very often except to start apps (which I can easy do in other ways) and I never use the Me Menu (the one where you can set your status). However, adding networking and time menus might help make the whole thing a bit more useful. Thoughts?

Lastly, I’m eager to so what Ken VanDine has down with libgwibber. This is a library (with vala, python, and C# bindings) that provides microblogging services and GTK widgets. I would love to use it to create a simple, Vala-based Twitter client.

OMG! Ubuntu! gets a facelift

If you pop on over to OMG! Ubuntu! no doubt you’ll notice something different. That’s right, after two months of design and development, we have unleashed the new face of OMG! Ubuntu!

It might take a few minutes hours for the DNS to resolve around the world.

So what’s new?

The site is now on wordpress instead of blogger and on a dedicated new server, which means it’s much faster, and we have a lot more flexibility when it comes to formatting of posts and customizing the layout and style to truly give it that OMG! feel.

There’s an entirely new design that brings in elements of the new Ubuntu branding, and also sets the standard for the new websites that Ohso will be opening up over the next few months.

The new design features a much nicer category, tag and search system to make it easy to find older posts, a custom set of icons, new sidebar widgets, a new colour pallete, lovely static pages and a beautiful footer that all combine to make this site something unique.

The design was done by me and later on I’ll be going into detail examining some of the new aspects of the design, decisions we had to make and unique features that makes this website something we’re really pleased with.

In case you didn’t notice, the new website is over 3x faster than the old one! Niall Molloy, our ace web developer and optimization ninja has worked long and hard making sure that this website is the fastest around. Niall has managed to balance beauty and speed, producing something that is faster than most other tech sites on the web!

Niall also uses the new CSS3 standard to give lovely fading rollovers and other assorted details, so if you’re using Firefox 4 or Google Chrome you can enjoy these.

Niall will be talking about the code behind the site in a later post, including the challenge of transferring nearly 2000 posts with links and comments intact from one provider to another.

Overall we’re really happy with the new site and the fact that with a small team of two people working on it, we’ve managed to hit the deadline for launch which we set over 3 months ago!


Turnin-NG 1.1 released!

Turnin-NG version 1.1 has just been released. Turnin-NG is an assignment submission suite written in Python and composed of turnin and turnincfg. Students can use the turnin command to submit an assignment to a course. Professors and TAs (teaching assistants) can use turnincfg to manage submitted assignments, making them easier to grade.

Version 1.1 fixes a vulnerability found in version 1.0.1. Courses can now be managed by groups of users instead of by a single account. The documentation has been expanded and numerous bugs have been fixed.

Here's the relevant changelog entry:

1.1 2010-09-01
 Global:
  * Ignore build files in Git (generated documentation, build/*, etc.)
  * Always initialize all of the course's options in the config files
  * Upgrade configuration files from old releases / installations. Preserves
    previous settings, just adds the options to the config files.
  * Accept that the legacy symlink may already exist from a previous install

 turnincfg:
  * Add support for group managed courses
  * Don't die if we receive an invalid username or group when creating courses
  * Don't strip a submission if it causes an overwrite
  * Added forgotten import (sys.exit() needs sys to be imported)
  * Don't crash when raising CalledProcessError when gpg --verify fails
  * Warn on dangling signatures
  * Warn on signatures submitted by other students
  * Set the group on the compressed tarball and extracted project directory
  * Also delete tarball on delete_project if project is compressed

 turnin:
  * Don't needlessly import chown
  * Fixed vulnerability. Set student's $HOME/.turnin-ng/list to 0600 so that, on
    off chance their home directory is world readable, other students can't find
    out what their submitted file suffixes are (and thus be able to play with
    them).
  * Print a pretty error message when we try to submit to a closed project
  * Don't crash when GPG fails to sign and we try to copy a non-existent .sig file
  * Remove stale signatures on unsigned resubmits

 Documentation:
  * Fix broken infodir entry
  * Properly install info manual with install-info
  * Expand the administrative section of the info manual

You can download the latest version of Turnin-NG here.

Sharing a shell and monitoring the other party

Recently, I had a reason to allow someone else to use a shell on a machine for which I'm the admin, but I wanted a way to track what they're doing. You might think the history command is just fine for this, but it's possible to clear the history, and I wouldn't want that. Screen to the rescue!

I ssh'd into the machine and created a new user for my visitor. Then I switched to that user. Once logged in, I ran screen -L, which logs the shell (both input and output) to ~user/screelog.0). Then I called up the user, gave them the IP address, username, and password. They logged in, and I told them to run screen -ls to see a list of open screen sessions. The output looks like this:

There is a screen on:
	2119.pts-0.marlyn	(09/01/2010 06:32:03 PM)	(Attached)
1 Socket in /var/run/screen/S-maco.

The next step was for them to type screen -x 2119.pts-0.marlyn Once they did this, we could each see what the other saw in our SSH session, and it was all logged. Great! I could keep track of what they were doing as they were doing it and review the logs later for a double check.

It's not a VCS though. If you know what directory they'll be operating in, you might want to run bzr init ; bzr add ; bzr commit -m "starting point" first, so you can later run bzr diff | less to see what files changed and keep a record of what changed, since while it might all seem perfectly logical while it's happening, recalling the exact changes won't be easy. The point of watching can be to catch them in the act if they try to do something that violates your security policy or to be given a demonstration.

New Ubuntu Lucid Proposed Kernel

The Ubuntu kernel team has prepared a new proposed kernel for Lucid (2.6.32-25.43), containing a large number of fixes. This is a larger number of updates than we would usually push at one time, but processing of the upstream stable updates was delayed by a couple of security updates.

This kernel should fix a lot of issues, including this one that people have been asking about a lot.

You will get this automatically if you have updates from lucid-proposed enabled. Note that if it breaks you get to keep all the pieces, so don’t try this on production machines.

Please test against your favorite bugs in the changelog and provide feedback.

[Discuss New Ubuntu Lucid Proposed Kernel on the Forums]

Originally posted here by Steven Conklin, Ubuntu Kernel Engineer on 1 September 2010.

September 01, 2010

Social Spider Web

I am deluged each day with people (irl) re-living their lives in the social spider web.  You see, I call it a spiderweb because once you get trapped – facebook kills you.  Then you turn into one of my friends (who will remain nameless) and post at least 10 pictures of herself, talk about having sex one night and then going to the hospital the next for a urinary tract infection.  Sadly, this lady has been trapped by the social spider web, and has been slowly killed.

The other tell tell sign of the spiderweb is the gang signs.  Spiders love these gang signs – so be on the lookout for { @, #, !, ♻ }

That is all – but please be my friend:

http://www.facebook.com/steve.stalcup

http://identi.ca/vorian

http://twitter.com/vorian

now for a funny movie

Packaging Training: The sponsoring tools in ubuntu-dev-tools

Sponsoring packages can be a very time-consuming task. On 2nd September, 15:00 UTC in #ubuntu-classroom on irc.freenode.net, Stefano Rivera will be leading a Packaging Training session about how you can utilize the sponsoring tools in ubuntu-dev-tools to make this task faster and easier. Logs will be available following the session. I hope to see you all there!


Ramadan – Week Three

My second week of experiencing Ramadan is already documented, this is week three.

When studying Anthropology in higher education, you learn in your first class the necessity of “participant observation“. This is defined as getting involved with the group you wish to study. In other words, rather than sitting on the sidelines, just watching the group, if you really want to learn what the culture is about, what they do day-to-day, what their emotions are how they speak, etc, you need to roll up your sleeves, and get your hands dirty. You need to participate in the culture you’re studying if you want to get a true, grounded study of the culture. You clean when they clean. You dance when they dance. You cry when they cry. So, that is what I have done with Ramadan. I have attended mosque more than once. I have gone out of my way to associate with Muslims. I have read the Qur’an. I have familiarized myself with the language and customs during Ramadan. While it would be much more effective if I was in a nation predominantly Islam, I’m doing the best I can here.

Now, I ask: is participant observation “extreme”?

On two different occasions this week, I was told that what I was doing was considered “extreme”. One later apologized, recognizing that what I’m doing is just trying to increase the religious tolerance of the American public, and that this person could learn a thing or two from my example. However, the other person did not apologize, and continues to spread the view that engaging in a religious activity other than your own is “extreme”.

On both cases, a discussion ensued about the philosophies and politics of participating in activities in a religion other than your own. The first, who later apologized, ended quickly when I mentioned anthropology and “participatory observation”. The second discussion brought up a fundamental belief in my church, then questioned if I was breaking that belief.

You see, as Mormons, we have temples all over the world. However, only people who have led good, clean, repentant lives, being called “worthy”, can enter the temple. There is an interview with your local church authorities that determines your worthiness. In that interview, a question is asked if you affiliate with or belong to a group that teaches opposing views of the LDS Church. If you do, then you are not worthy to enter the temple. So, it was suggested that by participating in Ramadan, I’m affiliating with a religion that goes directly against the teachings of the LDS Church. Now, of course I don’t agree. After reading the Qur’an three times, and on my fourth time currently; after studying the people and their beliefs and actions, I am confident that I am participating with a religion that has many, many similar teachings as my religion.

Anyway, I won’t go into any more detail about the discussion than that. However, I do want to know that if participating in a religion other than your own is considered “extreme”. What do you think? I don’t see what’s extreme about fasting for a full month. I don’t see what is extreme about reading a holy book. I don’t see what is extreme about making friends. So, I pose the question to you. Discuss it in the comments if you wish.

Here’s how the week went for me:

  • 15 Ramadan- School is proving to be somewhat of a challenge while fasting. Not due to lack of energy or starvation, but because I can see everyone around campus enjoying their soda pop, pizza, hamburger, fries, grilled chicken, etc. And with it being the first week of school, there are booths setup everywhere handing out free donuts, candy, drinks, etc. Not only the sights, but the smells. Oh, the smells. It’s really, really hard to resist temptation, and get a bite to eat. But, so far, I’ve remained strong.
  • 16 Ramadan- I met someone on the public transit today who noticed me reading the Qur’an. He asked if I was Muslim, as he didn’t know any Caucasian Muslims. I told him I wasn’t, then proceeded to explain to him what I was doing and why. It was a good conversation, and he had a great deal of respect for me doing it. When it came time to break the fast at sunset, I had my standard peanut butter and jelly sandwich with chips and drink.
  • 17 Ramadan- I was to meet up with a study group for math at school, but no one showed. I got to the school around 08:00, and stayed until about 18:00. I noticed that as the day got later, I was struggling keeping my focus of solving some math problems. I recognized that this might be a problem for getting good grades on my homework. Thankfully, I really will only have a problem with this on Saturdays, and there is only one Saturday left during Ramadan.
  • 18 Ramadan- Went to a family function that my grandparents call “The 5th Sunday Ice Cream Social”. Aunts, uncles, cousins, kids, grandkids, etc all show up. My grandfather makes the ice cream, and everyone is encouraged to bring a treat of some kind. So, there are cookies, ice cream, brownies, and other treats. It was hard to not have any, and it sparked some conversations with my cousins and aunts and uncles. My grandmother made me pigs-in-a-blanket, with mixed vegetables and tomatoes with whole milk for breaking my fast at sunset. After which, I quickly had as much ice cream and cookies as I could handle, and even brought many home.
  • 19 Ramadan- I was caught today chewing gum by a fellow Muslim student in one of my math classes. She informed my that chewing gum was breaking the fast. I quickly spit it out, now knowing about that. I told her that I was concerned about my bad smelling breath, but she reassured me that because I’m fasting and resisting temptation to break my fast, my breath smells sweet to God. I felt bad, as I’m a big gum chewer, and have been chewing gum probably every day.
  • 20 Ramadan- About a week ago, a good wind came through and blew over part of my fence, and destroyed some of my retaining wall. So, I had a contractor come over and look at it and give me a bid. He asked if I wanted some sunflower seeds, and I declined. He teased me that they weren’t poisoned, so I explained to him why I declined, due to my fasting. Then a long conversation ensued about having religious tolerance. He too held a great deal of respect for me for what I was doing. Two positive experiences this week advocating religious tolerance for Islam.
  • 21 Ramadan- Nothing fascinating today. Went to school, went to work. I was offered pretzels by a school-mate, but when I declined, he remembered why I declined (I had already discussed with him about Ramadan). He was impressed that I’ve made it this far. I am too. I never thought I would make it three weeks of straight fasting. Only one week left to go, and I’ll be planning of having a big Eid ul-Fitr with my family. We’re planning a pot-luck, inviting brothers, sisters, parents, step-parents and in-laws. It should be a lot of fun to celebrate ending the month. I also found out that the University of Utah will be holding Iftar on Friday at campus. I plan on attending.

S03E15 – Sharp Shooters

Laura Cowen, Tony Whitmore and Alan Pope are back in Studio A for episode 15 of season 3 of the Ubuntu Podcast from the UK LoCo Team!


Subscribe:-

Hi-Fi Lo-Fi
Ogg Subscribe to the High Quality Ogg feed. Subscribe to the Low Quality Ogg feed.
Mp3 Subscribe to the High Quality MP3 feed. Subscribe to the High Quality MP3 feed via iTunes. Subscribe to the Low Quality MP3 feed. Subscribe to the Low Quality MP3 feed via iTunes.

In this week’s show:-

Student after student has told us that the value of the training is the training itself. The courses are all focused on making businesses or individuals more knowledgeable and more successful in deploying our technology in their organisation. They are practical, hands-on, how-to, process-rich courses that also introduce users to the wide world of support documentation, forums, peer networks and other supporting resources that will allow students to continue to learn and share learning long after the course is over.

Because we are not 100% convinced that an Ubuntu Professional certification adds value for the student who has taken the course when hands-on practicality is the aim, we have decided not to offer certification at this point. This is something we will continue to evaluate. We will talk to partners and students and we will learn from delivering these courses whether there is a meaningful certification that adds value beyond the course itself. And we would love to hear your views.”

  • Finally we have your feedback
  • Comments and suggestions are welcomed to: podcast@ubuntu-uk.org
    Leave us some segment ideas on the Etherpad
    Join us on IRC in #ubuntu-uk-podcast on Freenode
    Leave a voicemail via phone: +44 (0) 203 298 1600, sip: podcast@sip.ubuntu-uk.org and skype: ubuntuukpodcast
    Follow our twitter feed http://twitter.com/uupc
    Follow us on Identi.ca http://identi.ca/uupc
    Find our Facebook Fan Page
    Discuss this episode in the Forums

    Digg This  Reddit This  Stumble Now!  Buzz This  Vote on DZone  Share on Facebook  Bookmark this on Delicious  Kick It on DotNetKicks.com  Shout it  Share on LinkedIn  Bookmark this on Technorati  Post on Twitter  Google Buzz (aka. Google Reader)  
    Laura Cowen, Tony Whitmore and Alan Pope are back in Studio A for episode 15 of season 3 of the Ubuntu Podcast from the UK LoCo Team! Subscribe:- Hi-Fi Lo-Fi Ogg Mp3 In this week's show:- We talk about about what we've been doing including nothing, going on holiday, syncing files with Ubuntu One and upgrading to Mythbuntu 10.04. We interview Jonty Wareing about the London Hackspace In the news:- Goodbye Openslowlaris Steam on Linux rumours squashed (or are they?) Microsoft are nice really Except King Doofus himself - Paul Allen Diaspora to open up source real soon now Linux is Free software, honest! ATI is dead! Long Live AMD! We mention some upcoming events:- Ohio Linux Fest - Free and Open Software Conference and Expo - Columbus, Ohio - September 10-12, 2010 OSS Bar Camp - Open Source themed Barcamp - University College Dublin on the 25th and 26th of September Command line love this week was contributed by loyal listener Mark Johnson:-bashish We chat with Bruno Girin from the UK LoCo about his work on Shotwell, the new photo suite to Ubuntu from Yorba We mention some Ubuntu related news in the Gerald/bit-about-Ubuntu/ecosphere:- Artwork team dial-up the vomit orange in the new 10.10 background Some new Training Courses available from Canonical No Ubuntu Desktop Course for 10.04 LTS Ubuntu Certified Professional qualification axed "With the release of these new courses, we have also re-assessed certification. The UCP course has to date been certified by the Linux Professional Institute. This will discontinue on September 30th and anyone waiting to complete their exams should do so by then. We had considered delivering our own certification and examinations for the courses however, as we looked deeper into it we began to question this. Student after student has told us that the value of the training is the training itself. The courses are all focused on making businesses or individuals more knowledgeable and more successful in deploying our technology in their organisation. They are practical, hands-on, how-to, process-rich courses that also introduce users to the wide world of support documentation, forums, peer networks and other supporting resources that will allow students to continue to learn and share learning long after the course is over. Because we are not 100% convinced that an Ubuntu Professional certification adds value for the student who has taken the course when hands-on practicality is the aim, we have decided not to offer certification at this point. This is something we will continue to evaluate. We will talk to partners and students and we will learn from delivering these courses whether there is a meaningful certification that adds value beyond the course itself. And we would love to hear your views." Finally we have your feedback Comments and suggestions are welcomed to: podcast@ubuntu-uk.org Leave us some segment ideas on the Etherpad Join us on IRC in #ubuntu-uk-podcast on Freenode Leave a voicemail via phone: +44 (0) 203 298 1600, sip: podcast@sip.ubuntu-uk.org and skype: ubuntuukpodcast Follow our twitter feed http://twitter.com/uupc Follow us on Identi.ca http://identi.ca/uupc Find our Facebook Fan Page Discuss this episode in the Forums

    Quickly Widget Dating

    Earlier this summer I started some work on DictionaryGrid and GridFilter in order to make them easier to use in apps like PyTask.

    Well, tonight I decided to finish what I started and get this stuff into trunk. Specifically, I wanted to have a DateFilter to go with DateColumn. I wanted to use a Calendar widget for users to select dates, instead of typing them in.

    Before I could do that, I had to do some heavy refactoring in GridFilter. I originally made the simplifying assumption that users would enter text into an entry field to enter their values. The only exception was CheckFilter, which needed no gtk.Entry, but I just put in a small hack to make that work. So, this simplifying assumption meant that I could deliver grid filters really fast, but now it was time refactor so I could add new features.

    Fortunately, it seems that I had started that and was well on the way, so I only had to finish a few things out for the refactoring. I had even already implemented CheckFilter in the new structure, so it was a simple matter to copy that pattern to get to the DateFilter working.

    It's always an odd feeling when I am working with code that I had written a while back. There's a certain amount of detective work involved, "how did I go about making this all work?" There's a strange familiarity, but yet it's similar to debugging someone else's code. It's nice when I figure it out, especially when I think "that's just how I would have done it."

    I also found a rather serious bug in CouchGrid along the way. So I stopped off and spent some time fixing CouchGrid, and adding test to make sure I don't see that bug again. The code slightly improved while I was in there, making sure that the grid doesn't have to render itself multiple times when it's initializing.

    Anyway, I'm really happy to have made some progress on Quickly Widgets again. It was really fun and relaxing. Time well spent this evening.

    My way of choosing email programs

    This is just another article about how to get your emails managed in a graceful way.

    Here is my former way of dealing with them: I choose Gmail as my primary email service provider, and use the online Gmail web page for managing most of the emails – view and move to trash. As for emails need my reply or participate, I use Thunderbird 3 + Enigmail with Gmail’s IMAP support, so I can GPG sign my outbound emails and verify signatures of inbound ones from other people. I keep emails on Gmail server and have a backup copy on my PC from Thunderbird’s IMAP sync.

    Yes, everything looked good in the days I have only a not-too-much amount of emails and I was happy with all above worked well for a long period. But a bad thing appears while my mailbox size is growing quite fast in the near half year: Thunderbird’s speed is lower and lower, the local Mbox file is larger day by day. Personally I don’t think Mbox format with big amount of emails stored in a single file is so reliable because when there is something wrong, everything soon follow.

    My initial thought of turning to another way is, I need to find a better way for managing large amount of growing emails, and three overall requirements are listed below:

  • 1. A not-so-rare solution. I am not familiar with how email system runs so a popular solution can help me find essential documents when I run into trouble.
  • 2. Good stability. Stability is always a key topic when people are finding a solution for their deployment. Even though I am just a desktop user who are looking for a personal way of dealing things, I’d like to have a stable platform to make my life easier.
  • 3. A flexible (and maybe very customizable) way. Flexibility is an important thing when you use a *NIX platform or even all the time; customizability is another great thing once you are willing to pay your hours on making everything just fits your special taste.
  • Next, search the Internet and we can surely found Mutt should be counted in our list of choices, and there are several different usages. Before comparing among them, I need to say something about the email system first.

    There are three key elements in an email system: MUA (Mail User Agent), MTA (Mail Transfer Agent) and MDA (Mail Delivery Agent):

  • 1. An MUA is always the client software that you will face directly everyday – read, write and manage your messages with it.
  • 2. An MTA is a big concept that includes most part of the sending and receiving emails among servers, including but not limited to the services that we may know: SMTP, IMAP, POP3, etc.
  • 3. An MDA is a program deal with user’s mail delivery to their specific mail spool on a particular system; its work are usually processing emails received by MTA and figuring out whether the email is a suspected spam and drop the email to the user specified place of receiving her/his mails.
  • When we are receiving and sending emails on our local computer (not the web based way since it is actually handled by remote server), we need all of the three parts. We get emails from remote server’s inbox with MTA; filter and deliver the emails to our email spool with MDA; read, write and manage emails with MUA; and send emails with a sending MTA. As for the local storage format, there is Mbox that I don’t like, and Maildir I am interested in. More about storage format will be described in following paragraphs.

    There are many alternative all-in-one solutions like Thunderbird, Evolution, KMail and so on, they combine the functions which are required to manage emails for an end-user and hide them behind. Now I am not finding another all-in-one application so I need to choose every program to take their roles in the route of receiving and sending emails. Since I have decided to use Mutt as my MUA from beginning, I don’t need to be bothered by this topic, again.

    First I need a receiving MTA for fetching emails from Gmail server. There are two popular choices: Fetchmail and Getmail4.

  • 1. Fetchmail is a full-featured, robust, well-documented remote-mail retrieval and forwarding utility written in the C programing language. It is famous of the large user base and Eric S. Raymond was maintaining it from 1996 to 2003.
  • 2. Getmail4 is the 4th version of Getmail – which is designed to get rid of the shortcomings in fetchmail. The program is written in Python.
  • Both of the two supports both IMAP and POP3 protocol that are my choices of receiving emails. I prefer to use IMAP because the protocol is designed to have the functions POP3 has and many other features including sync between server and clients. I don’t really need to have mails synced because the local copy is mostly a backup, and I can do it through web interface or Thunderbird if I really need them to be synced. Setting up an IMAP synced local mail solution is kind of off topic from this article, and you may want to try imapsync if you are sure you really need. Another reason of my choosing IMAP over POP3 is, Gmail’s POP3 implementation has violated the commonly expected behavior and there are much more limitations than IMAP (you can fetch around 200-500 mails per session in POP3, and probably be locked 24 hours if you access it several times in a short period, but when you are a newbie and trying to test your configuration you may exceed the limits).

    Now try them out to find which one is better for me. The configuration files always have your email account and password, so make it only readable by yourself using:
    chmod 0600 /path/to/file
    Here are the configurations for both the programs, username and password are changed to “user” and “passwd”:

  • 1. $HOME/.fetchmailrc:
    #set daemon 600
    #set syslog
    defaults
    poll "imap.gmail.com" proto IMAP
    user 'user' password 'passwd'
    mda "/usr/bin/procmail"
    keep ssl
    sslcertck
    sslcertpath /etc/ssl/certs
    fetchall
    folder "[Gmail]/All Mail"

    The commented lines are telling fetchmail to work as a daemon and try to fetch emails from server every 600 seconds. Option “defaults” tells fetchmail load its default settings. The following two lines describes the server, protocol, username, password; port and local mapped user can be set as well, but I don’t need it. Next line started by “mda” tells fetchmail it should relay received emails to the specific MDA, now we set it to “/usr/bin/procmail” and will be documented in following paragraphs. “keep” means fetchmail should keep the copy on server after getting the mails, this option is not very useful for Gmail because there are preferences on the web interface that you can choose how the server deal with the delete request from clients. “ssl” stands for use ssl, “sslcertck” for checking whether the cert of server has a valid signature by a CA, and “sslcertpath” sets the path of CA cert’s and we use “/etc/ssl/certs”. “fetchall” tells that fetchmail should fetch all emails on the server rather than only new ones. “folder” tells the exact folder fetchmail should go and check, we set it to “[Gmail]/All Mail”.
  • 2. $HOME/.getmail/getmailrc:
    [retriever]
    type = SimpleIMAPSSLRetriever
    server = imap.gmail.com
    username = user
    password = passwd
    mailboxes = ("[Gmail]/All Mail",)
  • [destination]
    type = MDA_external
    path = /usr/bin/procmail

    [options]
    delete = false
    message_log = ~/.mail/getmail.log
    message_log_syslog = false
    read_all = false
    verbose = 2
    delivered_to = false
    received = false


    Briefly, there are three sections in Getmail4’s configuration file: [retriever] (defines which kind of protocol to use and options related), [destination] (defines where to deliver or pass the emails) and [options] (other options for Getmail4).
    I use “SimpleIMAPSSLRetriever” type of retriever and its name suggests that it is used to common SSL enabled IMAP protocol, which meets our needs. Other fields in this section are easy to understand, the last one defines which folder the program should check, and don’t forget the last comma (,) if you only have one mailbox to be listed there. For destination, I was planning (finally I changed my mind, read on) to use procmail so I have a “MDA_external” type destination, and point the path to “/usr/bin/procmail”. In the last section, “delete” defines whether mails should be deleted from remote server after being received, as said in Fetchmail configuration’s explanation, it is not really necessary for Gmail users, “message_log” defines where the log of retrieving every message should go and “message_log_syslog” is the switch whether message retrieve info should be logged to syslog. “read_all” should not be set to true because it is saying that ignoring what have been fetched and get everything every time Getmail4 runs. “verbose” controls log verbosity: if set to 2, print messages about each of its actions; if set to 1, print messages about retrieving and deleting messages (only); if set to 0, ll only print warnings and errors. “delivered_to” and “received” tells Getmail4 whether it should add those two fields to retrieved emails header, personally like them to be set to “no”.

    Before we start our test, we need to setup our MDA – Procmail. It is the time for me to tell you why I prefer Maildir local storage format to Mbox used by Thunderbird. In Maildir, every email is stored in a single file, and a real folder contains all the files in a “folder” on remote server. The email files are in plain text. There are three most important benefits from Maildir:

  • 1. No need to lock the folder as in Mbox, Maildir stores emails in single plain text files that can accessed by multiple programs at the same time and can be easily maintained by scripts.
  • 2. The maintenance of storage now depends on your file system rather than an email client. Nowadays file systems on *NIX systems like Ext3/4, Reiserfs, Btrfs are really stronger than ever before and is more reliable than a client program, because a file system is designed to maintain files but maintenance of email storage is only one of the functions of a rather smaller project comparing with file system designing. For the worst situation our data get damaged while the mail program is processing things, we get failed for some of the messages in Maildir, but the whole folder would be corrupted in Mbox.
  • 3. Mailboxes in Maildir format can be used through a network file system (like NFS), but Mbox cannot.
  • And here are disadvantages:

  • 1. Maildir is not supported by many client software while Mbox is universally supported.
  • 2. Some filesystems may not efficiently handle a large number of small files (like XFS).
  • 3. Searching text is not as fast as Mbox. If we want to speed up the search process, a helper program with cache is needed.
  • As I can search the text of email within web interface of Gmail, I don’t need to care too much about the searching disadvantages. I am using Ext4 and is strong enough to handle thousands of small files in one directory. At last I am choosing Mutt which supports Maildir very well. I’d like to take the advantages of it now.

    Here is my configuration of Procmail, $HOME/.procmailrc:
    VERBOSE=off
    DEFAULT=$HOME/.mail/inbox/
    MAILDIR=$HOME/.mail/
    LOGFILE=$HOME/.mail/procmail.log

    Don’t forget the slash after “$HOME/.mail/inbox/”, if you lose it Procmail will use Mbox, and you if add it, Maildir instead.

    So we can kick off our test now, keep in mind that neither Fethmail nor Getmail4 nor Procmail need root privilege, just run them in your account:
    $ fetchmail -v
    $ getmail
    I have to admit my prediction of result is totally wrong. I thought Fetchmail is used by many many people and is written in the efficient C, Getmail4 only has a smaller user base and is written in Python which may take more resource on many cases. But the result tells me, under the current configuration, neither of them work for me: Fetchmail fails to fetch around 1/10 of my attachments and only get 0.x KB for a 5MB+ email; Getmail4 stuck when fetching mails larger than 5MB.

    What a hell! But I am not stopping because there is another way – Getmail4 is designed to have some MDA functions built-in, so it can deliver messages directly to Maildir or Mbox format for user. It is time to say I like Gmail’s excellent spam filtering feature so that I don’t need to pay so much time on setting up a spam filter with Procmail or Maildrop, and a simple delivery is okay. Now I change the [destination] section of $HOME/.getmail/getmailrc to:
    [destination]
    type = Maildir
    path = ~/.mail/inbox/

    and run again:
    $ getmail
    Great this time and all my emails are retrieved successfully after a long time’s wait (just leave it here and move on other stuff).

    After choosing a suitable receiving MTA (my choice is with MDA built-in), I still need a sending MTA. There are several popular choices, for light-weight ones: msmtp, esmtp; for powerful ones: exim4, postfix and qmail. The last three ones are run as root daemon, designed to be full replacement of the traditional sendmail. Usually we don’t need such big things for a daily purpose, and they are really worth considering if you would like to run a *real* MTA that can exchange emails with other servers.
    Either msmtp or esmtp is designed to work as an agent to forward local email to a real MTA server supports SMTP protocol. Currently msmtp is more welcomed, but the feature list is shorter than esmtp. After a detailed check, that esmtp is not maintained now, so I choose msmtp. Here is my configuration, $HOME/.msmtprc:
    defaults
    tls on
    tls_starttls on
    tls_certcheck on
    tls_trust_file /etc/ssl/certs/ca-certificates.crt
    logfile ~/.mail/msmtp.log

    account default
    host smtp.gmail.com
    port 587
    from user@gmail.com
    auth on
    user user
    password passwd


    There is your username and password in this file, so follow the instruction before to change this file to 0600 mode. “tls”, “tls_starttls” and “tls_certcheck” tells msmtp to use STARTTLS for encryption, and check for validation of the cert.

    Finally, I go to the key part – Mutt. Here is some essential lines from my $HOME/.muttrc:
    ignore *
    unignore From Subject Lines
    hdr_order From Subject Lines

    set index_format="%[%b-%d] %?X?%X& ? %-2e %-18.18L [%4c] %s"
    set status_on_top=yes

    set editor="vim -c 'norm O'"

    set sendmail="/usr/bin/msmtp"
    set sendmail_wait = 5

    set mbox_type=Maildir
    set folder="~/.mail"
    set mask="!^\\.[^.]"
    set mbox="+inbox"
    set record="+inbox"
    set postponed="+inbox"
    set spoolfile="~/.mail/inbox/"
    set trash="~/.mail/trash/"
    set maildir_trash=no

    set quit=yes
    set move=no
    set beep_new=yes
    set check_new=yes
    set recall=no
    set resolve=yes
    set allow_8bit
    set charset="utf-8"
    set rfc2047_parameters=yes

    set include=yes
    set indent_str="> "
    set mime_forward
    set mime_forward_rest
    set fast_reply
    unset metoo
    unset reply_self
    set reply_regexp="^(re([\[0-9\]+])*|aw|回复)(:[ \t]|:)"
    set quote_regexp="^( {0,4}-?[>|:]| {0,4}[a-z0-9]+[>|]+)+"

    set from='Name Last '
    set use_from
    set envelope_from=yes
    set realname='First Last'

    bind index gg first-entry
    bind index G last-entry
    bind index \cf next-page
    bind index \cb previous-page
    bind index ,g group-reply
    bind pager j next-line
    bind pager k previous-line
    bind pager previous-line
    bind pager next-line
    bind pager gg top
    bind pager G bottom

    color hdrdefault black default
    color quoted red default
    color signature brightblack default
    color indicator brightwhite red
    color attachment black default
    color error red default
    color message blue default
    color search brightwhite magenta
    color status brightyellow blue
    color tree red default
    color normal blue default
    color tilde green default
    color bold brightyellow default
    color markers red default

    Thanks to Roy L Zuo (roylzuo at gmail dot com) for great aid! There are much more lines in my mutt configuration, and the colors are suitable for white background.

    In conclusion, here are my choice:
    Mutt + Getmail4 + Msmtp

    Kiwi Linux 10.08 released with Chromium, Shotwell and more

    Finally, after a hiatus of over a year, the Ubuntu derivative tailored for Romanian and Hungarian Linux beginners is having a new release! Of course English is still available on the CD :)

    Here is the iso (700M)

    Its focus is to provide much of the commonly needed software conveniently installed by default but without straying away from Ubuntu in looks or by forming a separate community. These two decisions were made in order to keep those that see or use both distributions on a familiar ground.

    Kiwi Linux 10.08 is based on Ubuntu 10.04.1 LTS and as always it only comes in GNOME x86 Desktop CD edition.

    The main differences from Ubuntu are in the default application lineup. The decision to switch out some components are based on my own usage and on input from a subset of the Ubuntu-RO community.
    • Chromium instead of Firefox because it is snappier, more stable, has built-in page translations, and has a cleaner albeit at first non-intuitive UI. HTML5 video codecs included.
    • Shotwell instead of F-Spot - a nice fast tool, it is happening in Ubuntu 10.10 as well.
    • Pidgin instead of Empathy - while I am sure that Empathy and the Telepathy stack is the way in the future, Pidgin is more mature at this point.
    • VLC 1.1.3 along with Totem . VLC just handles better regular movies, DVDs, and subtitles. Totem is kept because Chromium annoyingly (but wisely) does not support Mozilla browser plugins that don't use XEmbed and are written instead in the old way using X Intrinsics.
    • Adobe Flashplugin and the gstreamer ungood bunch for mp3 and various other codecs.
    • Libdvdcss2 for encrypted DVD support
    • Evolution removed as most home users are on webmail. The nice desktop-webmail helper app included
    • p7zip and rar tools added to help file-roller deal with archives sent by Windows users.
    • Gnote instead of Tomboy - more or less equivalent
    • Compiz extra settings config
    • Firmware to support the Speedtouch 330 USB modem driver - the initial reason to create this derivative is still shipped on the CD, but now fewer people need it having migrated to saner ISP connection equipment.
    • Removed Mono, Erlang + CouchDB, Telepathy, Gwibber - as space needed to be freed for the above software the ones that were removed are those I considered stuff for more savvy users and less used by beginners.
    The rest are small changes - custom liveCD boot screen and plymouth theme just to make it clear this is not 100% Ubuntu and no confusion arises in case of support issues.

    The Launchpad PPAs are a great help, I copied VLC and Shotwell from Nate Muench's and Yorba's PPAs to the Kiwi release PPA where the custom packages are kept as well (Ubiquity slideshow and Plymouth theme only).

    Thanks to all who tested release candidate images and helped with graphics!

    Download here

    Preparing for the next Kiwi Linux

    After one release skipped (9.10) and another postponed several times (10.04) Kiwi Linux is starting to look like the Duke Nukem Forever of the distro landscape. However I hope there will be a new edition soon, probably in August, based on Ubuntu 10.04.1

    Along with the regular support for multimedia codecs and localization for Romanian and Hungarian on the CD the major changes in this one are probably going to be the replacing of Firefox and F-Spot with Chromium and Shotwell in the default install. I am ambivalent about introducing Gnote - it is fast and I am happy using it but it seems to be going through unmaintenance again (but who am I to throw stones right?)

    There's a Twitter account where I will start posting short updates about Kiwi Linux.

    Global Jam, Columbus Postgame

    Here’s the short-list of stuff that got done at the Columbus Ohio Global Jam — Kickass work, guys!

    Thanks to Gilbert for coordinating and running this!

    • posted patch fixing “scary” installer text papercut bug ( LP Bug: #572110 )
    • triaged and updated upstream info on ‘autostart application’ usability issue ( LP Bug: #140918, Gnome Bugzilla Bug #47880 )
    • forwarded gstreamer “missing source files” papercut bug ( Gnome Bugzilla Bug # 628209, LP Bug: #607709 )
    • posted patch fixing missing symlink in bzip2 (also forwarded fix to debian — LP Bug: #622017 )
    • close request for new version of rar (already uploaded to maverick — LP Bug: #528610 )
    • submitted a bug for problem with the display of unicode fonts in yelp
    • submitted a bug for firefox upgrade screen popping up after upgrade
    • fixed a kernel crash that always happened when disconnecting

    multitouch devices.

    News on the (DC)² Front

    During the last days I spent some time on playing around with Mono and C#.
    The result is, that I started to write a desktop client for the (DC)² Project.
    It's far from complete, less views then the web client, but hey, it's a start.

    You can find the sources on Launchpad.net.

    And no, I don't want to hear any "Mono is Evil and you know the patents" trolling. For me, it's a good start to learn a new language, and to tackle sometimes with our local developers, who are using C# / .NET and of course Mono, too. I could have used Python or Perl, but both I know, and I could have used Java as well, but we all know what Oracle is up to.

    You can directly startup your Monodevelop and check the projects source files.
    Furthermore, I'm using the XMLRPC C# Library from Cook Computing

    New Ubuntu Lucid proposed kernel

    The Ubuntu kernel team has prepared a new proposed kernel for Lucid (2.6.32-25.43), containing a large number of fixes. This is a larger number of updates than we would usually push at one time, but processing of the upstream stable updates was delayed by a couple of security updates.

    This kernel should fix a lot of issues, including this one that people have been asking about a lot.

    You will get this automatically if you have updates from lucid-proposed enabled. Note that if it breaks you get to keep all the pieces, so don’t try this on production machines.

    Please test against your favorite bugs in the changelog and provide feedback.

    OCLUG meeting this Saturday!

    I love being involved in the Linux community, and sharing experiences with others. The concept that a strong social community could grow around software and sharing is one that initially drew me to Ubuntu over some of the other distros I'd known. Being a part of the Ubuntu California Local Community Team is one of my favorite things.

    Of course, community existed before Ubuntu and there's plenty of community to go around still. My favorite LUG, the Orange County Linux Users Group hasn't met for a couple of months due to the usual shuffling around that happens at schools during the summer. But to my great delight, they're meeting again this Saturday, September 4th at McCarthy Hall at Cal State Fullerton. So if you're in Orange County between 10 am and 3pm and would like to hang out with some other Linux users, join us way up on the sixth floor in room 606! You can find more meeting information at their site.

    Announcing this week's Bug Day target - Empathy! - Thursday, 2 September 2010!



    This week’s Bug Day target is *drum roll please* Empathy!

    The task is to assign to the right package and triage those as well:

    • 44 New bugs need a hug
    • 109 Incompletes bugs need a status check
    • 23 Confirmed bugs need a review

    Bookmark it, add it to your calendars, turn over those egg-timers!

    Are you looking for a way to start giving some love back to your adorable Ubuntu Project?

    Did you ever wonder what Triage is? Want to learn about that?

    This is a perfect time!, Everybody can help in a Bug Day! Open your IRC Client and go to #ubuntu-bugs (freenode) the BugSquad will be happy to help you to start contributing!

    Wanna be famous? Is easy! remember to use 5-A-day so if you do a good work your name could be listed at the top 5-A-Day Contributors in the Ubuntu Hall of Fame page!

    We are always looking for new tasks or ideas for the Bug Days, if you have one add it to the Planning page https://wiki.ubuntu.com/UbuntuBugDay/Planning

    If you’re new to all this, head to https://wiki.ubuntu.com/Bugs

    [Discuss Announcing this week’s Bug Day target - Empathy! - Thursday, 2 September 2010! on the Forums]

    Originally sent to the Ubuntu Devel Announce Mailing List by Kamus on Tue Aug 31 21:25:39 BST 2010

    Ubuntu default wallpaper

    So, the default wallpaper…

    My initial vision:

    Seeing so many screenshots of the Ubuntu desktop during the second to last release all sporting identical backdrops, made me wonder: wouldn’t it be amazing if all our users received (or evolved) subtly different wallpapers – not radically enough to dilute the intent but just enough to become an elegant addition to the OS and give a sense of personalisation.

    Ideally they might not even notice at first but would become aware and pleasantly surprised by catching the differences out of the corner of their eye, double-taking the position of a particularly prominent graphic in relation to another, a subtle hue shift over the course of hours/days/weeks or wondering why their desktop image wasn’t the same as either their friend’s or someone who’s screenshot they’d just seen in a recent blog post.

    If nothing else it would be a relatively inexpensive experiment that could offer the start of something new and would be a great celebration of the individuality and diversity of our user base.

    The reality:

    With the advent of the new visual identity and my involvement therein, it seemed like the perfect opportunity to look into this idea in more detail. The Lucid wallpaper was specifically designed with this purpose in mind. It deliberately used little more than simple radial blurs layered to give an impression of light and depth – where the position of elements would not act negatively against the composition and that we imagined would be easy to animate and move programatically without causing rendering/artefacting issues across a wide range of screen sizes – it was always going to be a fine balancing act but worth it in our opinion.

    There are a number of ways we could have done this. We decided to look at having a matching screensaver that would re-write the default wallpaper whenever the user woke their machine from sleep, this seemed like the easiest way to avoid unnecessary processor cycles or unexplained delays (possibly at startup/shutdown). This would also allow us to do a very clean crossover effect between desktop and screensaver where open windows, etc. would elegantly fade away and visa versa.

    Sadly we have been unable to allocate the time to get this built internally. I discussed it in a session at the last UDS and there is an open blueprint relating to it. I am still one hundred percent behind pursuing this idea and am actively seeking people to help me make it a reality.

    If you’d like to help please get in touch.

    Free and opensource software to Flattr

    Flattr FOSS LogoSince I published “How to make 110.28 EUR in one month with free software and Flattr”, quite a few people joined the movement and I had less troubles finding projects to Flattr. That’s great! :-)

    Without further ado, here are my recommendations for september:

    1. Smuxi is an IRC application that integrates from the start the need to be permanently connected. You can run the “engine” on a server and the graphical interface connects there. The engine has all the intelligence so it remembers what message you last saw in each channel (including highlights) and you won’t miss anything. I recently switched to it and I like it. It’s not perfect but it’s improving quickly. The next version even supports Ubuntu’s messaging indicator for better integration with the desktop.
    2. Geshi is a PHP class used by many other software to provide enhanced views of code on web pages by coloring the various parts based on the syntax of the respective programming language. It’s used by Wikipedia, many blog plugins and lots of other web applications.
    3. Git-buildpackage is a set of tools developed by Guido Günther to make it easier to maintain Debian packages in Git repositories. I use it for several packages that I maintain.
    4. Mixare is an augmented reality browser. Take your Android phone and it will incrust information in the (camera) view of the environment. Impressive video on the website.
    5. Lightspark is is a modern flash player implementation targetting ActionScript 3.0 support (while Gnash only supports older versions). It’s one of those few projects that are really needed to get rid of the non-free Adobe plugin that almost everybody installs because there’s nothing else that work well enough.

    This article is part of the Flattr FOSS project.

    Flattr this Share/Bookmark No comment | Support my work

    Canonical: Take 60 seconds with Henrik Omma

    This Month we have profiled a member of the Canonical family, who has been with us almost from the start

    *Henrik Omma*

    Read on to see his recollection of what Canonical was like in the early days and why he enjoys working here.

    *Take 60 seconds with Henrik Omma*

    Henrik works as the Enterprise Applications Team Manager and has been with Canonical for 6 years.

    *In layman’s terms what do you do?*

    I manage a small team that develops & maintains in-house systems used for sales, finance and HR.

    *What did you do before joining Canonical?*

    I was doing a Doctorate in Astrophysics at Oxford. I actually started with Canonical part-time while I was still writing up my thesis. It was good to balance the two activities because thesis writing can be a long and monotonous process. I moved to full time in May 2005, after completing the thesis.

    I had been using Linux for fluid dynamics simulations on super computers for my thesis research, which then introduced me to the world of Open Source. I became interested in the philosophy and the world changing potential of Open Source and started my own project called the OpenCD. Later I also co-founded ‘Software Freedom Day’. Both these projects were about spreading the message of Open Source and increasing adoption.

    I meet Steve Alexander at a conference who in turn introduced me to the Shuttleworth Foundation and the ‘Go-Open’ project, which was also about spreading Open Source, specifically in South Africa. They decided to distribute the OpenCD to about 300,000 people there, which was of course our biggest distribution to date.

    This was happening in Spring/Summer 2004, when Ubuntu was still a secret project operating as no-name-yet.com :)

    I was then invited to attend one of the first sprints (which later evolved into UDS) in Oxford where they were putting together the first Ubuntu release. I meet Jane (Silber, CEO) and Mark (Shuttleworth, Founder). They had decided they wanted to add some Open Source applications for Windows to the Live CD to help ease the transition for new users and that the OpenCD project might be a good base for that. In later releases that function has been replaced by Wubi which actually lets you start Ubuntu from a Windows system.

    *How has Canonical evolved since the early days?*

    Now there is more structure, back then we would all pitch in a do a bit of everything. I have filled quite a few roles myself; I was running the Open CD project within Canonical for a while, then I became the Web Master. I have also guided various community teams like the Art & Accessibility teams and acting as forum liaison. I also built up the Ubuntu QA team before taking my current role.

    The original core of the company was made up of a group of open source hackers, largely from Debian. So we’ve taken much of our culture, ideals and technologies from there. That’s for example why we use wikis, IRC and mailing lists while other companies this size might use a proprietary intranet system.

    *So what kind of person do you need to be to survive here?*

    You need to be able to work independently, structure and motivate your own work. I am speaking as some one who works from home, and structures my own hours. You also need to keep informed about what going on around you and not just wait for someone to tell you what to do.

    *So what excites you about being here?*

    The top thing is working with lots of great people and the projects that we are involved in, trying the change the way software evolves in the world. I remember when I attended the first sprint in August 2004 that I was struck by what an amazing group of people were gathered there — that this group would do something amazing and that I wanted to be a part of it! It’s great to actually see that potential playing out now.

    Over these 6 years I have had the opportunity to change my role within Canonical several times as the company has grown. Personally that has been a good thing, as I am able to do something different day to day while still being part of that bigger picture and ideal of increasing Ubuntu’s accessibility to the world.

    At Canonical many of us work from home, which I find very convenient and it also means that you can choose where you want to live while staying in the same job. I moved to Norway shortly after my thesis was complete (having started at Canonical), which is where I am originally from. But after two years I opted to move back to the UK and Oxford, where I had really enjoyed living as a student.

    *What you you say to anyone thinking of joining Canonical?*

    Depends on what sort of role they are looking for, but I can speak mostly on engineering roles. It can be an exciting place to work but you need make sure you connect in with the pulse of the company and work out how you can make contributions. We welcome initiative and encourage people to suggest and start projects, but you need to understand how things fit together to see the right opportunities and then know who to work with to implement your ideas. So you should spend a some time at the beginning to ensure you’re connecting to the information streams within the company. The mentoring scheme is very useful and newcomers should take full advantage of that.

    *What is your next career goal within Canonical?*

    After being in various roles I find I really enjoy managing a team of engineers, as I did on QA and now in CDO (Core Development and Operations). So for the moment I just want to grow to do that better. I know on thing though: it all starts with hiring top rate engineers onto the team.

    [Discuss Henrik Omma on the Forum]

    Originally sent to the ubuntu-jobs mailing list by Lynda Phillips on Wed Sep 1 10:55:28 BST 2010

    PostgreSQL 9.0 RC1 available for testing

    PostgreSQL 9.0 with a whole lot of new features and improvements is nearing completion. The first release candidate was just announced.

    As with the beta versions, I uploaded RC1 to Debian experimental again. If you want to test/use them on Ubuntu 10.04 (Lucid Lynx), you can get packages from my “PostgreSQL backports for stable Ubuntu releases” PPA. Please let me know if you need them for other releases.

    Just for the records, both Debian 6.0 “Squeeze” and Ubuntu 10.10 “Maverick Meerkat” will release and officially support 8.4 only, as 9.0 is too late for the feature freezes of both. Also, it will take quite some time to update all the packaged extensions to 9.0. As usual, 9.0 will be provided as official backports for both Debian and Ubuntu.

    Happy testing!

    Why I Have Nothing Interesting to Say

    This posting has been kicking around in my draft's for almost 2 weeks now. I've been wanting to polish it a bit, since it's a bit personal, but Jono's posting a couple of weeks back inspired me to just run it over and get it out there, even if it's still rough. I have nothing interesting to say, anyway ;) Just be warned, the following is not well organized or concise in any way ....

    Anyway ... I normally use my blog as a way to share and get feedback on projects like Quickly and Quickly Widgets. I haven't been blogging because I haven't been working much on those things lately, so haven't had much interesting to say along that front (though a friend did unblock me on my WebCam widget, so now I'm blocked on bending gstreamer to my will rather than a random crash.)

    The reason that I haven't been working on those is two fold. One part, I've been traveling a lot for work and I took a holiday. But the main reason is related to a recent refactoring of the Ubuntu related teams at Canonical.

    Changes to Canonical Organizational Structure
    This refactoring (or "reorg" in corporate speak) was led by Matt Zimmerman and Robbie Williamson. The resulting structure broke the whole 100+ person Ubuntu team at Canonical into 3 teams:

    1. Linaro Engineering. These are the Canonical folks working on the Linaro project.
    2. Platform Services. This team is dedicated to doing work in Ubuntu for partner teams in Canonical, like OEM services.
    3. Ubuntu Engineering. The team of Canonical developers focused on Ubuntu the Free and Open Source Community distribution.

    I believe the purpose of this refactoring was to make the teams a bit smaller and more focused. However, one of the effects was to leave the Ubuntu Engineering Team with an even tighter focus on Ubuntu as a community distro. Ubuntu Engineering is the biggest team of the three, I believe 85 or so people working on it.

    Changes to My Role(s) in Ubuntu
    Another effect is that of the refactoring was that each of these teams needs a leader, or "Director" in terms of job title, each of whom will report to Matt. The reason that I have been a bit busy to work on Quickly and Quickly Widgets is that I interviewed for, and subsequently got the "Director" role for Ubuntu Engineering. So my job title is now "Ubuntu Engineering Director" (or something like that). I'm still also the Engineering Manager for the Desktop Team until we can find someone awesome to take that role (we're still interviewing, so if you are interested, please apply!!).

    This all went down like 10 weeks ago or something. The personal effect on me is that I've been trying to learn how to do a new role while still trying to hold down the fort on the desktop. So, basically, I am working 2 full time roles. As you can imagine, I am not doing either very well.

    Figuring Out My New Job
    As Director, the engineering managers for the kernel, foundations, server, ARM, desktop, QA, and community now "report" to me. Of course, you know these folks (pgraner, robbiew, jib, davidm, tbh, marjo, and jono) and you know that they are awesome. There are a couple of new roles too (release manager and technical architect). We have very strong people in these roles as well.

    So if the management team and the engineers are so awesome, what's my job? This is a question I have been asking myself, and I do see some areas where I should provide some leadership. I'd like to spend the rest of the post quickly commenting on just one of those areas. It's a bit hard to label, but I think I'll put it under the heading of "Nurturing the Ubuntu/Canonical Partnership".

    Of course I was originally attracted to Ubuntu because it's a Free and Open Source Community Distro, but what made me quit my job and base my living around Ubuntu was that it's a community distro with a Commercial Partner. I thought that a commercial partner would make my efforts more relevant (by reaching more people) and more endurable (by sustaining the project for a long time). A commercial partner can also negotiate with OEMs and help fulfill the dream of a pre-installed FLOSS desktop.

    So it's important for Ubuntu to honor this partnership in order to maintain it's staying power and relevance. Conversely, it's important to Canonical that Ubuntu is a thriving community open source distribution. The reasons for this are probably self-evident, so I'll leave that out. Anyway, it's helping Canonical with this part about being a good partner to Ubuntu that the rest of this post is about.

    Being Part of the Community
    Firstly, in my view, being employed by Canonical is not something that separates me from the Ubuntu Community. If anything, it provides me a lucky position within the community, if nothing else because I am paid full time to contribute to Ubuntu I have more time to dedicate to it. The point is that being on the Ubuntu Engineering Team means that I am part of the Ubuntu Community. This is true for allpeople employed by Canonical to work on the Ubuntu. The Ubuntu community is comprised of all kinds of people contributing in all kinds of ways, including some that get paid by Canonical to work on Ubuntu full time.

    So, if Canonical and Ubuntu both benefit from this partnership, and I am both part of Canonical and the Ubuntu Community, I think that part of my new role of Director should be to help these partners work well together. There are some things that I think we (Canonical employees in the Ubuntu Community) can do better in this regard. I'm still thinking through it, but I am formulating two key goals at this point, one around transparency, and the other around growing the number of core contributors.

    Transparency
    I think that we (the whole community) still follow our transparent processes around UDS, blueprints, specs, and bugs. So we are transparent in the sense that anyone can come and carefully study our documents and learn pretty much anything they want about what Ubuntu is working on. I suspect that the way of being "transparent" work very well for the project when there were way fewer users and way fewer people working on the project. But now the project has grown a bit, and perhaps the old ways are not totally sufficient.

    In one sense, we've made great strides in exposing what we are working on via our work item tracker. But this a very granular view. I'd like to see us do better in expressing the gestalt of a release, the high level goals for the release. I'd like to see us be able to *push* information at this level before, during, and after UDS, and throughout the cycle. I don't know if this goal is really about changing the way we work per se, so much as creating an information architecture around the work that we (and I mean "we" inclusively as the Ubuntu community) are doing, and then having the discipline to maintain a drum beat of communication within that architecture. In this way, the community should better be able to see what the Ubuntu Community and Canonical is focused on in developing Ubuntu, and how that work is going.

    Growing Core Contributors
    While I think the work item tracking system has been great for exposing what we are working on, and also for providing visibility into our status, I suspect it has had an unintended effect. I think it's turned the Canonical employees into feature creation machines. Something about a burn down chart motivates you to work to stay under that trend line. While creating lots of new features is great, I am concerned that it has come at the expense of other important work. A community needs investment, and I am wondering if our focus on work items and features has supplanted some amount of our investment in the community (and by "our" here, I am referring to Canonical Employees in the Ubuntu Community).

    I can see several areas, such as patch reviews, REVU, archive admins, etc... that are bottlenecked by not having enough core contributors. But our very inability to focus on things like reviewing patches and REVU means that we are not inviting new people to build towards being core contributors. But new people is exactly what we need to remove the bottlenecks! A sweet catch-22. I think that this will require the bold move to hold back on commitments to features, to tilt Canonical Employees investments a bit toward nurturing those new comers (as well as our stalwart comrades, of course).

    So there are 2 great topics for UDS discussions. Whatever the case, can I just say that I am thrilled to have this new gig, and I look forward to getting to know a whole lot of people and to help them with their goals for Ubuntu? I guess being my blog, I can say that ;)


    GUADEC 2010 Videos

    This year, due to family commitments, I was unable to attend GUADEC. Although the reason why I couldn’t attend made me very happy, I also was sad by the fact that I wasn’t going to be able to attend one my favourites FOSS conferences.

    Happily, and thanks to Flumotion,  the videos are now available for download.

    I have started downloading some of them and, of course, the first talk that I watched was the one given by my good friend, excellent hacker and accessibility advocate, Eitan Isaacson. In his talk, Eitan explains in a non technical way, why it is important to have accessibility in mind when designing any kind of products: from buildings to software. If you are a software designer or developer, I really recommend watching his talk. I am sure you will start thinking about accessibility when designing your next application.


    Rest Well, My Friend

    It was with great sadness that I read earlier that my friend and colleague Ian Clatworthy passed away after his fight with cancer. Although I never knew Ian that well, whenever I did work and spend time with him I always found him to be a fun, light-hearted, and always pleasant person to be around.

    Words escape me.

    You will be missed, my friend. Rest, well.

    Ian Clatworthy Howl-a-thon

    I was saddened to hear news today of the passing of Ian Clatworthy. Although I did not know Ian well, he was a great co-worker during my time at Canonical. Ian was fun, passionate, easygoing, affable and tolerant. He was also a great coder, and always ready to dive into bzr source to scratch user itches.

    We all need to process news like this in our own ways, and sometimes just a good emotional release is in order. In all seriousness, today I remarked in #bzr

    [mneptok] TODO: tonight when the moon is high in the sky, go and let loose a prolonged howl. think of igc.

    I guess I shouldn’t be surprised that I got a few “+1″ sentiments. And that got me thinking …

    Please do step outside in the darkness and give a howl at the moon for Ian. Especially if you’re an Ubuntu member with a blog syndicated to Planet Ubuntu. Then, write a blog post with just “Ian Howl +1!” as the content. Hopefully, together we can get Planet Ubuntu showing nothing but oddball Free Software people howling at the moon in tribute to a fallen comrade.

    I didn’t know Ian well enough to say, “Ian would have wanted this,” but I did know him well enough to know he’d get a mighty big grin out of the idea.

    So, without further ado …

    Ian Howl +1!

    Is packaging new software hard?

    EDIT 1: Sorry Planet readers. I tried adding a "read more" thing to shorten it, but apparently that doesn't change the RSS feed, just the blog's front page. And yes, I will fix up the Ubuntu Wiki later.

    A common answer to my question about why people aren't packaging is that packaging is hard and the wiki is kind of lacking. Debhelper 7 and Source Version 3.0 (the new Debian packaging format) make things a lot easier.

    So is it hard? In the common case, no.

    EDIT 2:Switched from "native" to "quilt" since as pointed out in comments, it makes for a smaller upload and debuild can deal with directly-applied patches in the case that you don't know how to use quilt.

    Assuming the software you want to package uses something like Python distutils ( python setup.py build && sudo python setup.py install) or Autotools (./configure && make && sudo make install), Debhelper 7 makes things really straightforward.

    Backing up, there are 4 files necessary in the debian/ directory:

    • rules
    • control
    • copyright
    • changelog

    There are two more files you can include that act as a sort of metadata for what sort of package you're making:

    • compat
    • source/format

    Assuming you want to make a Source Version 3.0 quilt package with Debhelper 7 (this is pretty normal these days):

    1. Rename the original source tarball to have the form <package name>_<upstream version>.orig.tar.gz
    2. Unpack the source and change into the unpacked directory: tar xf foo_bar.orig.tar.gz && cd foo
    3. Make a debian directory and enter it: mkdir debian && cd debian/
    4. Now it's time for those files
    EDIT TO ADD

    Generation

    Good news: The version of dh-make in Debian SVN appears to support Debhelper 7.

    Bad news It doesn't parse command line arguments properly.

    In the meantime, you can use the old one to generate everything but the debian/rules file. If only a single deb will be produced, and it's under the GPLv3, that'd be dh_make -c gpl3 -s Then you'll just delete files not listed above and the debian/rules file and instead put in a debian/rules containing what I'm about to tell you below.

    PS: I'm told dh_make is a pretty unclean way to do things. It's probably best if you just copy and paste the examples, then modify.

    debian/rules

    The boilerplate debian/rules file for standard build systems when you don't need to pass special configure options is:

    #!/usr/bin/make -f
    
    %:
     dh $@

    Note that that is a tab, not a bunch of spaces, before the "dh". This used to be the most difficult file to write, which is why I used to use dh_make to generate it. Debhelper 7 made it so much easier!

    debian/control

    This one is long, but it's pretty easy to fill in the blanks. It's the only file of the bunch for which you might continue to need a reference. Here's how the control file should look:

    Source: foo
    Section: bar
    Priority: optional
    Maintainer: Foo <foo@example.com>
    Build-Depends: eeny-dev, meeny-dev, miney, moe, debhelper (>= 7)
    Standards-Version: 3.9.1
    Homepage: http://foo-project.org
    
    Package: foo
    Architecture: all
    Depends:  eeny, meeny, miney, moe
    Description: does stuff
     Foo does stuff blah blah blah blah to make things easier for users to
     do whatever they need to do. Long description here.

    Source package stanza

    • Source: Put the source package's name. This should be the same as the package name on the orig.tar.gz.
    • Section: For the list of valid Sections, see the Debian Policy Manual section on this. In Debian, you will put something like "non-free/kde" while in Ubuntu only the subsection (kde) is listed and the archive admins put it into the right section. In Debian, if the section is main, just list the subsection.
    • Priority: "optional" is what you want for most applications. Again, see the Debian Policy Manual section on Priorities for other options.
    • Maintainer: your name and email address if you are submitting to Debian, or if you are submitting to Ubuntu, put "Ubuntu Developers <ubuntu-devel@lists.ubuntu.com>"
    • Standards Version: current one (as of August 2010) is 3.9.1, and you shouldn't be starting from an out-of-date one
    • Homepage: the project's homepage

    Binary package stanza

    Now for the binary packages generated by the source package. For most applications, there will only be one binary package generated, but if there's more than one, just repeat the second stanza of this file once for each one, of course changing the values on each line.

    • Package: name of the binary package (the deb). Use logical names. If there's only one, feel free to repeat the source package's name.
    • Architecture:
      • all: if it can be built once and run anywhere (common for Python)
      • any: if it needs to be built everywhere
      • Otherwise, a list of architectures
    • Description: put a short description after the colon that can fill in the blank at the end of "$PACKAGE_NAME _____" with a short verb phrase (< 80 characters). On the lines below, put the long description with a single space at the beginning of each line. If you want a blank line, put a space and a period.

    Build-Depends and Depends

    I kept skipping the bit about Build-Depends and Depends. For these, you want to list the names of other binary packages (not source packages!). If a particular version is needed, parentheses and mathematical symbols (like where I put "debhelper (>= 7)") are used.

    Usually -dev packages will be in the Build-Depends since that's where header files are in Debian and Ubuntu while non-dev packages will be in the binary package's Depends. You don't need to figure this stuff out completely on your own. The upstream README and INSTALL files should list what libraries are needed. If they're not, complain to upstream about bad documentation!

    If you don't know what package provides a certain library, sudo apt-get install apt-file &&apt-file update then use apt-file search to find what package provides it.

    Notes

    These are the required lines. There are more available in the Debian Policy Manual (I keep referring to that, huh? It's useful!), such as Recommends and Suggests. How do these compare with Depends?

    • Depends: absolutely must be installed in order for the software to work
    • Recommends: useful and common to have with the package but not completely necessary.
    • Suggests: you want apt to notify the user that there's some other software that's kind of useful to use with it

    Recommends are installed by default in Debian and Ubuntu nowadays, but some people disable them using sudo apt-get install --no-install-recommends foo, so the difference between Depends and Recommends is important. There are more less-commonly-used package relationships too, but you can read the Policy Manual for that.

    PS: If you're packaging a Python app, "${python:Depends}" goes in the binary package's Depends line to avoid typing it all out.

    I always find writing a good description to be the hardest part.

    debian/copyright

    The debian/copyright file is a pretty straightforward fill-in-the-blank.

    This package was debianized by Your Name <you@example.com> on
    Tue, 24 Aug 2010 20:05:25 -0400
    
    It was downloaded from http://example.com

    For the timestamp, run date -R and copy that in there. Make sure the copyrights are listed next, something like this (the COPYING or LICENSE file should have this at the top):

    Copyright
    © 2010, Author Name <author@example.com>

    Double check this by running licensecheck -r in the top level code directory.

    License:
    The code files in this package are under the GNU General Public License
    version 3:
        | This program is free software: you can redistribute it and/or modify
        | it under the terms of the GNU General Public License as published by
        | the Free Software Foundation, either version 3 of the License, or
        | (at your option) any later version.
    
        | This program is distributed in the hope that it will be useful,
        | but WITHOUT ANY WARRANTY; without even the implied warranty of
        | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the 
        | GNU General Public License for more details.
    
        | You should have received a copy of the GNU General Public License
        | along with this program.  If not, see <http://www.gnu.org/licenses/>.
    
        The full text of the GNU General Public License version 3 is available on
        Debian systems in /usr/share/common-licenses/GPL-3.

    Depending on licensecheck's output, you may need to list multiple licenses.

    debian/changelog

    This is the easiest of the files that require you to do any thought. Run dch -i --create, fix your email name and email address to match who you are, and put in an explanation. In future, you'll just run dch -i to add another entry. Explain what you did to the package. In this case, it'll likely just be "Initial release" which is pretty simple. dch should set the right version number. It'll look something like:

    foo (0:1.0-0ubuntu1) maverick; urgency=low
    
      * Initial release
    
     -- Your Name <you@example.com>  Tue, 24 Aug 2010 20:05:25 -0400

    The first bit is the same as the source package name and will automatically be filled in. The part in parentheses is the package version. It is in the form <epoch>:<upstream version>-<debian version>ubuntu<ubuntu version>

    If you're doing the initial packaging, the epoch is 0, and the upstream version will be automatically filled in from the .orig.tar.gz.

    • Debian: Debian version will be 1
    • Ubuntu: Debian version is 0 and Ubuntu version is 1
    • PPA: put 0s for both of those and add +ppa1 (or +yournick1 or whatever)

    Next comes the version of Debian or Ubuntu for which you are packaging. Leave urgency at low for now. You're packaging an app, not the kernel. It just affects how quickly the build servers get around to it, and abusing this field will make people Not Happy.

    Other files

    For the debian/source/format and debian/compat files, just run echo "7" > compat and mkdir source && echo "3.0 (quilt)" > source/format

    Time to build!

    The hard part is done, and that really wasn't very hard given it's pretty much just fill-in-the-blank the whole way. Now to build and test. My preferred way to test builds is to use pbuilder. It uses a minimal chroot, so your build-dependencies get tested too.

    1. Install the build dependencies you listed in debian/control
    2. sudo apt-get install pbuilder ubunt-dev-tools devscripts (If I missed any, tell me in comments)
    3. Generate the source package: debuild -S—a .debian.tar.gz, a .dsc, and a .changes file will show up in the same directory as the .orig.tar.gz
    4. Make a pbuilder to build your package: ln -s /usr/bin/pbuilder-dist ~/pbuilder-maverick && ~/pbuilder-maverick create—substitute in whatever version of Debian/Ubuntu you are building for (same as you listed in changelog)
    5. Build the source package: ~/pbuilder-maverick build ../foo*.dsc—.debs will be output in ~/pbuilder/maverick_result

    PS: The "make a pbuilder" step only has to be done once per release on which you intend to ever build. Keep it up to date with ~/pbuilder-maverick update

    If it all builds successfully, congrats! If it doesn't, either you forgot a build dependency or it's not a wonderfully straightforward application and you should visit #ubuntu-packaging on Freenode or #debian-mentors on OFTC for help debugging. We're friendly!

    Test

    Install the debs and test it out.

    Upload

    You'll need to sign the package before you can upload it anywhere, if it didn't get signed when you ran debuild (the output would have told you if it did). Generate a GPG key and use debsign -k<your key ID> foo*.changes to sign it. If you're working on Ubuntu, add your key to Launchpad or if Debian add it to Debian Mentors. Then run dput mentors foo*.changes for Debian Mentors or dput revu foo*.chanes for Ubuntu's REVU (where new packages are reviewed by MOTU for inclusion in the archive). You'll get feedback from a mentor or a MOTU, improve your package based on that, and then someone will sponsor it. Or you can upload to a PPA with dput ppa:user/ppa foo*.changes

    August 31, 2010

    Newsbeuter, Mutt and Google

    I just discovered Newsbeuter supports synchronization with Google Reader. Not only your read/unread feed items, but you can also share and star items in Newsbeuter as you can in the Google Reader interface. This blog post is documenting how. Further, by using Buzz, you can also comment on your shared items, and others. I’ll cover that as well.

    First, I like the command line. I like minimalist function and design. It’s always pulled me in. So, this solution is a command line solution. With that said, the command line doesn’t work well for viewing images, does it? This can be problematic for RSS feeds. I understand this. However, since using Newsbeuter for the time I have, I’ve found that I read a lot of blogs that are 100% images, and when push comes to shove, it’s adding a lot of noise to my RSS signal. As a result, I’ve removed a great deal of those feeds, and haven’t missed them. Again, going back to minimalism, I read fewer feeds now, and the signal is much, much higher. However, the link to the RSS feed is in the post itself, so you can follow the link from Newsbeuter to the browser of your choice if you wish. This will be the minority of the time for myself.

    Second, this solution is not only using Newsbeuter, but also Mutt. Really, any mail client will work, but I like Mutt, so I’ll be using it in the solution here. Further, we’ll be tying Reader and Buzz together to make a few things work. But, everyone hates Buzz, right? Well, I don’t. I love the tight integration it has with Gmail and with Reader. Yeah, the design is lacking, that’s for sure. And some of the keystrokes are completely bass-ackwards compared to reader, and can cause problems with Gmail. However, because of the integration, and the reply-by-mail feature, which we’ll take advantage of here, you’ll find you won’t miss your Google Reader much (unless you absolutely have to view images in your feeds).

    With that said, let’s begin. First, you need to install Newsbeuter 2.2 or greater and an mail client (Mutt, as already mentioned, will be used here). After installing Newsbeuter, you need to configure it to sync with your Google Reader account. Here’s what I set in my ~/.newsbeuter/config:

    # setup google reader sync support
    urls-source "googlereader"
    googlereader-login "username@gmail.com"
    googlereader-password "my-password"
    googlereader-flag-share "S"
    googlereader-flag-star "s"

    Make sure you read the documentation about the Google Reader support. Now, fire up Newsbeuter. After authenticating, you will notice that it has populated your feeds, and you can start pulling down the updates to unread items. Here’s a screenshot of my Newsbeuter “home”:

    You now have access to your starred items, your shared items, popular items and people that you follow (what others are sharing), but not the comments. That’s okay, we’ll cover how to get access to that in a second. However, if you have access to your starred items and shared items, how do you share or star an item in Newsbeuter? This is done through flags. Newsbeuter has a flagging system that allows a custom categorization of feeds by the user. The flag must be a letter, ether uppercase or lowercase, A-Z and a-z. You set the flag by pressing “Ctrl-e”, then entering the flag you wish to set. Now, you’ll notice that in my config, I have two options that are for flags: “googlereader-flag-share” and “googlereader-flag-star”. If I press “S” for my flag, then it will share the item. If I press “s” for my flag, then it will star the item. Test it, then log into the Google Reader interface to see it work.

    Now, when I would share items, they usually were shared with a comment to encourage discussion with those who are following me (or anyone who can read the shared item). However, in Newsbeuter, there is no way to comment on a flagged item directly. Further, when you read items that your friends share, and they have comments with them, how do you add your own commentary? Well, I have a solution, but it doesn’t involve Newsbeuter. Rather, it requires that you use Buzz and an email client.

    With Buzz, you can add your Google Reader shared items as a connected page. This means that whenever you share an item on Reader, it will show up as a new item in Buzz. Further, Buzz will send you an email of all the items you’ve posted to your wall, as well as your items that have been commented on. When you receive the email, the body of the message might be something like this (text copied and pasted from Mutt):

    Date: Tue, 31 Aug 2010 13:59:49 -0700 (PDT)
    From: Aaron Toponce <z12dhj4psprvstctz23vcxg5wleozbfi104@gmail.com>
    To: Aaron Toponce <aaron.toponce@gmail.com>
    Subject: Buzz from Aaron Toponce
    
    [-- Autoview using /usr/bin/elinks -force-html -dump ''/tmp/mutt.html'' --]
       [1]Aaron Toponce – Google Reader   Aug 31, 2010
       [2]Man Already Knows Everything He Needs To Know About Muslims - [3]Aaron
       Toponce's Friends' Facebook Links
       [4]Man Already Knows Everything He Needs To Know About Muslims
       Source: [5]www.theonion.com
       [6][IMG]
       SALINA, KS—Local man Scott Gentries told reporters Wednesday that his
       deliberately limited grasp of Islamic history and culture was still more
       than sufficient to shape his views of the entire Muslim world.
           I seem to recall that in earlier times it was only the court jester
       who could get away with speaking unwelcome truth to power. Perhaps that is
       why comedy often forces us to see things about ourselves we don't want to
       see.
       –––––
       Reply to this email to add a comment to this post.
       Link to this post:
    
    http://www.google.com/buzz/115784859563110525602/BaqgGreVqdT/Man-Already-Knows-Everything-He-Needs-To-Know
    
    References
    
       Visible links
       1. http://www.google.com/profiles/aaron.toponce
       2. http://www.facebook.com/profile.php?id=1068226280&v=wall&story_fbid=124010764315178
       3. http://www.facebook.com/posted.php
       4. http://www.theonion.com/articles/man-already-knows-everything-he-needs-to-know-abou,17990/
       5. http://www.theonion.com/
       6. http://www.theonion.com/articles/man-already-knows-everything-he-needs-to-know-abou,17990/

    Notice the “From” address. It’s a long unique string that gives you access to comment on the post directly. As mentioned in the email, all you have to do is reply to the email, adding your commentary, and it will be posted as a comment on the shared item. You’re actually commenting on a Buzz post, not a Reader post, however, because you tied Reader and Buzz together, they become one and the same. Also, Buzz is smart enough to strip signatures and attachments from the reply, so your email signature and S/MIME PGP attachment will also be stripped. Just make sure you trim your email appropriately, so you’re not adding anything irrelevant to your comment (trim everything out of your reply).

    Go back to Reader, pull up the shared item, and notice your comment on the post. Of course, you can comment on others shared items by sharing it first (the “S” flag for me), then replying to the mail sent from Buzz. When Buzz gives the ability to be notified of everything that your friends are posting, then you shouldn’t have to share it also. However, I usually reshare what others have shared, so this isn’t a show-stopper for me, even if it is less than perfect.

    UPDATE: I forgot to mention Newsbeuter’s tagging feature. In Google Reader, I have separated my feeds into folders. However, when I sync with Reader, it seems all my feeds are in one massive “river of news”. I don’t like this, and wish the folders were preserved. Well, with Newsbeuter, it is through tags. When in the main window, press “t” and it will take you to your “tags”, or folders as Reader would call it. At which point, you can read only what specific topic you’re interested in. However, I do know that Google Reader supports tagging beyond their folders. I don’t know of a way to apply Reader tags inside Newsbeuter.

    Planet Ubuntu

    Planet Ubuntu is a window into the world, work and lives of Ubuntu developers and contributors.

    If you are an Ubuntu Member, and would like your blog aggregated here, please see the PlanetUbuntu wiki page.

    Updated on September 02, 2010 03:38 PM UTC. Entries are normalised to UTC time.

    Ubuntu World Wide

    Feeds