Search Results: "ag"

23 October 2009

Dirk Eddelbuettel: From ORD Sessions to R-Forge in 12 hours with RProtoBuf

Yesterday, via in invitation from fellow Chicago-area Google Summer of Code mentor Borja Sotomayor, I attended the Second ORD Sessions. These are happening at the HQ of Inventable where a couple of technologists and Open Source geeks from the Chicagoland area get together and riff on code for a few hours after work over some pizza and beer. Sounded good, and I needed an excuse to try to mix the awesome Protocol Buffers with my favourite data tool, R. What are Protocol Buffers? To quote from the Google overview page referenced above:
Protocol buffers are a flexible, efficient, automated mechanism for serializing structured data think XML, but smaller, faster, and simpler. You define how you want your data to be structured once, then you can use special generated source code to easily write and read your structured data to and from a variety of data streams and using a variety of languages. You can even update your data structure without breaking deployed programs that are compiled against the "old" format.
and later on that page:
Protocol buffers are now Google's lingua franca for data at time of writing, there are 48,162 different message types defined in the Google code tree across 12,183 .proto files. They're used both in RPC systems and for persistent storage of data in a variety of storage systems.
So three hours later, I had an implementation of the 'addressbook reader' C++ example wrapped in a tiny yet complete R package that passed R CMD check. And one lingua franca for data has met another. So before going to bed, I quickly registered a new project at R-Forge, everybody's favourite R hosting site, and thanks to the tireless Stefan Theussl (and some favourable timezone differences) the project was approved and the stanza available by the time I got up. So I quickly filled the SVN repo and, presto, we had the RProtoBuf project at R-Forge within 12 hours of the ORD Sessions hackfest. I will try to follow up on RProtoBuf in a couple of days, this may lead to some changes in my Rcpp R / C++ interface package as well.

22 October 2009

Gunnar Wolf: How can we advance without a tax increase?

