Why would someone write Python and mix tabs and spaces. Do you really want to have random arbitrary bugs … grr….
:%s/^I/ //g
Grr. grr. grr. stupid programmer. Grr.. That’s my final moan. honest.
Why would someone write Python and mix tabs and spaces. Do you really want to have random arbitrary bugs … grr….
:%s/^I/ //g
Grr. grr. grr. stupid programmer. Grr.. That’s my final moan. honest.
One thing that really annoys me is when I come to look at the log file and I see something like :
blah blah did blah blah blah foo blah random comment fish blah some data which spans many lines or does it?This is bad, as I’ve got absolutely no idea where the messages are from (so have to grep around a code base), and I’ve no idea WHEN they were made. At best I can look at timestamps on this file and figure out a timeframe (assuming logrotate is in use so there is a definite (must be after X timestamp)).
What’s far better from a maintenance point of view :
2010/07/29 09:33 filewhatever.py:355 blah blah blah did blah blah
2010/07/29 09:34 filewhatever.py:355 blah blah blah did blah blah
2010/07/29 09:35 filewhatever.py:355 data received from x is {{{hello world…. }}}
Changes are :
Other good ideas :
EOR - EndOfRant
One thing that really annoys me is when I come to look at the log file and I see something like :
blah blah did blah blah blah foo blah random comment fish blah some data which spans many lines or does it?This is bad, as I’ve got absolutely no idea where the messages are from (so have to grep around a code base), and I’ve no idea WHEN they were made. At best I can look at timestamps on this file and figure out a timeframe (assuming logrotate is in use so there is a definite (must be after X timestamp)).
What’s far better from a maintenance point of view :
2010/07/29 09:33 filewhatever.py:355 blah blah blah did blah blah
2010/07/29 09:34 filewhatever.py:355 blah blah blah did blah blah
2010/07/29 09:35 filewhatever.py:355 data received from x is {{{hello world…. }}}
Changes are :
Other good ideas :
EOR - EndOfRant
1) Accumulates
2) Geo-Duplicates
3) Manages
Are you good folks aware of what is happening on 27th – 29th August 2010. But of course, it is the Ubuntu Global Jam!
In the last few cycles we have organized and run an event called the Ubuntu Global Jam. The idea was simple: encourage our awesome global Ubuntu community to get together in the same room to work on bugs, translations, documentation, testing and more. And they did, all over the world, as can be seen here.
To make the event as simple and accessible as possible, we have picked five topic areas and we are encouraging you lovely people to organize an event with one or more of them:
With six primary methods of getting involved, there is something for everyone in this rocking global event.
One thing that I am keen that everyone remembers: you don’t have to be an official developer, packager or programmer to take part in the Ubuntu Global Jam. Also, lets not forget that Ubuntu Global Jam events are a fantastic place to learn and improve your skills: you can sit next to someone who can show you how to do something or explain something in more detail.
If this is all sounding right up your street and you fancy organizing an event, go and read this page and then add your event to the LoCo Directory by following these instructions.
Rock and roll: let’s make this one to remember. Start your engines, folks…
Are you good folks aware of what is happening on 27th – 29th August 2010. But of course, it is the Ubuntu Global Jam!
In the last few cycles we have organized and run an event called the Ubuntu Global Jam. The idea was simple: encourage our awesome global Ubuntu community to get together in the same room to work on bugs, translations, documentation, testing and more. And they did, all over the world, as can be seen here.
To make the event as simple and accessible as possible, we have picked five topic areas and we are encouraging you lovely people to organize an event with one or more of them:
With six primary methods of getting involved, there is something for everyone in this rocking global event.
One thing that I am keen that everyone remembers: you don’t have to be an official developer, packager or programmer to take part in the Ubuntu Global Jam. Also, lets not forget that Ubuntu Global Jam events are a fantastic place to learn and improve your skills: you can sit next to someone who can show you how to do something or explain something in more detail.
If this is all sounding right up your street and you fancy organizing an event, go and read this page and then add your event to the LoCo Directory by following these instructions.
Rock and roll: let’s make this one to remember. Start your engines, folks…
I have always been a fan of helping in any way I can to encourage people to support small organizations and businesses who are doing their best to be successful by working hard and providing a friendly, honest service.
For the earlier part of this week I am in The Hague at GUADEC, and I stumbled across a small espresso shop that is the embodiment of these kinds of small business. It is impeccably clean, the food is awesome, the coffee is fantastic, it is good value, and the guy who runs the shop is the definition of kind and welcoming. Oh, and it has great wi-fi too.
So, I wanted to share with all my friends who are visiting GUADEC too to come and support this guy’s small business, drink some coffee and leach his Internet.
The address is: 7 o’clock Espressobar, Wagenstraat 187 2512 AW Den Haag and if you are walking back to the hotel before you walk over the small bridge you will see it on the left with a big Coca-Cola sign above it.
More details on the website.
I have always been a fan of helping in any way I can to encourage people to support small organizations and businesses who are doing their best to be successful by working hard and providing a friendly, honest service.
For the earlier part of this week I am in The Hague at GUADEC, and I stumbled across a small espresso shop that is the embodiment of these kinds of small business. It is impeccably clean, the food is awesome, the coffee is fantastic, it is good value, and the guy who runs the shop is the definition of kind and welcoming. Oh, and it has great wi-fi too.
So, I wanted to share with all my friends who are visiting GUADEC too to come and support this guy’s small business, drink some coffee and leach his Internet.
The address is: 7 o’clock Espressobar, Wagenstraat 187 2512 AW Den Haag and if you are walking back to the hotel before you walk over the small bridge you will see it on the left with a big Coca-Cola sign above it.
More details on the website.
I love my Vibram Five Fingers. I rave about them every chance I get, and I love them for running.
What I don’t do, however, is wear them as a general purpose shoe. Until last week that is.
This last week I’ve been in Prague for work, and since my wife & kids are off work & school respectively we decided a road trip was in order - Cumbria to Prague (in two days), a week there, Prague to near Paris (one day), a day at Disneyland Paris (my wife’s birthday), and near Paris to Cumbria (one day).
Now, anyone can see that’s a lot of driving. :)
What’s more interesting - and the point of this blog post - is that with the exception of the first day’s travel and two days of work, I wore my VFFs exclusively, which included:
Two notes:
So, from now on I suspect I will be wearing them far, far more.
Tony Whitmore (@tonywhitmore) blogged about The Quest for Originality which got me thinking about the podcast that we make with @ciemon, @daviey and @lauracowen.
Over the weekend at OrgCon there was some discussion of originality. The subject was brought up when talking about the creative business, with original works being “worth” something, perhaps more than a digital facsimile of some work. So for example a concert is a one off live event is worth paying for, whereas an MP3 is “worth” less because in part it’s easily duplicated and thus lacks originality. (I’ve paraphrased and perhaps twisted the meaning of the discussion to suit this post, but I’m sure you know what I mean).
I guess there’s a couple of things that I think of in relation to being original. There’s originality with reference to the ‘competition’ and originality in terms of us not being stale over time. Both require some effort to achieve, and in my mind we should be doing both.
Competition in podcasting is hard to define. People have a finite amount of time in their lives to listen to podcasts, so we’re competing with other things people would rather be doing, like spending time with family, programming .. or whatever else our listeners do in their ‘spare’ time. People also listen during a commute, jog or some otherwise ‘dead’ air-time. So we have to be compelling or people will do ‘other things’ than listen.
People thus have a limited amount of time to listen to podcasts, and will thus only consume a limited number of shows. I doubt anyone listens to every FLOSS/Linux podcast, but I’m sure most people have tried them all to see which they prefer. So we need to appeal to people if we want people to listen to the show.
I do want people to listen to the show by the way. Whilst we do this for fun (and no financial profit), if nobody downloaded the show I think we’d probably stop doing it. The idea of being on stage to the sound of one hand clapping doesn’t appeal (to me at least). Others are happy to continue making a show no matter how many people listen.
There are of course other podcasts which do pretty much the same as us, Tuxradar and Full Circle Magazine are two good examples with a similar format, but with their own style. Then there’s the likes of Linux Action Show, Linux Outlaws and The Linux Link Tech Show who all have their own style and niche. Every podcast is clearly different, with presenters having their own expression, shows of varying duration, different personalities, quality and frequency. None (including ours) are perfect, all are serving a segment of the market successfully.
Within our own podcast we’ve evolved slightly over the 2.5 seasons we’ve been running, but for the most part the format has stuck. We have introduced new segment ideas, and refined various elements of the show, but in general we’ve stuck with a formula that works for us, and gets us some listeners.
Right now each episode gets downloaded about 5K times in the week after release with a long tail of 13 weeks to hit 10K downloads. After a year each episode hits around 18K and after two years each episode hits around 32K downloads. Clearly as with every podcast, we have no idea how many of those downloads translate into listens. We’re not so naive to think they all do, but we don’t know what the proportion of downloads to listens is, and I don’t think we ever will do. On that subject, for the record, I don’t think we need to do any kind of survey or tracking to try to figure that number out. I’m personally happy to know that some thousands of people download it and some of them listen to it.
When we started I think we had some original concepts compared to others within our space. We’re family friendly, (usually) well prepared, not North-American (not that being American is a problem, but many FLOSS/Linux podcasts come from there, so it’s nice to have one with a non-American ‘accent’ in my opinion), (mostly) above average audio quality, (generally) on time with a regular schedule and made by contributors to the Ubuntu project rather than bystanders. Whilst other podcasts had some of those elements, not many had all.
Since then we’ve perhaps stagnated, and whilst we have introduced new concepts and made changes at the ‘backend’ to streamline the way we produce the show, we haven’t had much in the way of revolutionary changes that the listeners would notice. The big question is I guess is ‘should we?’.
We could do as Linux Outlaws and TLLTS do and have a live part of the show. We tried this in the past but technical barriers (like Tony having a crap internet connection) stymed that. It’s also tricky in that we take tea breaks and eat cake between segments, rather than record it in one go. We could open the show up to have callers phone-in now we have a nice telephony setup. Maybe we should drop the ‘season’ system and just produce a show constantly with no breaks. We could change the duration, presenters, format, style or any other part of the content, but again, ‘should we?’.
There is the danger that we could break something that didn’t need fixing. Perhaps it is broken and we just don’t know that. Perhaps we’re in danger of burning out on a treadmill to churn out episodes that we don’t enjoy, if we don’t change. I don’t know. Do you?
Tony Whitmore (@tonywhitmore) blogged about The Quest for Originality which got me thinking about the podcast that we make with @ciemon, @daviey and @lauracowen.
Over the weekend at OrgCon there was some discussion of originality. The subject was brought up when talking about the creative business, with original works being “worth” something, perhaps more than a digital facsimile of some work. So for example a concert is a one off live event is worth paying for, whereas an MP3 is “worth” less because in part it’s easily duplicated and thus lacks originality. (I’ve paraphrased and perhaps twisted the meaning of the discussion to suit this post, but I’m sure you know what I mean).
I guess there’s a couple of things that I think of in relation to being original. There’s originality with reference to the ‘competition’ and originality in terms of us not being stale over time. Both require some effort to achieve, and in my mind we should be doing both.
Competition in podcasting is hard to define. People have a finite amount of time in their lives to listen to podcasts, so we’re competing with other things people would rather be doing, like spending time with family, programming .. or whatever else our listeners do in their ‘spare’ time. People also listen during a commute, jog or some otherwise ‘dead’ air-time. So we have to be compelling or people will do ‘other things’ than listen.
People thus have a limited amount of time to listen to podcasts, and will thus only consume a limited number of shows. I doubt anyone listens to every FLOSS/Linux podcast, but I’m sure most people have tried them all to see which they prefer. So we need to appeal to people if we want people to listen to the show.
I do want people to listen to the show by the way. Whilst we do this for fun (and no financial profit), if nobody downloaded the show I think we’d probably stop doing it. The idea of being on stage to the sound of one hand clapping doesn’t appeal (to me at least). Others are happy to continue making a show no matter how many people listen.
There are of course other podcasts which do pretty much the same as us, Tuxradar and Full Circle Magazine are two good examples with a similar format, but with their own style. Then there’s the likes of Linux Action Show, Linux Outlaws and The Linux Link Tech Show who all have their own style and niche. Every podcast is clearly different, with presenters having their own expression, shows of varying duration, different personalities, quality and frequency. None (including ours) are perfect, all are serving a segment of the market successfully.
Within our own podcast we’ve evolved slightly over the 2.5 seasons we’ve been running, but for the most part the format has stuck. We have introduced new segment ideas, and refined various elements of the show, but in general we’ve stuck with a formula that works for us, and gets us some listeners.
Right now each episode gets downloaded about 5K times in the week after release with a long tail of 13 weeks to hit 10K downloads. After a year each episode hits around 18K and after two years each episode hits around 32K downloads. Clearly as with every podcast, we have no idea how many of those downloads translate into listens. We’re not so naive to think they all do, but we don’t know what the proportion of downloads to listens is, and I don’t think we ever will do. On that subject, for the record, I don’t think we need to do any kind of survey or tracking to try to figure that number out. I’m personally happy to know that some thousands of people download it and some of them listen to it.
When we started I think we had some original concepts compared to others within our space. We’re family friendly, (usually) well prepared, not North-American (not that being American is a problem, but many FLOSS/Linux podcasts come from there, so it’s nice to have one with a non-American ‘accent’ in my opinion), (mostly) above average audio quality, (generally) on time with a regular schedule and made by contributors to the Ubuntu project rather than bystanders. Whilst other podcasts had some of those elements, not many had all.
Since then we’ve perhaps stagnated, and whilst we have introduced new concepts and made changes at the ‘backend’ to streamline the way we produce the show, we haven’t had much in the way of revolutionary changes that the listeners would notice. The big question is I guess is ‘should we?’.
We could do as Linux Outlaws and TLLTS do and have a live part of the show. We tried this in the past but technical barriers (like Tony having a crap internet connection) stymed that. It’s also tricky in that we take tea breaks and eat cake between segments, rather than record it in one go. We could open the show up to have callers phone-in now we have a nice telephony setup. Maybe we should drop the ‘season’ system and just produce a show constantly with no breaks. We could change the duration, presenters, format, style or any other part of the content, but again, ‘should we?’.
There is the danger that we could break something that didn’t need fixing. Perhaps it is broken and we just don’t know that. Perhaps we’re in danger of burning out on a treadmill to churn out episodes that we don’t enjoy, if we don’t change. I don’t know. Do you?
Sometimes I write things that are for myself, and later decide to release on the off-chance other people might be interested.
I've hated procmail for a long time, but it is extremely flexible, and for the longest time I figured since I'd got things working the way I wanted there was little point changing.
When it comes to procmail there are few alternatives:
Unfortunately both Exim and Email::Filter suffer from a lack of "pipe" support. To be more specific Exim filters and Email::Filter allow you to pipe an incoming message to an external program - but they regard that as the end of the delivery process.
So, for example, you cannot receive a message (on STDIN), pipe it through crm114, then process that updated message. (i.e. The output of crm114).
Maildrop does allow pipes, but suffers from other problems which makes me "not like it".
My own approach is to have a simple mail-sieve command which is configured thusly:
set maildir=/home/steve/Maildir set logfile=/home/.trash.d/mail-sieve.log # # Null-senders # Return-Path: /<>/ save .Automated.bounces/ # # Spam filter # filter /usr/bin/crm -u /home/steve/.crm /usr/share/crm114/mailreaver.crm # # Spam? # X-CRM114-Status: /SPAM/ save .CRM.Spam/ X-CRM114-Status: /Unsure/ save .CRM.Unsure/ # # People / Lists # From: /foo@example.com/ save .people.foo/ From: /bar@example.com/ save .people.bar/ .. .. # # Domains # To: /steve.org.uk$/ save .steve.org.uk/ To: /debian-administration.org$/ save .debian-administration.org.personal/ # # All done. # save .inbox.unfiled/On the one hand this is simple, readable, and complete enough for myself. On the other hand if I were going to make it releasable I think I'd probably want to add both conditionals and the ability to match upon multiple header values.
Getting there would probably involve something like this on the ~/.mail-filter side :
if ( ( From: /foo@example.com ) || ( From: /bar@example.com ) ) { save .people.example.com/ exit } # ps. remind me how much I hate parsers and lexers?That starts to look very much like Exim's filter language, at which point I think "why should I bother". Pragmatically the simplest solution would be to add a "Filter" primitive to Email::Filter - and pretend I understood the nasty "Exit" settings.
ObQuote: Andre, we don't use profanity or double negatives here at True Directions. - "But I'm a Cheerleader".
So I arranged to take my car in Saturday to have the bit-of-plastic-on-the-driver’s-door fitted. I turn up, chap at the desk expected me and was very helpful.
Him> Ahh yes, part’s right here, shouldn’t take a mo to fit, I’ll just get some tools.
Me> Super thanks.
<fx>fiddling with the door happens</fx>
Him> Just going to make a phonecall, this isn’t looking how I expected
Me> It doesn’t look like a door with a well understood piece of plastic missing, I didn’t say.
Me> Uhh, sure.
<fx>phone call happens</fx>
Him> Sorry, but it looks like I can’t fit this part.
Me> You can’t fit this part.
Him> No, I think the inside door panel needs to be removed.
Me> The inside door panel needs to be removed, you think.
Him> Yes, and I’m not qualified.
Me> You’re not qualified. Super. Thanks.
I still have a hole in my door.
Meanwhile, 75cm toward the rear of my car….
You may recall that Renault Romford mistakenly did work I didn’t ask them to do, then insisted I pay for said work or I couldn’t have my car back. I decided to take them up on their offer to simply undo the work and put back the faulty door mechanism and then give me a full refund.
Me> I’ve decided to take you up on your offer to simply undo the work and put back the faulty door mechanism and then give me a full refund.
Renault Romford> We can’t, we’ve thrown the old parts away.
Me> You’ve thrown the old parts away. Can I have a refund?
Renault Romford> I’ll need to call customer services for you….
I’ve had no call from Renault UK Customer services today, I left messages, Yvonne’s been a bit busy.
Still, nice to know I’m dealing with a reputable professional company, and not some east-end railway-arch crook.
So I arranged to take my car in Saturday to have the bit-of-plastic-on-the-driver’s-door fitted. I turn up, chap at the desk expected me and was very helpful.
Him> Ahh yes, part’s right here, shouldn’t take a mo to fit, I’ll just get some tools.
Me> Super thanks.
<fx>fiddling with the door happens</fx>
Him> Just going to make a phonecall, this isn’t looking how I expected
Me> It doesn’t look like a door with a well understood piece of plastic missing, I didn’t say.
Me> Uhh, sure.
<fx>phone call happens</fx>
Him> Sorry, but it looks like I can’t fit this part.
Me> You can’t fit this part.
Him> No, I think the inside door panel needs to be removed.
Me> The inside door panel needs to be removed, you think.
Him> Yes, and I’m not qualified.
Me> You’re not qualified. Super. Thanks.
I still have a hole in my door.
Meanwhile, 75cm toward the rear of my car….
You may recall that Renault Romford mistakenly did work I didn’t ask them to do, then insisted I pay for said work or I couldn’t have my car back. I decided to take them up on their offer to simply undo the work and put back the faulty door mechanism and then give me a full refund.
Me> I’ve decided to take you up on your offer to simply undo the work and put back the faulty door mechanism and then give me a full refund.
Renault Romford> We can’t, we’ve thrown the old parts away.
Me> You’ve thrown the old parts away. Can I have a refund?
Renault Romford> I’ll need to call customer services for you….
I’ve had no call from Renault UK Customer services today, I left messages, Yvonne’s been a bit busy.
Still, nice to know I’m dealing with a reputable professional company, and not some east-end railway-arch crook.