There has been a lot of buzz recently in Mexico after a tax increase that has been announced for next year. The two main points I have seen criticized are:
Value Added Tax (IVA) increase from 15% to 16%
There was a great improvement regarding the original proposal by our de-facto ruler (why de-facto? Because it is still unclear whether he won the popular vote. He has about the same legitimacy as George Bush during his first term: Legal but illegitimate): In Mexico, there is a category of items regarded as fundamental, which are exempt of IVA (tasa cero). This category includes food and medicines Of course, this category makes up the bulk of the poorer people's consumptions, so they pay much less IVA than people with higher living standards. For a very long time, there has been a push to remove this exemption. This has been fortunately clearly understood and fought against. So, the presidential initiative, as I was saying, contemplated a global 2% tax which would not be IVA, and which would be applied universally. This tax would be earmarked to be applied to social programs, and was euphemistically called Impuesto de Combate a la Pobreza (poverty combat tax). Many people applied the concept of duck typing (if it looks like a duck, walks like a duck and quacks like a duck... It is a Value Added Tax). As many analysts, I believe this tax was meant to be the foot in the doorstop, leading to point out in a couple of years that anyway nothing is IVA-exempt anymore and the world has not come to an end, and we should apply universal IVA... So, the reduction in the increase (2% 1%) is not the most notable thing here The notable (and good!) thing is that they didn't succeed into killing the tasa cero.
3% tax on telecommunications
Many friends have started rallying (with the IMHO least effective way of protest you can find on Earth, just by stating their adherence in their Twitter and Facebook profiles. Wow, great deal!) that the original proposal included a 4% tax on telecommunications, and it appears that 3% will be applied. They say, quite fairly, that telephone and Internet access are no longer considerable a luxury, but a need to power the society into becoming better prepared, more competitive. My friends state as a contrast the Finnish ruling broadband access as a citizen right. What they seem not to realize is that the proportion of taxes in Mexico (collected from the responsible taxpayers, which is not by far the way for the bulk of the money in this country) is close to 30%, taking into account the big taxes (IVA, ISR/IETU) and the host of smaller ones. In Finland, the percentage of taxes payed by every person and remember that tax evasion is way lower than here!) is over 50%.
So What is my opinion on this? What would my ideal tax scheme be?
  • Nobody likes taxes. But the country needs far more infrastructure, far wider inverstments. We need higher taxes But we need those taxes to be collected from people with higher income. And yes, that would mean I would most probably pay more (as I do sit relatively high on the income scale Qualified work, even if you do not seek money for the sake of it, pays much better than non-qualified work; remember the minimal wage in Mexico is around MX$50 a day - Less than US$4 or 3).
  • The increases should be applied to the income tax (ISR). It is supposed to be around 30% for income levels over MX$5000 a month, with a very slight increase after that point. Income tax is highly deductible now, and most people with high income manage to ellude most of it. Many cases have been documented of companies as small as Walmart paying less than MX$1000 a year due to several (intentional? you bet!) holes in the legislation. That is where the bulk of the extra government income should come from!
  • For a couple of years, since I registered as a taxpayer (people receiving money exclusively as salaries under a given limit don't have to declare taxes) I have decided not to hire an accountant to make the numbers look prettier, and just do the numbers myself over the platform provided by SAT/Hacienda (the tax collecting authority). Yes, that means I am paying more than what I could But it also means I am paying what I should! And it is an expensive point of view, but I strongly invite others to do the same. If we criticize Walmart for making numbers look prettier, shouldn't each of us do the same? Shouldn't we all care to pay what we are supposed to, so that the government has enough funds to carry out its tasks?
Yes, I am painfully aware that an important portion of what gets into the government disappears due to corruption and ineptitude. Still, the only position from where I can criticize is from being clearly legal. The same point as I do with software: I cannot ask people to comply with my Free Software licensing if I use ilegally propietary software, can I? So no, I don't use any. Even legal propietary software, free-as-in-beer (i.e. Flash player). So, please think this over before you join the Lemmings into complaining about the tax increase. Yes, this is a bad moment to increase taxes. Yes, Mexico is the worst faring country in all of America in its response to the crisis; the GDP will probably fall between 8% and 10% this year and 2010 will not be much better. Yes, it would be better to increase competitivity. But, yes, we pay ridiculously low amounts of taxes And those of us who can afford a little reduction in our expenditure should do it. And those who make gross money should just stop it. Oh, and last point, regarding the #internetnecesario Twitter hashtag: Don't be Lemmings. Internet should be recognized a basic need for a free society. But right now in our country, it completely is a luxury, even if you cannot live without it. If you are Internet-addicted as myself, you most probably will not notice the 3% increase. FFS, We will pay MX$360 instead of MX$350 a month for my Infinitum connection. Will we really notice? In Mexico, middle and upper class are Internet-enabled. Lower classes are not. Things should change, no doubt. But it is not at all comparable to an universal IVA. Things should change and universal connectivity should be a given. But right now, calling Internet a basic good... is just out of touch with reality.

Eugene V. Lyubimkin: cupt 1.1

I just released cupt 1.1.0 to Debian unstable. I intended to push more changes into it, but James Vega recently discovered critical issue about 'libc6-i686' package that can break the whole system if its version differs from version of 'libc6' package, so in absence of answer from Debian eglibc maintainers I implemented a workaround for it and released new version.

Nevertheless, the following changes worth noting:

MJ Ray: Some Good Does Come From Ubuntu

I ve been mouthing off about Ubuntu again, after the forthcoming release parties were advertised in some pretty inappropriate places, lamenting:
Ubuntu has taken a voluntary-sector aim-for-100%-free distribution, built a private-sector free-and-non-free distribution and gets more love and free marketing from free software supporters than its parent, or than the whole-community events.
However, I did surprise someone by ending with
The silver lining is that most Ubuntu improvements are free software and are/can be contributed back to the free software world.
That s in part because Ubuntu finally made some progress on the Mailman colour mismash bug I tried to fix 5 years ago which is still unfixed in GNU as far as I know. So I think that as long as much of Ubuntu is free software, its contributors will still be doing some good work. I hope a mailman bgcolor/CSS patch is taken by other distributions soon.

Ingo Juergensmann: Panorama-Foto von Akureyri

When I went on my business trip with AIDAaura during second half of July, I took our Nikon D90 with me and made some pictures. Well, in total I made 24 GB of pictures (JPEG+RAW) and some of these GBs of pictures were taken with the background in mind to make a nice panorama picture out of them with Hugin. Usually I selected the necessary data points for blending by hand. Of course this is an ardous work, especially when you heard from another guy that this can be done automatically. But in Debian this function doesn't work out of the box because the autopano-sift-c package, which is contains the needed program, is not part of the distribution because of some US patents.

Luckily there is an package on http://www.debian-multimedia.org that solves this problem. Generating panorama views is becoming easy with Hugin after I installed that package. And as a first result I made a panorama view of Akureyri, Iceland:

Panorama of Akureyri


The panorama consist of 10 photos with 4288px x 2848px, giving a total panorama view of 11517px x 2497px (34 MB).

21 October 2009

Lior Kaplan: Encouraging open source in education


I ve read today a case study by Gregor Bierhals about an Austrian project called desktop4education which creates a desktop environment for school based on open suse. The fact that really surprised me (and for the better) was the fact that the federal government help the project by sending CDs/DVDs to other school and even willing to award schools to move to open source software and reducing license fees. While schools don t pay the the Microsoft Office license fee (10 euro per station), the federal government has decided to pay the schools 10 euro for each station that moved to open source software.
However, by the time of writing the situation is about to change as the Federal government increasingly adopts a policy that promotes the use of open source software in Austrian schools. Exemplary to this is the government s decision to pay any school 10 for each workstation that runs the free productivity suite Open Office that is provided by Sun Microsystems in replace of Microsoft Office, for which the government introduced a calculative license fee of 10.
I think this decision is radical as it motives the schools to move to open source software, and benefiting financially from the move. So while the government might pay a bit more, the money goes to the schools instead of commercial companies. I m sure that s a better investment of tax payers money. I can just hope more governments will adopt this policy. Posted in Proud to use free software Tagged: education, free software

Aigars Mahinovs: My first post with Google Wave pops up for people

Some time ago I wrote a test post with a Google Wave embedded into the post. Only a couple days ago I discovered that to make a Wave public one needs to add public@a.gwave.com as a participant to the wave. I did that and the Wave became visible also to people without Wave accounts. But another fun thing happened at the same time multiple people reported that this Wave popped up directly in their Google Wave Inbox. But in this case I suspect that when people saw the Wave (even in it s disabled form) either on my blog or on the Planet Debian, Google stored that info somewhere and when they logged in their new Google Wave accounts it added that wave to their Inbox, but the wave did not show up in their Inbox until I made it public a couple days ago. And thus there was a disconnect between action (people viewing my blog post) and reaction (Wave showing up in their Inbox) that will confuse a lot of people. The way to fix that would be to only add waves to your Inbox if you ve commented on them (or added to them) which would not be possible for private waves.

MJ Ray: Royal Mail Rub Our Noses in it

So after Royal Mail shut down useful community websites causing MP comments on the idiocy of Royal Mail, I was rather surprised to get this little thing in the post today: postcode That s a postmark advert for Celebrating 50 years of POSTCODES 1959-2009 . So this is what Royal Mail does with some of the money it makes from its claimed monopoly on postcode databases: it spends it on ink to celebrate postcodes in the bit where they can t sell adverts. After the postcode-takedown, I suggested deleting postcodes from all our co-op s websites. Instead, another member has persuaded me to contribute to something like free the postcode, which I first saw on CycleStreets blog. As well as slapping its customers, Royal Mail is also currently taking on its workers who are campaigning for sustainable jobs and against the recent increase in bullying and harassment cases. I already send most of my letters, invoices and so on electronically since our three nearest post offices closed last year. I ve noticed Edinburgh Bicycle Co-op switching to DPD and Terry Lane suggesting more online use. Are those good approaches? How are you adapting to the postal delays? Have you put your postcode into free the postcode or a similar site?

Kartik Mistry: foss.in/2009


* Long awaited CFP is out! Lets see how we represent Debian this time. Last year s I missed it completely and I am also not sure about this year, but as always I am excited ;) Go for it!

Ingo Juergensmann: Webcam driver gspca with newer kernels?

Apparently in newer kernels my webcam, a Logitech QuickCam Communicate STX, does not work anymore. At least not the way it worked still in 2.6.26.2. There are some results in Google search showing that I'm not alone with that problem. Like this one.

But for the records: when I start, for example, camstream, I get the following output:

QUOTE:

[...]
D: CCamPanel::SetVisibleSize(640x480)
>> void CWebCamViewer::RecalcTotalViewSize()
<< void CWebCamViewer::RecalcTotalViewSize()
<< CWebCamViewer::CWebCamViewer(CVideoDevice*, QWidget*, const char*)
D: >> CVideoDevice::IncrementPalette(0)
D: >> CVideoDeviceLinux::StartCapture()
D: CVideoDeviceLinux::SetPalette picked palette 0 []
W: Unknown palette
D: >> CVideoDeviceLinux::CreateImagesRGB()
D: << CVideoDeviceLinux::CreateImagesRGB()
D: << CVideoDeviceLinux::StartCapture()
D: << CVideoDevice::IncrementPalette()
D: >> CVideoDeviceLinux::run()...
W: Unsupported palette 0
W: run(): VIDIOCSYNC(1) failed (Invalid argument)
W: VDLinux::run() VIDIOCMCAPTURE failed (Invalid argument)
W: run(): VIDIOCSYNC(1) failed (Invalid argument)
W: VDLinux::run() VIDIOCMCAPTURE failed (Invalid argument)
W: run(): VIDIOCSYNC(1) failed (Invalid argument)
W: VDLinux::run() VIDIOCMCAPTURE failed (Invalid argument)
W: run(): VIDIOCSYNC(1) failed (Invalid argument)
W: VDLinux::run() VIDIOCMCAPTURE failed (Invalid argument)
.
.
.


When I run camstream with the LD_PRELOAD trick from that Ubuntu launchpad entry above, I get this:

QUOTE:

[...]
D: CCamPanel::SetVisibleSize(640x480)
>> void CWebCamViewer::RecalcTotalViewSize()
<< void CWebCamViewer::RecalcTotalViewSize()
<< CWebCamViewer::CWebCamViewer(CVideoDevice*, QWidget*, const char*)
D: >> CVideoDevice::IncrementPalette(0)
D: >> CVideoDeviceLinux::StartCapture()
D: CVideoDeviceLinux::SetPalette picked palette 4 [rgb24]
D: >> CVideoDeviceLinux::CreateImagesRGB()
D: << CVideoDeviceLinux::CreateImagesRGB()
D: << CVideoDeviceLinux::StartCapture()
D: << CVideoDevice::IncrementPalette()
D: >> CVideoDeviceLinux::run()...
libv4lconvert: Error decompressing JPEG: unknown huffman code: 0000ffd9


This gives me a working video image from my webcam, but sadly, the colors are bad/wrong. So, it's not usuable as well:

Snapshot with gspca webcam


As you can see, the colors are bad. Red is for example blueish/purple. The two folder on the right in thet shelf are coloured yellow and red in reality, but in the snapshot they appear to be light teal and purple.

20 October 2009

Russell Coker: Virtual Hosting Features

I ve just been setting up new virtual servers at Linode [1] and Slicehost [2]. I have previously written a review of both those services [3], based on that review (and some other discussions) one of my clients now has a policy of setting up pairs of virtual servers for various projects, one server at Linode and one at Slicehost. Now both virtual hosting providers work very well and I m generally happy with both of them. But Linode seems to be a better offering. Linode has graphs of various types of usage, I can look at graphs of disk IO, CPU use, and network IO for the last 24 hours, 30 days, or for previous months. The three graphs have the same scale of the X axis so I can correlate them. The stats on Slicehost just allow you to get the current raw numbers, which doesn t help if I want to know what happened last night when performance sucked. When I build a Linode instance I can have multiple filesystems configured (Slicehost can t do any of this). I can use less disk space than is available to reserve space for other filesystems. Separating filesystems makes it easier to track IO performance and also allows some bounds to be set on the amount of disk space used for various tasks. Nowadays the use of multiple partitions is not as popular as it once was, but it s still a real benefit. Of course one of the benefits of this is that I can have two partitions on Linode that are suitable for running as the root filesystem. If an upgrade fails then it would be an option to boot with the other filesystem (I haven t actually done this but it s good to have the option). I believe that this feature of Linode could do with some improvements. Firstly when creating or resizing filesystem it should be possible to specify the number of Inodes when using Ext3. The fsck time for a large Ext3 filesystem that has the default number of Inodes is quite unreasonable. It would also be good if other filesystems such as XFS were supported, for some use cases XFS can significantly outperform Ext3 and choice is always good. When BTRFS becomes stable I expect that every hosting provider will be compelled to support it (any provider that wants my continued business will do so). Now Linode and Slicehost both allow sharing bandwidth allowances between virtual servers. So if you run one server that uses little bandwidth you can run a second server that needs a lot of bandwidth and reduce the potential for excess bandwidth use problems. The next logical extension to this is to allow sharing disk allocation between servers on the same physical system. So for example I might want to run a web server for the purpose of sending out large files, 360M of RAM as provided by the Linode 360 offering would be plenty. But the 128G of storage and 1600GB per month of bandwidth usage that is provided with the Linode 2880 plan would be really useful. At the same time a system that does computationally expensive tasks (such as a build and test server) might require a large amount of RAM such as 2880MB while requiring little disk space or bandwidth. Currently Linode allows sharing bandwidth arbitrarily between the various servers but not disk space or RAM. I don t think that this would be a really difficult feature to implement. Finally Linode has a Pending Jobs Queue that shows the last few requests to the management system and their status. It s not really necessary, but it is handy to see what has been done and it gives the sysadmin a feeling of control over the process. These management features provide enough value to me that if I was going to use a single virtual hosting provider then I would choose Linode. For certain reliability requirements it simply wouldn t be a responsible decision to trust any single hosting company. In that case I m happy to recommend both Linode and Slicehost as providers.

Daniel Kahn Gillmor: Revoking the Ubuntu Community Code of Conduct

I've just revoked my signature over the Ubuntu Code of Conduct 1.0.1. I did this because Ubuntu's CoC (perhaps jokingly?) singles out Mark Shuttleworth as someone who should be held to a super-human standard (as pointed out recently by Rhonda, as well as earlier in ubuntu bug 53848). I think that the CoC is a good document, and good guidelines in general for reasonable participation in online communities. When i originally signed the document, i thought the Shuttleworth-exceptionalism was odd, but decided i'd be willing to hold him to a higher standard than the rest of the community, if he wanted me to. That is, i figured his position as project leader meant that he could have made the CoC different than it is, thus he was (perhaps indirectly) asking me to hold him to a higher standard. Why does this matter to me now? Shuttleworth has apparently signed the Ubuntu Code of Conduct, but as i wrote about earlier, his recent sexist comments at LinuxCon were a Bad Thing for the community, and his apparent lack of an apology or open discussion with the community concerned about it was even worse. So i'm asking Mark Shuttleworth to abide by the following points in the Code of Conduct that he has signed: I've signed a revised version of the Ubuntu Code of Conduct 1.01 (with the Shuttleworth-exceptionalism clause removed), to reaffirm my commitment to these principles, and to acknowledge that, yes, the SABDFL can make a mistake, and to encourage him to address his mistakes in a fashion befitting a mature participant in this community we both care about. UPDATE: It seems that Mako and Daniel Holbach have recently revised the CoC resulting in a new version (1.1) which has just been approved by the the Ubuntu Community Council. The new version 1.1 looks good to me (i like its broadening of scope beyond developers, and its lack of superhuman claims for Shuttleworth) and when it is available on Launchpad, i'll most likely sign it there. Thanks to the two of them for their work! I hope Shuttleworth will consider abiding by this new version.Tags: code of conduct, sexism, ubuntu

Maximilian Attems: Debian Kernel Meeting

Vincent Sanders took notes during all our meetings at the Portland Linux Plumbers Conference: Debian Kernel Group Meeting. The condensed form has been posted today as Bits from the kernel team. In the case of feedback I'd highly recommend to bring the Debian Kernel Mailinglist into the loop. The meeting decisions were done by the team as entity. Responding to the deprecation of some external patches (Vserver, Xen Dom0): None of above patches have an upstream that supported the Lenny released version. Both have troublesome bugs in Lenny and thus are not in a condition one would expect from a stable release. If you want to help and have continued release of those beyond squeeze the answer is easy: Get them merged upstream. Openvz supports Lenny linux-2.6 version actively and promised to keep up with their work for Squeeze. It has been a very productive meeting with lots of problems^Witems discussed. Interesting tracks for better cooperation between distributions, heavy technical tracks and loud BOFS. Quite some work has already been picked up since (Bug scripts, 2.6.31 experimental uploads, DEB_BUILD_OPTIONS=parallel=N support, package descriptions improvements, piuparts install fix, DFSG firmware clean, preempt, ..). So thanks a lot to Steve McIntyre (Debian Project Leader) for pushing the meeting, to Steve Langasek for setting it up on site and of course to everyone who contributed. Read aboves report for the full picture. :-)

Steve Kemp: Big change. Sometimes good. Sometimes bad.

Over the weekend I bit the bullet and purchased a new camera, a Canon EOS 1000d (many page revie). I've taken a few hundred shots with it so far, trying to get a feel for what it can do, and what I can do now that I couldn't before </Lady Teldra>. As my first DSLR its a pretty significant upgrade and I'm enjoying it a lot - especially since I've managed to persuade a few local people to pose for me. Now is the time to wonder how to store, share, and organise the pictures I've taken and will be taking in the future. Currently all my pictures are beneath ~/Images, replicated across a number of machines for redundancy. As a sample I have:
skx@gold:~$ ls /home/skx/Images/
Computer  Flat  Misc  Parties  People  Pets & Animals  Travel
Beneath these top-level directories I have more directories for specific items, such as ~/Images/Travel/2009/York, or ~/Images/People/kelly. I think that I should probably be looking at using some image-manager application to allow me to tag, date, and export images more easily though. Right now I'm not really sharing anything except a few sample shots: Those are quite nice shots, but I suspect sooner or later I will have pictures I do wish to share properly. So I need to come up with an URL scheme, or a library tool which will export specific shots and keep the rest of my archive private by default. Any suggestions are welcome .. ObFilm: The Dark Crystal

Bastian Venthur: Amarok going downhill

Amarok 2.2 is probably the only audio application on the market unable connect properly to the IPod. It is impossible to copy podcasts within Amarok to the IPod since Amarok 2.x. This functionality simply disappeared during the 1.x to 2.x version jump. You can download and listen to podcasts, you can connect your IPod, but you cannot drag the podcast to the IPod. A few weeks ago you could help yourself if you know where Amarok stores the podcasts (~/.kde/share/apps/amarok/podcasts): just navigate to this directory and drag the audio file to the IPod, but looks this rake was also disabled within the last versions, since Amarok now only segfaults if you dare to do this. Great.

Benjamin Mako Hill: Updating the Ubuntu Code of Conduct

The Ubuntu Code of Conduct is one of the most surprisingly successful projects I've ever had the privilege of working on. On my first day working for the company that would become Canonical, I talked with Mark Shuttleworth about some ideas for community governance. Partially in reaction to some harsh behavior in other free software projects we'd worked on, Mark and I agreed that some sort of explicit standard for behavior in Ubuntu would be a good thing. Over lunch of what was my literally first day working on Ubuntu, I wrote a draft of code of conduct that was essentially the version that Ubuntu has used until today. Shuttleworth made a series of modification to my draft but I don't think either of us took it too seriously. We figured it would be easy to update it later. Over time, that code has become a central piece of the Ubuntu community. Every new Ubuntu member cryptographically signs the code. When conversation in any Ubuntu forums, channels, or lists becomes disrespectful, users almost instinctively remind each other of the code. Through this process, the code has become a sort of constitution of our community and a widely enforced standard. People treat the code as a reflection of what "ubuntu" --- both the concept and our project --- stands for. Over time, the original code has spawned a Leadership Code of Conduct (which I also worked to draft), and has been modified and employed by scores of free software projects and by many projects that have nothing to do with free software at all. This is all wonderful, but a side effect has been that updating the code has become a more a difficult process that we originally imagined. Despite it success, the code remains a text written in an afternoon in Mark's flat. At times, this fact shows. For example, the code contains some off-hand humor that now seems a little akward and the text was a bit too developer centric at points. And there was a lot that, quite simply, we would have done better if we had realized that the code would be so important. So this summer, Daniel Holbach and I spent another afternoon in Berlin discussing and crafting a new version of the code along with a detailed rationale document that describes all the things we'd changed and why. We believe that what we've created is fully in the spirit of the original code. We've made efforts to minimize the delta in terms of text as possible. Daniel and I realize that changing the code out from under our community is a dangerous game, and we've make exceptional efforts to make sure that the new code doesn't say anything substantively different than the old code --- but that it does say it better. So I'm thrilled that, after being posted since early June and after incorporating a series of revisions with members of the Ubuntu Community Council, the new draft was approved at a council meeting earlier today. Of course, we are continuing to think about how we might improve the text going forward. One important goal we've thrown around, for example, is the creation of a code that is no longer Ubuntu specific and that can be employed by a wide range of different groups and different free and open source software projects.

Adrian von Bidder: Debian Mecacorp ACME, Inc.

I've just read Vincent Sanders' Bits from the kernel team. First, a big thank you to him: this kind of detailed information about what the team intends to do, down to a very technical level, is needed much more often on d-d-a. Debian is about producing a distribution, which in the end comes down on how to make independently produced pieces of software work together, so getting all the fiddly bits right is the most important aspect of Debian's work. (And it is also where I think Debian still does better than all other distributions I've ever used.) What immediately sparked this article is (could it be otherwise? ;-) the part I didn't like too much about these Bits: ... was discussed ... ... was resolved ... ... further investigation ... would occur. and right at the top ... a member of the release team ... Of course the team should work together as a whole. Of course it isn't really relevant who of the release team was present. Of course, this information is contained in the minutes. But on the whole, these Bits read a bit like a press release of a large corporation where the spokesman reads a communique prepared for him by a marketing team responsible. I miss the personal touch that should in my opinion run in parallel with our promise of openness: it's not only that we don't hide bugs, it's also that we're not hiding behind a corporate identity , but that we're not afraid to name names (No, this is not in a foundation document as such. It's my interpretation of openness.) A start is simple use of active vs. passive: Why not we discussed/decided ... instead of it was discussed/resolved ? (It's used in a few places, I note.) I appreciate that naming names with each action item is probably better left in the minutes, but at least naming the release team member (he's not just a functionary...) and perhaps at the end a short paragraph about who was there would have improved the announcement. Also: none of the items has an ETA obviously Debian is famous for not having any ETA's but we're trying to change this, aren't we? So why not give at least a rough estimate which tasks would take a week, a month, half a year... to complete? I'm sure you discussed it (have yet to read the minutes), if only to guesstimate what is realistic within the timeframe of the squeeze release cycle. Debian not only is no company, but it's also, and I hope I'm not the only person who thinks this is important, a Linux distribution where no corporate body has the power to force changes on the community. The single person is important, because it's the single person who in the end decides to implement a thing this or that way. It may be the outcome of a team discussion and a team's decision, but the work is done by individual people and not by employees impementing a corporate policy.

Gunnar Wolf: Among the reasons that brought me to Debian...

Every now and then, people ask me why Debian? Why, among so many projects to choose from, I first liked, then got into, and finally I got committed into Debian, and not anything else? Of course, one of the main points back in 2000-2001 when I started using it, and still to this very day is a strong identification with the ideological side. Yes, I am a strong Free Software believer, and Debian is what best suites my ideology. Still, I did not only get into Debian because of this And I was reminded about this by an article in this month's Usenix ;login: magazine: An anecdotal piece by Thomas A. Limoncelli titled Hey! I have to install and maintain this crap too, ya know! (article requires ;login: subscription, but I'll be glad to share it with whoever requests it to me I have of course no permission to openly put it here in whole online. Yes, I am expressly sending a copy of this text to the author, I will update this if/when I hear from him) [update] The author has kindly allowed me to redistribute his article's PDF Download it here. Before anything else I'll go on a short digression: I am writing a bit regarding the Free Software participants' culture, and this is a trait I love about it: The lack of formality. Even though ;login: (and Usenix as a whole) is not exactly Free Software, it runs quite close to it), it is a well regarded magazine (and association) with an academic format and good (not deep or highly theoretical, but good) contents. Still, it is quite usual to see titles as informal and inviting as this one. And it happens not only here I have been fearing having to explain at work, over and over, why I have requesting permissions to go to Yet Another Perl Conference, Festival de Software Libre or DebCamp, tagging them as academic settings. Or why I am wasting our library's resources on buying cookbooks, recipes and similar material on the most strange-sounding subjects. Anyway, back on track This article I found refers to the lack of value given to the system administrator's time when selling or purchasing (or more in general, as it happens also in Free Software, when offering or adopting) a product. Quoting Thomas:
A person purchasing a product is focused on the features and benefits and the salesperson is focused on closing the deal. If the topic of installation does come up, a user thinks, Who cares! My sysadmin will install it for me! as if such services are free. Ironically, it is the same non-technical executive who dismisses installation and upkeep as if they are free who might complain that IT costs are too high and go on a quest to kill IT spending. But I digress. I can understand why a product might be difficult to install. It is hard enough to write software, and with the shortage of software developers it seems perfectly reasonable that the installation script becomes an afterthought, possibly given to a low-ranking developer. The person purchasing the product usually requires certain features, and ease of installation is not a consideration during the procurement process. However, my ability to install a product affects my willingness to purchase more of the product.
Thomas goes on to explain his experience with Silicon Graphics, how Irix was so great regarding install automation and how they blew it when switching to Windows NT; talks very briefly about IBM AIX's smit, a very nifty sysadmin aid which is basically a point-and-click interface to system administration with the very nice extra that allows you to view the commands smit executes to perform a given action (and then you can copy into a script and send over to your hundreds of AIX machines) Incidentally, by the time I started digging out of what became the RedHat mess of the late 1990s and passed briefly through OpenBSD on my way to Debian enlightenment, I was temporarily the sysadmin for an AIX machine And I too loved this Smit approach, having it as the ultimate pedagogical tool you could ever find. Anyway, I won't comment and paraphrase the full article. I'll just point out to the fact that this was what ultimately sold me into Debian. The fact that I could just install anything and (by far) most of the times it will be configured and ready to use. Debian made my life so much easier! As a sysadmin, I didn't have to download, browse documentation, scratch head, redo from start until I got a package working Just apt-get into it, and I'd be set. Of course, one of the bits I learnt back then was that Debian was for lazy people Everything works in a certain way. Policy is enforced throughout. So as a sysadmin, I should better get well acquinted with the Debian policy and know it by heart. In order to be able to enjoy my laziness, I should read it and study it. And so I did, and fell in love. And that is where my journey into becoming a Debian Developer started. Why am I talking so nostalgic here? Because I got this magazine on the mail just last weekend And coincidentally, I also got bug report #551258 I packaged and uploaded the Haml Ruby library (Gem, as the Rubyists would call it). Haml is a great, succint markup language which makes HTML generation less of a mess. It is even fun and amazing to write Haml, and the result is always nicely formatted, valid HTML! And well, one of Haml's components is haml-elisp, the Emacs Lisp major mode to do proper syntax highlighting in Haml files. Of course, I am an Emacs guy (and have been for over 25 years), so I had to package it. But I don't do Emacs Lisp! So I just stuffed the file in its (supposed) place, copying some stuff over from other Emacs packages. During DebConf, I got the very valuable help of Axel Beckert to fix a simple bug which prevented my package from properly being installed, and thought I was basically done with it. I was happy just to add this to my ~/.emacs and get over with it:
  1. (require 'haml-mode)
  2. (add-to-list 'auto-mode-alist '("\\.haml$" . haml-mode))
  3. (require 'sass-mode)
  4. (add-to-list 'auto-mode-alist '("\\.sass$" . sass-mode))
However As Mike Castleman points out: This requires manual intervention. So it is not the Debian Way! Reading Mike's bug report, and reading Thomas' article, made me realize I was dilluting something I held so dearly as to commit myself to the best Free Software-based distribution out there. And the solution, of course, was very simple: Debian allows us to be very lazy, not only as sysadmins, but as Debian packagers. Just drop this (simplified version) as $pkgroot/debian/haml-elisp.emacsen.startup and you are set!
  1. (let ((package-dir (concat "/usr/share/"
  2. (symbol-name flavor)
  3. "/site-lisp/haml-elisp")))
  4. ;; If package-dir does not exist, the haml-mode package must have
  5. ;; removed but not purged, and we should skip the setup.
  6. (when (file-directory-p package-dir)
  7. ;; Use debian-pkg-add-load-path-item per 9 of debian emacs subpolicy
  8. (debian-pkg-add-load-path-item package-dir )
  9. (autoload 'haml-mode "haml-mode"
  10. "Major mode for editing haml-mode files." t)
  11. (add-to-list 'auto-mode-alist '("\\.haml\\'" . haml-mode))
  12. ;; The same package provides HAML and SASS modes in the same
  13. ;; directory - So repeat only the last two instructions for sass
  14. (autoload 'sass-mode "sass-mode"
  15. "Major mode for editing sass-mode files." t)
  16. (add-to-list 'auto-mode-alist '("\\.sass\\'" . sass-mode))
  17. ))
This will make the package just work as soon as it is installed, with no manual intervention required from the user. And it does not, contrary to what I feared, bloat up Emacs Adding it to the auto-mode-alist leaves it as known to Emacs, but is not loaded or compiled unless it is required. Deepest thanks to both of you! (and of course, thanks also to Manoj, for pointing out at the right spells in emacs-land)
AttachmentSize
Thomas A. Limoncelli: Hey! I have to install and maintain this crap too, ya know! (Usenix's ;login: October 2009144.5 KB

Andrew McMillan: Using incron to autocommit changes in a folder

A friend e-mailed me this morning asking for some help with a problem he had where he wanted to make a folder writable by a group of people without making the files deletable. Stepping back from his question, I first pointed out that if the files are editable then they can be effectively deleted by removing the content from them, regardless of whether the directory entries themselves are retained. One solution which occurred to me would be to automatically version the content of the directory, and this reminds me of why versioning of /etc has never worked for me: it only happens when I remember to commit.
<!--break-->
Normally when I edit files in /etc, I am focused on achieving something now, and not on being able to undo it later. To this end I have written myself a script which will commit the contents of a directory (including adding new files and removing deleted ones) into a git repository, as follows:
#!/bin/sh
#
# Allow for debugging.
[ -n "$DEBUG" ] && set -o xtrace
cd $1
MESSAGE="Autocommit"
# Initialise the directory if it's not in Git currently
if [ ! -d .git ]; then
  git init
  MESSAGE="Initial commit"
fi
# Any files that aren't in the directory, but are in the repository can be removed.
for F in  git ls-tree HEAD   cut -f2 ; do
  [ -e "$ F " -o -L "$ F " ]   git rm "$ F "
done
# Any files that are in the directory, but aren't in the repository can be added
git add .
# And commit...
git commit -m "$MESSAGE"
So this script takes one parameter: the name of the directory where changes have (presumably) occurred, and just blindly commits everything there. The magic glue, then, is the awesomeness that is 'incron' :-) My first target is the ~/bin directory of all of those useful little scripts that I tend to randomly edit without nearly enough version control:
incrontab -e
home/andrew/bin IN_MODIFY,IN_DELETE,IN_CLOSE_WRITE,IN_MOVE \
     /home/andrew/bin/commit-directory /home/andrew/bin 2>&1   logger -t andrew-bin
With this, it means that whenever a file changes, is deleted from, moved into, or out of the directory we are monitoring, our commit-directory script is run. Just for testing I delete some ancient files that should have been killed a few computers back. A quick 'git status' in the directory shows everything was committed nicely. I edit a file and make some quick changes. Once again, I go into gitk and can see all the history. I sit back and ratchet my laziness another notch with a nice cup of tea, happy that, for now, at least, changes to my scripts are under revision control at last. Outstanding Issues Well, ok: it's usable as is, but there are a few small things that could be improved: I'll keep monitoring in the real world if these are real annoyances, and whatever other annoyances I find, and maybe I'll tweak that commit script a bit more - add a delay and/or some locking too it. I don't think that adding some push would be too big a deal either, and I'd love to get suggestions from Git geeks as to how to do this more simply/reliably too.

Dirk Eddelbuettel: RPostgreSQL 0.1-6

A quick bug fix released of RPostgreSQL was uploaded to CRAN earlier today; it updates last week's 0.1-5 release. An editing error left one of the helper functions broken. I also updated a few of the test scripts to also allow for optional environment variable for the port at which the PostgreSQL server is listening. This is handy when you have parallel installations of different PostgreSQL versions which Debian makes really easy. As always, all the details (including the full ChangeLog) are at the local RPostgreSQL page, the RPostgreSQL package page at CRAN and of course the Google Code repository for RPostgreSQL.

Next.

Previous.