<?xml version='1.0' encoding='UTF-8'?><rss xmlns:atom='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0' version='2.0'><channel><atom:id>tag:blogger.com,1999:blog-3617485390135312686</atom:id><lastBuildDate>Sat, 02 Jun 2012 00:30:23 +0000</lastBuildDate><category>crytography</category><category>amusement</category><category>buy</category><category>hashes</category><category>digital camera</category><category>vampire</category><category>keypass</category><category>RT</category><category>Chart::Clicker</category><category>CGI::Application</category><category>software development</category><category>encryption</category><category>xulrunner</category><category>File sharing</category><category>missing monthly graph</category><category>email</category><category>shop</category><category>vim</category><category>dropbox type thing but more secure</category><category>cafepress</category><category>render useless</category><category>cryto</category><category>laptop</category><category>backup</category><category>corporate rant</category><category>bittorrent</category><category>benson and hedges</category><category>logic</category><category>cryptographic</category><category>httpd</category><category>maths</category><category>imdisk</category><category>vi hart</category><category>apt</category><category>mount iso</category><category>bash</category><category>SpiderOak</category><category>net::server</category><category>dotProject</category><category>Notice</category><category>blackhole number</category><category>interview</category><category>dropbox</category><category>fix</category><category>sandwitch</category><category>fun</category><category>ubuntu</category><category>mbsync</category><category>Valerie Aurora</category><category>tracksion</category><category>munin</category><category>paswds</category><category>monkey-project</category><category>sandbritches</category><category>crossword</category><category>English</category><category>comics</category><category>perl</category><category>passwords</category><category>no seeds</category><category>github</category><category>graph</category><category>Catalyst</category><category>grammar</category><category>tshirt</category><category>2012</category><category>rrdtool</category><category>merchandise</category><category>match-making</category><category>bc</category><category>age</category><category>SSL</category><category>code</category><category>numberphile</category><category>Half your age plus seven</category><category>hero</category><category>update</category><category>linux</category><category>sarcasm</category><category>idea</category><category>computer artisan</category><category>contact lenses</category><category>guide</category><category>howto</category><category>Oranjeboom</category><category>transmission</category><category>time</category><category>advert</category><category>Yodelice</category><category>The year without winter</category><category>wisdom</category><category>food</category><category>project managment</category><category>fujifilm z35</category><category>gardening</category><category>spider oak</category><category>search</category><category>match-making graph</category><category>matchmaking</category><category>TLS</category><category>gmail</category><category>money</category><title>Can you hear me now?</title><description>The miscellaneous iridescent creative comments on the thoughts and experiences of this author</description><link>http://www.alexx.net/</link><managingEditor>noreply@blogger.com (alexx)</managingEditor><generator>Blogger</generator><openSearch:totalResults>29</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-3617485390135312686.post-2234896084784461240</guid><pubDate>Tue, 29 May 2012 16:21:00 +0000</pubDate><atom:updated>2012-05-29T17:21:55.371+01:00</atom:updated><category domain='http://www.blogger.com/atom/ns#'>apt</category><category domain='http://www.blogger.com/atom/ns#'>xulrunner</category><category domain='http://www.blogger.com/atom/ns#'>ubuntu</category><category domain='http://www.blogger.com/atom/ns#'>fix</category><title>Pesky xulrunner</title><description>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;Thanks to&amp;nbsp;&lt;a href="http://ubuntuforums.org/showthread.php?p=11979482#post11979482"&gt;this&lt;/a&gt;&amp;nbsp;forum entry I found a solution to xulrunner-1.9.2 complaining that,&lt;br /&gt;&lt;blockquote class="tr_bq"&gt;/usr/lib/xulrunner-1.9.2.28/xulrunner-bin: /usr/lib/i486-linux-gnu/cmov/libssl3.so: version `NSS_3.12.6' not found (required by /usr/lib/xulrunner-1.9.2.28/libxul.so)&lt;/blockquote&gt;&lt;br /&gt;&lt;pre class="alt2" dir="ltr" style="border: 1px inset; height: 34px; margin: 0px; overflow: auto; padding: 6px; text-align: left; width: 640px;"&gt;sudo apt-get remove --purge  xulrunner-1.9.2&lt;/pre&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3617485390135312686-2234896084784461240?l=www.alexx.net' alt='' /&gt;&lt;/div&gt;</description><link>http://www.alexx.net/2012/05/pesky-xulrunner.html</link><author>noreply@blogger.com (alexx)</author><thr:total>0</thr:total></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-3617485390135312686.post-4239497402997396274</guid><pubDate>Fri, 25 May 2012 10:41:00 +0000</pubDate><atom:updated>2012-05-25T11:42:51.619+01:00</atom:updated><category domain='http://www.blogger.com/atom/ns#'>idea</category><category domain='http://www.blogger.com/atom/ns#'>sandbritches</category><category domain='http://www.blogger.com/atom/ns#'>sandwitch</category><category domain='http://www.blogger.com/atom/ns#'>food</category><title>Baby Food why buy it?</title><description>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;So&amp;nbsp;&lt;a href="http://www.who.int/nutrition/topics/exclusive_breastfeeding/en/"&gt;that happened&lt;/a&gt; to turn up in conversation. I wanted to try some human cheese, but it turns out that just as some people are taller than others, some women produce milk for longer after giving birth than others. As one of the many helpful aspects of society, it is possible for one woman to donate milk to another, (in some countries.) It turns out that this is hardly new, with wet-nursing having happened for a while, and even in my family in the last generation. So if any humans had spare milk that could be turned into cheese, then they really ought to be donating it, as I do with blood, (my own, I don't just give away anyone's.)&lt;br /&gt;&lt;br /&gt;So the meme seems to be "breast feed as long as you can, and if you have to stop then no one is judging you." Personally I am in favour of breast feeding, but I guess I can step aside and give the little ones a fair chance. Actually I would rather see a baby being breast fed in public than have to watch almost any adult eat. Babies have no compulsion about food going in or coming out; Adults seem to have given up the Roman communal crappers, "hey can you pass me the moss_stick? I'm in the middle of blogging." so why don't they eat in little windowless rooms?&lt;br /&gt;&lt;br /&gt;Jokes and rant over. I've been making baby food. Is is organic? Don't get me started, (that rant lives in another blog.) I am not a nutritionist or an expert so this is "try at your own risk/ask a Medical Doctor" situation.&lt;br /&gt;&lt;br /&gt;It is so simple, (once you try the "progressive" (it is not) GFCD-50 food prep machine, break it, throw it out and buy a small electric food processor.) I ended up using a &lt;span class="hps"&gt;"Universal&lt;/span&gt; &lt;span class="hps"&gt;Electric&lt;/span&gt; &lt;span class="hps"&gt;Chopper&lt;/span&gt;" from Bifinett, (but I would suggest buying the cheapest professional food processor that you can get.) I think that Bifinett designed the little red device to chop basil into pesto, but I have put the two blades through beef, salmon, potatoes, pasta, and various green vegetables. I thought that it was designed to just chop, and it does that very well, but if you want purée, (baby food paste/mash) then it just takes a few more seconds, (no really 20-30 seconds and you are done!)&lt;br /&gt;&lt;br /&gt;So what is my secret ingredients?&lt;br /&gt;&lt;br /&gt;&lt;span class="short_text" id="result_box" lang="en"&gt;&lt;span class="hps"&gt;&lt;/span&gt;&lt;/span&gt; &lt;br /&gt;50 g of what ever meat that I am eating, &lt;br /&gt;50 g any green vegetable or well cooked orange vegetable,&lt;br /&gt;50 g of potato or pasta,&lt;br /&gt;If you have it then 1 table spoon of (powdered) milk can help&lt;br /&gt;0-50g H²O yup, just tap water.&lt;br /&gt;&lt;br /&gt;I was worried that my little machine wasn't up to the job because things on the inside seemed to be moving too slowly. After unplugging and poking with a tiny rubber spatula I found that nothing could hide.&lt;br /&gt;[ That was when I realised that the two blades turn the mixture into a dynamic flattened spiralling torus, but that has nothing to do with my point.]&amp;nbsp; &lt;br /&gt;&lt;br /&gt;Why green vegetables? It is all going to be turned into mush so why not add some bell peppers? Because I find that the skin is a little tough on the digestion, (as seen later, like grape skins.)&lt;br /&gt;&amp;nbsp;Courgettes are a perfect example. Peal them, boil them, and drop them into the mix. The 50:50:50 ratio seems to work out well and if it turns out a little thick then just chuck in a little water and zap it again, (you might like to boil the water first unless you are going to cook the mush later and are lazy.) &lt;br /&gt;&lt;br /&gt;I would like to take a break to thank our sponsors and recommend that you look at the &lt;a href="http://www.nisbets.co.uk/3/Catering-Appliances-Food-Prep-Machines-Food-Processors-%26-Veg-Prep/c02c03c05.r10.1"&gt;Nisbets website&lt;/a&gt;, (like the toyshop for chefs). [...and if Nisbets get enough referrals maybe my sponsors joke could become reality - you guys are great.] I have been buying from them for years and have yet to have a problem with a single product. (See my "Best kitchen grater ever!" post for more info.)&lt;br /&gt;&lt;br /&gt;So where was I? Oh yes, "Where do I find the time?" Simple - just find one evening a month when there isn't anything on TV and play at cooking! (This plan was so good that I got rid of the TV and do awesome every night; I am happily uniformed rather than misinformed.) Try mixing and matching what ever you have in the freezer/garden. Here are a few of my recommendations:&lt;br /&gt;&lt;br /&gt;Fried beefburger patty : boiled, (and then skinned) potato : peeled and boiled courgette&lt;br /&gt;Smoked salmon off cuts from the bargain section of the shop : more potato : frozen spinach&lt;br /&gt;Cooked ham : left over pasta that no one finished : broccoli purée from the freezer&lt;br /&gt;&lt;br /&gt;I even managed an English breakfast version with bacon, potato, mushrooms and plum-tomatoes.&lt;br /&gt;&lt;br /&gt;I like to take the frozen things out a few hours before so that I don't have to waste time or energy defrosting - this is the thing that I'm worst at remembering, but when I do I feel illogically happy that I'm postponing the heat death of the Universe, (rather than just saving on the oil/gas/electricity bill.)&lt;br /&gt;&lt;br /&gt;This might sound a big commitment, but with the miracle of small plastic bags, (or any small food box type thing that you have); a scales; and a freezer once a month is all you need, (though it is so much fun you might just do it each morning, if you have the time.)&lt;br /&gt;&lt;br /&gt;If you want to get serious then you can collect jars that have screw on lids with that button in the middle that you can only press once they have been opened. put the jars and lids into boiling water and then dry the jars in a medium oven, (don't drop the hot jars; The only thing worse then picking up broken glass is picking up hot broken glass.) Fill, (and I really do mean fill) the cooling jars with you latest creation while it is still hot, (I don't mean trendy, above 90 degrees Celsius type hot); add the lid by hand and then turn them upside down. If you have done it right, as they cool the button will be sucked in and then you can just store them in a dark cupboard or room. Try to use them so that you aren't using anything that is more than a year old, (but I had one from my 2005 vintage - seven years old - two days ago, and it was fine.)&lt;br /&gt;&lt;br /&gt;What if your audience has a broader pallet or needs food to match their silly name or the media expectations of their ludicrous parents. Just add one pitted olive. Or two slices of gherkin. A few grams of freshly fried onions. A teaspoon of Bisto gravy granules. A gram of honey and three drops of lemon juice on the salmon.&lt;br /&gt;&amp;nbsp;Don't go crazy - less is definitely more in this case, but search for flavours that you might not expect and add them in quantities so that your audience just can't quite tell what you have added.&lt;br /&gt;&lt;br /&gt;If you happen to be a food processor designer, (processor professor?) then can I suggest that you always leave all of the metal in the blade spindle and none of it in the bowl - that way I can just chuck the bowl, (with or without its lit) straight into the microwave. Those of you that think that "microwaves are going to kill mankind by subtly altering our chi or energy body through the food that we eat until we are all sterile or something" can just put the mush into a pan or really show off by using a &lt;a href="https://en.wikipedia.org/wiki/Bain-marie"&gt;bain-marie&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;So why the baby food? Have I recently been struck with the most human of afflictions? Nope - just needed something easy to eat when I had my wisdom teeth out and I've been making it every since for fun.&lt;br /&gt;&amp;nbsp;Over the years I have found lots of uses for it, (spread for toast or sandwich filler; people with delicate stomachs; "instant" soup; baby food; [your idea here].)&lt;br /&gt;&lt;br /&gt;If you find a magic recipe that we all need to try then please report it in the comments below.&lt;br /&gt;&lt;br /&gt;With just a little planning all your food can be fast and cheap and last. &lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3617485390135312686-4239497402997396274?l=www.alexx.net' alt='' /&gt;&lt;/div&gt;</description><link>http://www.alexx.net/2012/05/baby-food-why-buy-it.html</link><author>noreply@blogger.com (alexx)</author><thr:total>0</thr:total></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-3617485390135312686.post-5597882713468456059</guid><pubDate>Sat, 19 May 2012 11:56:00 +0000</pubDate><atom:updated>2012-05-25T12:45:28.875+01:00</atom:updated><category domain='http://www.blogger.com/atom/ns#'>SSL</category><category domain='http://www.blogger.com/atom/ns#'>TLS</category><category domain='http://www.blogger.com/atom/ns#'>hero</category><title>Use http://convergence.io/</title><description>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;I feel that I should port &lt;a href="http://convergence.io/"&gt;this Firefox add-on&lt;/a&gt; to Google Chrome, but I don't have time right now, (and secretly hope that someone else will do that... right... about...)&lt;br /&gt;&lt;br /&gt;So, use http://convergence.io/&lt;br /&gt;&lt;br /&gt;Hugs and kisses,&lt;br /&gt;&lt;br /&gt;Just another Moxie-fan-boy&lt;br /&gt;&lt;br /&gt;p.s. If you are an ISP then you should run a convergence server just as you would run a DNS server. &lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3617485390135312686-5597882713468456059?l=www.alexx.net' alt='' /&gt;&lt;/div&gt;</description><link>http://www.alexx.net/2012/05/use-httpconvergenceio.html</link><author>noreply@blogger.com (alexx)</author><thr:total>0</thr:total></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-3617485390135312686.post-5785921402318314461</guid><pubDate>Sat, 19 May 2012 11:53:00 +0000</pubDate><atom:updated>2012-05-19T12:53:04.094+01:00</atom:updated><category domain='http://www.blogger.com/atom/ns#'>imdisk</category><category domain='http://www.blogger.com/atom/ns#'>mount iso</category><category domain='http://www.blogger.com/atom/ns#'>corporate rant</category><title>Mount .iso image on XP or Vista</title><description>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;So you end up with an iso image on a USB falsh drive. You don't have any blank CDs, (remember those?) and you have a program that throws a tantrum if it can't see its parent disk, (even if all the data is now on your hard-disk.)&lt;br /&gt;&lt;br /&gt;There are probably a few solutions, but for me &lt;a href="http://www.ltr-data.se/opencode.html/#ImDisk"&gt;ImDisk&lt;/a&gt; wins.&lt;br /&gt;&lt;br /&gt;&lt;ol style="text-align: left;"&gt;&lt;li&gt;Given away by the very cool Olof Lagerkvist, (I have not had the pleasure of thanking him in person... yet.)&lt;/li&gt;&lt;li&gt;No corporate cruft, (no pop-ups, no "look at how cool I am" in fact that threw me for a few seconds when nothing turned up in the Programs Folder or the start menu: Just install and then right-click on your iso image to mount it.&lt;/li&gt;&lt;li&gt;&amp;nbsp;Did I mention how attractive all the Swedish people, (that I've met) are?&lt;/li&gt;&lt;/ol&gt;&lt;br /&gt;It just feels like this guy knows what he is doing; does it well and does not look for the credit. What a balanced human, (compared to some needy software, yes Adobe, HP, ${all anti-virus other than ClanWin} I &lt;b&gt;am&lt;/b&gt; looking at you.. but I don't want to and that is my point here - you should be there for me, not the other way round!) &lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3617485390135312686-5785921402318314461?l=www.alexx.net' alt='' /&gt;&lt;/div&gt;</description><link>http://www.alexx.net/2012/05/mount-iso-image-on-xp-or-vista.html</link><author>noreply@blogger.com (alexx)</author><thr:total>0</thr:total></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-3617485390135312686.post-8460057815890956376</guid><pubDate>Wed, 16 May 2012 13:20:00 +0000</pubDate><atom:updated>2012-05-22T12:15:39.439+01:00</atom:updated><category domain='http://www.blogger.com/atom/ns#'>tracksion</category><title>Lockin vs locked in</title><description>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;I remember the first time, well before I was old enough to be invited, that someone explained the concept of a lock-in. This is where the locking of a door converts a licensed public drinking establishment into a private venue. &lt;br /&gt;&amp;nbsp; This seemed like a moment of heaven, to my imagination. Then I thought about being locked-in to software; Either because it has market share or because it has "tracksion", (where tracksion is that magical awareness that everyone has that "that one is better" - an example would be firefox. See, firefox has tracksion, but not being a vehicle is does not have traction.) &lt;br /&gt;&amp;nbsp; I've started to feel a little locked-in with Ubuntu. I though that I would give up... until I tried 12.04. I admit that it took me a day to get used to, and this post is a list of the things that I found that could have helped me get through that faster.&lt;br /&gt;&lt;br /&gt;&lt;ol style="text-align: left;"&gt;&lt;li&gt;Do not fear the changes: Unity integrates things. This means that while using firefox, (obviously) the &amp;lt;title&amp;gt; of the page is loaded into the top bar. This threw me more than I expected. The thing that I really missed was being able to right click on the bar and add things, (I like to have my system-load-indicator.) So I opened, "Ubuntu Software Centre", (which, along with Google Play seems far too frivilous and scary at the same time - I sort-of trusted yum and apt-get but my paranoid "something sinister" alarm goes off when something looks too inviting. I'm sure someone has taken the GP logo and changed it to "Google Pay".) That said, System Load Indicator was easy to install and complies with my own desire for as many things as possible to be optional.&lt;/li&gt;&lt;li&gt;The few things that have been dropped from 12.04 CAN still be installed - for example: https://launchpad.net/ubuntu/precise/+package/aircrack-ng might be helpful. If you can only find an .rpm then grab that and run &lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;/ol&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&amp;nbsp; &lt;span style="font-size: x-small;"&gt;sudo alien blah.rpm&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;to get the .deb that you need.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://ubuntuforums.org/showpost.php?p=11777886&amp;amp;postcount=1"&gt;bonzini&lt;/a&gt;&amp;nbsp; gave a very good walk-thu of how to resize the launcher icons, and along with ubuntu-tweak I was able to set up the OS how I wanted it, and&lt;br /&gt;&lt;br /&gt;&lt;div style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&lt;span style="font-size: xx-small;"&gt;&amp;nbsp;gsettings set com.canonical.indicator.session suppress-logout-restart-shutdown true&lt;/span&gt;&lt;/div&gt;&lt;br /&gt;Will disable the shutdown, restart or logout confirmation prompt.&lt;br /&gt;&lt;br /&gt;I find the windows in Unity a real pain to resize, (the mouse pointer never seems to find the magic location in the corner), thankfully, while searching the blogs I found, (sorry, can't remember where) that:&lt;br /&gt;&lt;br /&gt;"Alt + middle-click will resize windows"&lt;br /&gt;which goes nicely with what I already new that,&lt;br /&gt;"Alt + left-click will grab any window and let you move it." Which I use automatically now. This just goes to reinforce me belief that learning one short-cut a day will drastically improve your computing experience.&lt;br /&gt;&lt;br /&gt;I had a bit of a problem getting wireless to work, but&lt;br /&gt;&lt;br /&gt;&lt;div style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&amp;nbsp; &lt;span style="font-size: x-small;"&gt;aptitude install miredo wpasupplicant&lt;/span&gt; &lt;/div&gt;&lt;br /&gt;seems to have fixed that for now. Once firefox sync had installed http://convergence.io/ for me and I got my backups &lt;a href="https://github.com/alexxroche/AIF"&gt;down from&lt;/a&gt; the cloud everything was ready to get back to work... which is where I should be now.&lt;br /&gt;&lt;br /&gt;[Update]&lt;br /&gt;I noticed that tab completion of&lt;br /&gt;&lt;br /&gt;&lt;div style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&lt;span style="font-size: x-small;"&gt;ls ~alexx&lt;/span&gt;&lt;/div&gt;&lt;div style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&lt;br /&gt;&lt;/div&gt;produced&lt;br /&gt;&lt;br /&gt;"&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace; font-size: x-small;"&gt;ls /home/alexx&lt;/span&gt; " (notice the trailing space.)&lt;br /&gt;&lt;br /&gt;I was pleasantly surprised at how easy it was to &lt;a href="http://ubuntuforums.org/showthread.php?p=11941246"&gt;find&lt;/a&gt; &lt;a href="http://askubuntu.com/questions/41707/bash-auto-completion-with-added-spaces-why-and-how-to-fix"&gt;the solution&lt;/a&gt; via blog/forums. &lt;br /&gt;&lt;br /&gt;&lt;span class="comment-copy"&gt;"editing &lt;code&gt;/etc/bash_completion&lt;/code&gt; line 1587, change &lt;code&gt;default&lt;/code&gt; to &lt;code&gt;filenames&lt;/code&gt;&lt;/span&gt; " &lt;br /&gt;&lt;br /&gt;[Update]&lt;br /&gt;I'm still having wireless network stability issues, (packet throughput drops to zero, even for icmp to the first hop, i.e. my base-station/router), even though:&lt;br /&gt;&lt;br /&gt;&lt;div style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&lt;span style="font-size: x-small;"&gt;watch "iwconfig wlan0; ifconfig wlan0"&lt;/span&gt;&lt;/div&gt;&lt;br /&gt;still shows a connection: &lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace; font-size: xx-small;"&gt;wlan0&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; IEEE 802.11bgn&amp;nbsp; ESSID:"home"&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Mode:Managed&amp;nbsp; Frequency:2.432 GHz&amp;nbsp; Access Point: &lt;/span&gt;&lt;span style="font-size: xx-small;"&gt;&lt;tt&gt;00:1D:BA:06:37:64&lt;/tt&gt;&lt;/span&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace; font-size: xx-small;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace; font-size: xx-small;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Bit Rate=54 Mb/s&amp;nbsp;&amp;nbsp; Tx-Power=20 dBm&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Retry&amp;nbsp; long limit:7&amp;nbsp;&amp;nbsp; RTS thr=2347 B&amp;nbsp;&amp;nbsp; Fragment thr:off&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Encryption key:off&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Power Management:off&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Link Quality=65/70&amp;nbsp; Signal level=-45 dBm&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Rx invalid nwid:0&amp;nbsp; Rx invalid crypt:0&amp;nbsp; Rx invalid frag:0&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Tx excessive retries:0&amp;nbsp; Invalid misc:32111&amp;nbsp;&amp;nbsp; Missed beacon:0&lt;br /&gt;&lt;br /&gt;wlan0&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Link encap:Ethernet&amp;nbsp; HWaddr 00:be:ef:be:ef:01&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; inet addr:10.10.10.2&amp;nbsp; Bcast:10.10.10.255&amp;nbsp; Mask:255.255.0.0&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; inet6 addr: 2001:DB8::1/32 Scope:Link&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; UP BROADCAST RUNNING MULTICAST&amp;nbsp; MTU:1500&amp;nbsp; Metric:1&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; RX packets:1519072 errors:0 dropped:0 overruns:0 frame:0&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; TX packets:1566529 errors:0 dropped:0 overruns:0 carrier:0&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; collisions:0 txqueuelen:1000&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; RX bytes:1520004007 (1.5 GB)&amp;nbsp; TX bytes:299019413 (299.0 MB)&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;I'm trying:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace; font-size: xx-small;"&gt;sudo echo "net.core.rmem_max=4194304\nnet.core.wmem_max=1048576" &amp;gt;&amp;gt; /etc/sysctl.conf&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;in the hope that this might help.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3617485390135312686-8460057815890956376?l=www.alexx.net' alt='' /&gt;&lt;/div&gt;</description><link>http://www.alexx.net/2012/05/lockin-vs-locked-in.html</link><author>noreply@blogger.com (alexx)</author><thr:total>0</thr:total></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-3617485390135312686.post-5145281948391877511</guid><pubDate>Sat, 12 May 2012 08:53:00 +0000</pubDate><atom:updated>2012-05-12T09:53:19.802+01:00</atom:updated><category domain='http://www.blogger.com/atom/ns#'>software development</category><category domain='http://www.blogger.com/atom/ns#'>bittorrent</category><category domain='http://www.blogger.com/atom/ns#'>transmission</category><title>Upgrade now!</title><description>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;h3 style="text-align: center;"&gt;There is an old Unix saying: Do one thing and do it well. &lt;/h3&gt;I was at a friends house when they asked me, "Its asking me if I want to upgrade?" So I looked at the alert. It was a bittorrent client and it said something like:&lt;br /&gt;&lt;br /&gt;&lt;div style="text-align: justify;"&gt;New version 3.1.3, (you have 3.1.2):&lt;/div&gt;&lt;ul style="text-align: justify;"&gt;&lt;li&gt;Built-in HD media player&lt;/li&gt;&lt;li&gt;Stability improvements&lt;/li&gt;&lt;li&gt;Anti-virus&amp;nbsp;&lt;/li&gt;&lt;/ul&gt;I expect that most people would think that this sounds like three good reasons to upgrade. I can see that it is two reasons NOT to "upgrade" and stability that is improved, (bug fixes) will probably pale in comparison to this client trying to muscle into two alien arenas.&lt;br /&gt;&lt;br /&gt;Yes I can see why they are doing it. Yes I can even see the connections but they should NOT. If they have to justify their existence with "More! because MORE" then they should write optional Modules.&lt;br /&gt;&lt;br /&gt;I do not care how good the HD media player is - VLC and mplayer have spent decades of man-hours creating really good products, (and they are free). ClamWin is a perfectly acceptable anti-virus. In both of these arenas there are lots of opensource groups that would be willing to let their program accept API calls from another program, (or already do.)&lt;br /&gt;&lt;br /&gt;If you want to improve your product then fix the bugs. If you want to use your market position to offer other functions or services, then create &lt;u&gt;optional&lt;/u&gt; modules. I still do not know why, the moment that a piece of software starts to be developed in a corporate way it becomes bloated with features that I DO NOT want.&lt;br /&gt;&lt;br /&gt;So thanks to this there is another &lt;a href="http://www.transmissionbt.com/"&gt;Transmission&lt;/a&gt; users.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3617485390135312686-5145281948391877511?l=www.alexx.net' alt='' /&gt;&lt;/div&gt;</description><link>http://www.alexx.net/2012/05/upgrade-now.html</link><author>noreply@blogger.com (alexx)</author><thr:total>0</thr:total></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-3617485390135312686.post-5398396794074759936</guid><pubDate>Wed, 09 May 2012 12:50:00 +0000</pubDate><atom:updated>2012-05-09T13:50:42.431+01:00</atom:updated><category domain='http://www.blogger.com/atom/ns#'>2012</category><category domain='http://www.blogger.com/atom/ns#'>encryption</category><category domain='http://www.blogger.com/atom/ns#'>File sharing</category><title>Where do we go from here?</title><description>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;Additional legislation will only force the creation of dark-nets, (private encrypted virtual networks). The reason that all the legislation is futile is that, right now the cryptographers are winning in the fight against the cryptanalysts.&lt;br /&gt;&amp;nbsp;The UK blocks thepiratebay and within hours there are proxy portals all over the Internet. Even if all of those were blocked then it would be possible to tunnel, (openVPN, openSSH, freeSwan) using free software, and even if those are hard for the average user to apply, by passing laws that criminalise the average citizen/netizen it only encourages the more talented programmers to facilitate the use of these existing protocols.&lt;br /&gt;&amp;nbsp; Old media, just like the old post colonial societies are caught up in a revolution that is beyond their control, and thought we can not predict exactly how the future is going to be, I know that I want it to be a friendlier place to live with fewer laws and more sharing.&lt;br /&gt;&lt;br /&gt;p.s. The next big thing will be centralised encrypted personal medical records. Locked using ssh keys and accessible through to a quorum of relatives using their own keys and Shamir's Secret Sharing.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3617485390135312686-5398396794074759936?l=www.alexx.net' alt='' /&gt;&lt;/div&gt;</description><link>http://www.alexx.net/2012/05/where-do-we-go-from-here.html</link><author>noreply@blogger.com (alexx)</author><thr:total>0</thr:total></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-3617485390135312686.post-7460683818715832194</guid><pubDate>Sat, 10 Mar 2012 15:41:00 +0000</pubDate><atom:updated>2012-03-10T19:10:55.681Z</atom:updated><category domain='http://www.blogger.com/atom/ns#'>render useless</category><category domain='http://www.blogger.com/atom/ns#'>update</category><category domain='http://www.blogger.com/atom/ns#'>ubuntu</category><title>Ubuntu update killed my laptop</title><description>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;[SOLVED] open a terminal and paste in the following lines, (works if you still have the 2.6.31-14 kernel)&lt;br /&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;sudo su -&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;kern_img=$(grep 2.6.31-14 /boot/grub/grub.cfg |grep menuentry|grep -v recovery|sed -e "s/' .*/'/" -e 's/menuentry //')&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;sed -i "s/GRUB_DEFAULT.*/GRUB_DEFAULT=$kern_img/" /etc/default/grub&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;grep 2.6.31-14 /etc/default/grub || sed -i "s/GRUB_DEFAULT.*/GRUB_DEFAULT=0/" /etc/default/grub&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;update-grub&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;reboot&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;[/SOLVED]&lt;br /&gt;&lt;br /&gt;This entry seemed to be getting a lot of hits so I've added a &lt;b&gt;&lt;i&gt;very&lt;/i&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&amp;nbsp;quick-n-dirty hack that solved the problem for me. If you do not have the 2.6.31-14 kernel installed then try booting into another kernel that isn't the&amp;nbsp;2.6.32-39-generic provided by Ubuntu&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;&lt;b&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-size: large;"&gt;The story starts, (and ends) here:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;It finally happened to me; my Ubuntu luck ran out: I noticed that the update-manager had turned up last night, so I set it going and went to sleep. The next morning it prompted me for a reboot, which I did and now my laptop is broken. (I'm deliberately being vague because this is how it would appear to a normal user.)&lt;br /&gt;&lt;br /&gt;So what happened? synaptic tells me that the following happened:&lt;br /&gt;&lt;span class="Apple-style-span" style="font-size: xx-small;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;adobe-flash-properties-gtk (11.1.102.62-0lucid1) to 11.1.102.63-0lucid1&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-size: xx-small;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;adobe-flashplugin (11.1.102.62-0lucid1) to 11.1.102.63-0lucid1&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-size: xx-small;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;chromium-browser (17.0.963.56~r121963-0ubuntu0.10.04.1) to 17.0.963.65~r124586-0ubuntu0.10.04.1&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-size: xx-small;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;chromium-browser-l10n (17.0.963.56~r121963-0ubuntu0.10.04.1) to 17.0.963.65~r124586-0ubuntu0.10.04.1&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-size: xx-small;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;chromium-codecs-ffmpeg (17.0.963.56~r121963-0ubuntu0.10.04.1) to 17.0.963.65~r124586-0ubuntu0.10.04.1&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-size: xx-small;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;lt;consolekit (0.4.1-3ubuntu2) to 0.4.1-3ubuntu3&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-size: xx-small;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;libc-bin (2.11.1-0ubuntu7.8) to 2.11.1-0ubuntu7.10&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-size: xx-small;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;libc-dev-bin (2.11.1-0ubuntu7.8) to 2.11.1-0ubuntu7.10&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-size: xx-small;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;libc6 (2.11.1-0ubuntu7.8) to 2.11.1-0ubuntu7.10&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-size: xx-small;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;libc6-dev (2.11.1-0ubuntu7.8) to 2.11.1-0ubuntu7.10&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-size: xx-small;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;libc6-i686 (2.11.1-0ubuntu7.8) to 2.11.1-0ubuntu7.10&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-size: xx-small;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;libck-connector0 (0.4.1-3ubuntu2) to 0.4.1-3ubuntu3&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-size: xx-small;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;libpam-ck-connector (0.4.1-3ubuntu2) to 0.4.1-3ubuntu3&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-size: xx-small;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;lt;linux-generic (2.6.32.38.44) to 2.6.32.39.46&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-size: xx-small;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;linux-headers-generic (2.6.32.38.44) to 2.6.32.39.46&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-size: xx-small;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;linux-image-generic (2.6.32.38.44) to 2.6.32.39.46&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-size: xx-small;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;linux-libc-dev (2.6.32-38.83) to 2.6.32-39.86&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-size: xx-small;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;python-pam (0.4.2-12.1ubuntu1) to 0.4.2-12.1ubuntu1.10.04.1&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-size: xx-small;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;tzdata (2011n-0ubuntu0.10.04) to 2012b-0ubuntu0.10.04&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-size: xx-small;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;tzdata-java (2011n-0ubuntu0.10.04) to 2012b-0ubuntu0.10.04&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-size: xx-small;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-size: xx-small;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;Installed the following packages:&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-size: xx-small;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;linux-headers-2.6.32-39 (2.6.32-39.86)&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-size: xx-small;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;linux-headers-2.6.32-39-generic (2.6.32-39.86)&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-size: xx-small;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;linux-image-2.6.32-39-generic (2.6.32-39.86)&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;So what are the symptoms? VLC has turned into a slide-show. smplayer has turned into an audio player and totem is even worse than normal. chromium-browser is slow, runs between 90 and 100% CPU. &amp;nbsp;top tells me that 0k of swap is being used and I have&amp;nbsp;549880k free RAM. I'm having to use Epiphany and links, (text browser) to search for solutions. So the first thing that I wanted to rule out was chromium as the problem, (it didn't feel like the problem, and VLC developing problems after an upgrade that did not change any of the VLC files seems to confirm this.) So I tried Firefox (10.04.4) and sure enough that was much slower than yesterday and flash video was like watching a slide-show, (though I note that the audio was fine... until firefox crashed!) I uninstalled firefox 10.04.4 and tried to install firefox-3.6. That didn't seem to work so I tried Opera, (which I had installed.) It was a little better but still flash was unusable.&amp;nbsp;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;It is at this point where my heart sunk as I realised that I would be spending my weekend fixing my laptop, (and probably installing a new distro.) I feel that Ubuntu has let the side down enough that I should look for something else, (even though this time I think it is libc.) update-manager already knows how much disk space will be consumed by the update. It may take some work but it should be possible for update-manager to check the power of a computer and not upgrade if it is going to burn the CPU too hot. (This would require the beta testers to compare the CPU/RAM usage.) But the simplest solution would be a rollback button, (and for those pedantic-types you can call it an "undo-update" button.)&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Before I do that I would like to find a faster solution, (apt-get rollback-upgrade would be perfect, but it does not exist.)&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;So lets reboot into an older linux-image (or "try an older kernel" as I would put it.) Still the same problems. So is it a problem with adobe-flashplugin or libc, (agh). Lets go for the soft option of:&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;aptitude remove&amp;nbsp;adobe-flash-properties-gtk* adobe-flashplugin*&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;aptitude install&amp;nbsp;flashplugin-installer&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;then see where we are... Firefox is still crashing and flash video is still a slide-show, (and I've noticed that&amp;nbsp;NetworkManager has vanished from my Panels bar, rhythmbox no longer minimises to the bar, (or even has an icon on the bar when running), and the keyboard short-cut for terminal has been deleted, (what? I use that every day. Come ON ubuntu why remove that without any warning?)&lt;/div&gt;&lt;div&gt;&lt;b&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;[got the networkManager and rhythmbox icon back with: Right click bar &amp;gt; +Add to panel &amp;gt; Notification area]&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Maybe preload and openbox can get me out of this mess: nice try but nope, (though I think I would like openbox were I not in the middle of fixing a broken laptop.)&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;So it feels like everything is burning CPU - so maybe libc has some sort of debug mode enabled. I still don't know if it is a problem with gnome 2.30.2 or ubuntu 10.04.4 or libc. Maybe it is a problem with&amp;nbsp;apparmor:&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;aptitude remove&amp;nbsp;apparmor-utils&amp;nbsp;apparmor -y; reboot&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;we will see on the other side.. still nope&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;maybe ubuntu has broken cpu frequency scaling:&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;aptitude install cpufrequtils cpufreqd -y&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;and... we have a winner, (two hours later, after searching blogs and logs and checking the BIOS for&amp;nbsp;speedstep (I have a Centrino Duo and SpeedStep was enabled)), I booted into&amp;nbsp;2.6.31-14 and I have a working laptop. (Still have to see if it was all the hacking about or the kernel before submitting a kernel bug report to launchpad.)&lt;br /&gt;&lt;br /&gt;With all this time burnt on trying to fix CPU stepping I still don't know which distro to move to.. maybe back to Slackware?&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3617485390135312686-7460683818715832194?l=www.alexx.net' alt='' /&gt;&lt;/div&gt;</description><link>http://www.alexx.net/2012/03/ubuntu-update-killed-my-laptop.html</link><author>noreply@blogger.com (alexx)</author><thr:total>0</thr:total></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-3617485390135312686.post-4783927951392061512</guid><pubDate>Mon, 13 Feb 2012 08:00:00 +0000</pubDate><atom:updated>2012-03-01T16:40:56.498Z</atom:updated><category domain='http://www.blogger.com/atom/ns#'>money</category><category domain='http://www.blogger.com/atom/ns#'>computer artisan</category><category domain='http://www.blogger.com/atom/ns#'>wisdom</category><category domain='http://www.blogger.com/atom/ns#'>time</category><title>Personal Currency</title><description>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;b&gt;Creating a virtual Currency&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;A few years ago I created a virtual currency. The unit of currency was the Favour, with 100 Favours to a Blessing. Each member of the community was issued with 10 Favours on the 20th of March, (this was actually for a company.) The company was growing, (number of staff) at about 10%, and the central bank was automated, but effectively was the board of directors.&lt;br /&gt;&lt;br /&gt;So what was being traded? Shifts, holidays, cover, lunch, (so mostly time but also expertise.) This all seemed fine but controlling the supply of money was broken. Once someone had spent their Favours how did they acquire more. How were Favours used by those that amassed them. Those that ended up with the largest collection of Favours tended to be the same people that did not need to spend them.&lt;br /&gt;&lt;br /&gt;Each shift had a value in Favours and could be traded. So who sets the price?&lt;br /&gt;&lt;br /&gt;&lt;b&gt;The money supply&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;If more Favours were issued then the value of the Favours in the market would drop.&lt;br /&gt;The first solution was to enable any person, (not even members of staff but customers and suppliers) to be able to purchase Favours. The interesting thing was that being all digital it was possible for someone to individually price their Favours and even price them depending on who was buying. This meant that the central bank did not have to sell money for there to be a supply.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Why stop at one currency?&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;At the end of the day all money, after some exchange rate, is the value of a good or service. Many goods are fungible, (one apple is the same as another from the same tree.) &amp;nbsp;Ever service has a skill level, and the higher the skill level the more specialised the server has to be. Even those with expert level can provide two very different services, (two master cooks can both provide a meal, but one may clean-as-they-go and the other may leave the kitchen a mess.) This leads to skill groups that collect or join associated skills. Each of us can learn more each day, but there are only 24 hours in a day. This means that our time has a value. If we work twenty hours a day for seven days then our service quality, (for most people) will drop as sleep has a value.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Personal Currency&lt;/b&gt;&lt;br /&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;br /&gt;This lead to Personal Currency. Each person could sell their currency at any price that they wanted, and link it to a service. The only egalitarian unit is the Babylonian second.&lt;br /&gt;So my personal currency for general computer work would be 10 seconds per second. This gives a velocity. (10s/s). The greater the velocity the greater the rate at which I will accomplish the task. So my personal currency for interior decorating should be 0.01s/s, (because I have no talent for it) but is actually 100s/s because I have no interest in that work. (Everyone has a price; For everything!)&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Skill compatibility&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;So imagine two people, (Alice and Bob) that can both walk-a-dog or baby-sit or write-a-computer program. Alice programs in Scala, c and Python. Bob programs in Scala, c++ and Perl. Bob likes dog-walking and does not like baby-sitting. Alice prefers baby-sitting but does not mind dog-walking.&lt;br /&gt;&lt;br /&gt;So we want someone to walk our dog. Who do we pick? Alice or Bob can walk-a-dog and so mostly we go for the person that charges less, (lets leave out personal relationships because that gets complicated quickly.)&lt;br /&gt;&lt;br /&gt;Now we want someone to debug a function to our existing company program. It is written in c. Bob charges less for c++ than Alice charges, and though they are not the same language, Bob can probably find the bug for us.&lt;br /&gt;&lt;br /&gt;Now we need a new function writing in Scala. Who do we pick?&lt;br /&gt;&lt;br /&gt;These examples show that each person needs to be able to enter a skill and those shopping need to be able to know what level they are at. This is where peer review comes in.&lt;br /&gt;&lt;br /&gt;Bob enters his skill and the level that he thinks that he is at. Alice works in the same department and works with Bob for a few years. She can comment on Bob's Scala work, but really, as a potential customer I just want a number, but we need a fuzzy match against skills themselves.&lt;br /&gt;&lt;br /&gt;Now we need something translating into Latin. Both Alice and Bob did Latin at school and Bob got grade A- and Alice for B+. That was ten years ago and since then Alice has become a member of a group that meets once a month and spends the whole evening only speaking in Latin. Bob has not used his Latin at all.&lt;br /&gt;&lt;br /&gt;Is it written language or spoken language?&lt;br /&gt;&lt;br /&gt;There are many variables to take into account and they change with time. Imagine searching for the right person in an open market. Either the system has to be very good at fuzzy matching needs to skills or the person searching has to know the equivalence of Scala and Java.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Customer review&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;If a customer gives Bob a bad review then how should that impact his score? It depends on the customers own skill level and interests. If the customer is Alice's half-sister Anne and Anne thinks that she is helping Alice by giving her "competitor" a negative review then we should reduce the impact of Anne's view. But Anne and Alice do not have the same last name so matching people to families is not automatic, (we don't have the computing power for DNA comparisons.)&lt;br /&gt;&lt;br /&gt;Your desktop computer breaks. Everyone knows someone that is, "a whizz with computers." In my experience that can be anything from, better-than-the-person-making-the-claim all the way up to the likes of Moxie and Shevek.&lt;br /&gt;&lt;br /&gt;[ I once had a boiler installed by a master-plumber and he had two men working with him. The master was clearly competent, but the attention to detail of the other two&lt;br /&gt;even though they were sticking to tasks well within their skill set, was terrible. The next factor was the breaking of a verbal contract. I had negotiated with the salesman that the plumbers would install a new dishwasher at the same time. (I had the dishwasher delivered the day before so it was ready.) I explained that had it been simply a matter of connecting to existing pipes I would have done it myself, and he assured me that it would not be a problem - he said that it would be included in the original quote. Once the boiler was installed I was given the, "the dishwasher isn't on the docket" argument and&lt;br /&gt;immediately a passable relationship went sour. I can clearly rate all four people and give another rating for the company as a whole, "Avoid!" and a sixth for the on-site team, "Shoddy." (I've since had two plumbers in to fix the job.)&lt;br /&gt;This little anecdote is here to demonstrate that reviewing is a skill in itself. Had this happened to someone else, (as I'm sure it has) then one review could taint the skills of the master-plumber, who was perfectly good at joining two copper pipes. ]&lt;br /&gt;&lt;br /&gt;The solution that I came up with was weighting the reviews based on the relative skill level of the reviewer. (Then the reviews needed to be weighted by a, "was this helpful" vote.)&lt;br /&gt;&lt;br /&gt;This highlights what I have been arguing for years, that practical experience, (phronesis) is far more important than theoretical knowledge, (episteme). In the end the customer should not be interested in which school taught you the skill or the grade that you achieved at the time, but your present skill level, (techne) and the quality of your work, (arete-eunoia).&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Skill Levels&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;We could define skill levels into some standard, but with two people both being competent we might need some greater granularity.&lt;br /&gt;&lt;ol start="0"&gt;&lt;li&gt;Ignorant&lt;/li&gt;&lt;li&gt;Know about, ("heard of" level.)&lt;/li&gt;&lt;li&gt;Novice&lt;/li&gt;&lt;li&gt;Beginner&lt;/li&gt;&lt;li&gt;Competent&lt;br /&gt;&lt;ul&gt;&lt;li&gt;4.1 Level I Bob 2001, Alice 1999&lt;/li&gt;&lt;li&gt;4.2 Level II Bob 2003, Alice 2010&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;li&gt;Proficient&lt;/li&gt;&lt;li&gt;Expert&lt;/li&gt;&lt;/ol&gt;&lt;div&gt;This is where an&amp;nbsp;&lt;a href="http://en.wikipedia.org/wiki/Elo_rating_system"&gt;Elo rating system&lt;/a&gt; comes in. ERS is a relative ranking system invented for chess, (but used for any competitive sporting event from weichi-go to racing-car drivers.) How much better than me is the worlds top chess player? &amp;nbsp;Easy: today Magnus Carlsen is 2835 and I am 1678. So 1157 Elo better. Now I could charge half as much as him for chess lessons, but he might be too busy with tournaments to teach, or you might be Swedish and he might, for Norwegian nationalistic reasons, refuse to teach you. If we were talking about painting your house then location and geographical factors come into play, (less so with chess which can be taught over the Internet via web-cam.)&lt;/div&gt;&lt;div&gt;&lt;br /&gt;The second half to this is &lt;a href="http://www.paulgraham.com/wisdom.html#f2n"&gt;wisdom&lt;/a&gt; vs &lt;a href="http://www.paulgraham.com/wisdom.html#f3n"&gt;knowledge&lt;/a&gt; vs smarts. Knowledge, as I see it, covers a subject, (e.g. trees.) You can know the names and germination and have read all sorts of things. Wisdom is more general, and could cover cultivation and farming. Smarts are much finer: Do you have extensive experience designing, planning, implementing and managing a commercial forest? These would not be the same smarts as a forest ranger even though the two may have broadly overlapping knowledge and roughly overlapping wisdom.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;I am a computer professional&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;Probably not. A professional has to be accredited with a governing body. This would include medical doctors, accountants, lawyers, (&lt;a href="http://www.cityoflondon.gov.uk/Corporation/LGNL_Services/Leisure_and_culture/Local_history_and_heritage/Livery/"&gt;obviously&lt;/a&gt; &lt;a href="http://en.wikipedia.org/wiki/Livery_Company"&gt;there are&lt;/a&gt; many more.)&lt;br /&gt;&lt;div style="text-align: center;"&gt;(Certainly lawyers know that time == money with their billable hours.)&lt;/div&gt;&lt;br /&gt;All of the people that I know that work in computing, (even if they are qualified professionals in other fields) are &lt;a href="http://en.wikipedia.org/wiki/Artisan"&gt;computer artisans&lt;/a&gt;. Even with qualifications, there is no guarantee of talent, beyond the ability to pass an exam.&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;A solution for Earth&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;This works on a small scale: Everyone one knows how good everyone else is at each task, or can estimate how good they would be at any given task. How do we&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;ol&gt;&lt;li&gt;Scale this up to the whole planet&lt;/li&gt;&lt;li&gt;Ensure the security of the system cryptographically&lt;/li&gt;&lt;li&gt;Create it such that it is distributed, but seamlessly interlocking.&lt;/li&gt;&lt;li&gt;As portable as a mobile phone but without the risks&lt;/li&gt;&lt;/ol&gt;&lt;div&gt;(A PGP key can have an image of the owner embedded in it. Want a new image? Create a new key, add the image and sign it using your old key. Then revoke the old key. All of this can be done publicly, and with no more computing power than is found in a mobile phone.)&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;Traditionally the system was word-of-mouth. Then it became curriculum vitae, anchored with references. This might have worked for an industrial age, but the future will require something a little better, (unless some form of telepathy is achieved.)&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;So it might be true that &lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;time = money&lt;/span&gt;, but as a potential customer I would like to know the probable quality of work before I look in my wallet or at my watch.&lt;br /&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-size: xx-small;"&gt;This post is dedicated to people with the smarts, like today's birthday boy.&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3617485390135312686-4783927951392061512?l=www.alexx.net' alt='' /&gt;&lt;/div&gt;</description><link>http://www.alexx.net/2012/02/personal-currency.html</link><author>noreply@blogger.com (alexx)</author><thr:total>0</thr:total></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-3617485390135312686.post-1044340665903456413</guid><pubDate>Tue, 07 Feb 2012 19:11:00 +0000</pubDate><atom:updated>2012-02-07T19:11:52.317Z</atom:updated><category domain='http://www.blogger.com/atom/ns#'>fun</category><category domain='http://www.blogger.com/atom/ns#'>interview</category><category domain='http://www.blogger.com/atom/ns#'>perl</category><title>Perl Interview questions</title><description>&lt;br /&gt;I had this one thrown at me:&lt;br /&gt;&lt;br /&gt;What is the difference between -&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;perl -e '$n=1234; if($n=~m/^(\d)*$/){print $1;}'&lt;/span&gt;&lt;br /&gt;and&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;perl -e '$n=1234; if($n=~m/^(\d+)$/){print $1;}'&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Thankfully I got it right, (I leave marks when I kick myself.)&lt;br /&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3617485390135312686-1044340665903456413?l=www.alexx.net' alt='' /&gt;&lt;/div&gt;</description><link>http://www.alexx.net/2012/02/perl-interview-questions.html</link><author>noreply@blogger.com (alexx)</author><thr:total>0</thr:total></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-3617485390135312686.post-3938109349856662677</guid><pubDate>Fri, 03 Feb 2012 16:19:00 +0000</pubDate><atom:updated>2012-05-22T09:55:45.374+01:00</atom:updated><category domain='http://www.blogger.com/atom/ns#'>comics</category><title>Comics as an entertainment medium</title><description>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;I think it was Neil Gaiman that absolved me of my guilt in reading comics.&lt;br /&gt;&lt;br /&gt;He described a social encounter where someone asked him what he did for a living. He recounted that he said that he wrote comics. The recipient of this statement seemed nonplussed until they heard that he wrote &lt;a href="http://en.wikipedia.org/wiki/The_Sandman_%28Vertigo%29"&gt;The Sandman&lt;/a&gt;, at which point they lit up and branded Gaiman, (in a supportive way) a graphic novelist. I can see why it might seem funny that the same content bound differently could produce such a different attitude, but the dynamics of pigeonholing information and individuals is a natural part of how our brains process and map out information. (Though Neil probably knows this and was just providing amusing filler for interviews.)&lt;br /&gt;&lt;br /&gt;After that moment I gleefully consumed&amp;nbsp;&lt;a href="http://www.heartshapedskull.com/"&gt;Serenity Rose&lt;/a&gt;&amp;nbsp;and&amp;nbsp;&lt;a href="http://www.danielschaffer.com/dogwitch/"&gt;Daniel Schaffer's dogwitch&lt;/a&gt;&lt;br /&gt;right alongside&amp;nbsp;&lt;a href="http://www.amazon.co.uk/Good-Omens-Neil-Gaiman/dp/0552137030/ref=sr_1_1?ie=UTF8&amp;amp;qid=1327938345&amp;amp;sr=8-1"&gt;Good Omens&lt;/a&gt;, (all of which are in my, "If I could un-remember them I would, just so that I could enjoy reading them for the first time again" list. )&lt;br /&gt;&lt;br /&gt;I noticed, long after the fact, the Infinity crisis arc over in DC land. I bought a few of them, and though I can see a lot of work has gone into them, (I might even go as far as to say that as an event it is a worthy effort), but I did not connect with them. This feels more like a, "gather ye rose-buds while ye may" rather than a failing on the part of DC and the&amp;nbsp;artistic&amp;nbsp;talents of its staff. I think that I have finally grown out of comics, (&lt;a href="http://www.alexx.net/comics/"&gt;with a few exceptions&lt;/a&gt;.)&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3617485390135312686-3938109349856662677?l=www.alexx.net' alt='' /&gt;&lt;/div&gt;</description><link>http://www.alexx.net/2012/02/comics-as-entertainment-medium.html</link><author>noreply@blogger.com (alexx)</author><thr:total>0</thr:total></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-3617485390135312686.post-588606451462057162</guid><pubDate>Fri, 03 Feb 2012 15:44:00 +0000</pubDate><atom:updated>2012-02-03T15:44:42.958Z</atom:updated><category domain='http://www.blogger.com/atom/ns#'>contact lenses</category><title>Contact Lenses</title><description>Quick tip: If it feels like they are made of rubber or that they are catching on the inside of your eye-lid then they are probably backwards.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3617485390135312686-588606451462057162?l=www.alexx.net' alt='' /&gt;&lt;/div&gt;</description><link>http://www.alexx.net/2012/02/contact-lenses.html</link><author>noreply@blogger.com (alexx)</author><thr:total>0</thr:total></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-3617485390135312686.post-205517159268736991</guid><pubDate>Fri, 03 Feb 2012 11:31:00 +0000</pubDate><atom:updated>2012-02-03T11:34:42.580Z</atom:updated><category domain='http://www.blogger.com/atom/ns#'>crossword</category><category domain='http://www.blogger.com/atom/ns#'>advert</category><category domain='http://www.blogger.com/atom/ns#'>benson and hedges</category><title>Adverts and crosswords</title><description>Near the start of the 1990ies B&amp;amp;H had a poster advert campaign in England, (possibly the UK,) that consisted of a crossword clue and an image that combined the clue with the answer. I had just started to try cryptic crosswords and found them rather easy. My driving instructor seemed to also enjoy them. (I don't recall anyone in my life liking the product.)&lt;br /&gt;&lt;br /&gt;This entry is to collect all of them together, as I &lt;a href="http://www.advertisingarchives.co.uk/index.php?service=search&amp;amp;action=do_quick_search&amp;amp;language=en&amp;amp;q=benson+and+hedges+crossword+advert"&gt;find them&lt;/a&gt;:&lt;br /&gt;&lt;ol&gt;&lt;li&gt;&lt;span class="Apple-style-span" style="font-family: 'Trebuchet MS', sans-serif;"&gt;&lt;b&gt;EASY TO CRACK? (6,4)&lt;/b&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span class="Apple-style-span" style="font-family: 'Trebuchet MS', sans-serif;"&gt;&lt;b&gt;GOODBYE GRINGO? (7,4)&lt;/b&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span class="Apple-style-span" style="font-family: 'Trebuchet MS', sans-serif;"&gt;&lt;b&gt;NIPPIN' PIPPINS? (4,6)&amp;nbsp;&lt;/b&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span class="Apple-style-span" style="font-family: 'Trebuchet MS', sans-serif;"&gt;&lt;b&gt;MUSIC TO SCOTTISH EARS? (8)&lt;/b&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span class="Apple-style-span" style="font-family: 'Trebuchet MS', sans-serif;"&gt;&lt;b&gt;LEAN ON ME? (7,5)&lt;/b&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span class="Apple-style-span" style="font-family: 'Trebuchet MS', sans-serif;"&gt;&lt;b&gt;DEFT THEFT? (5,8)&lt;/b&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span class="Apple-style-span" style="font-family: 'Trebuchet MS', sans-serif;"&gt;&lt;b&gt;CITY SHRUBS? (8,6)&lt;/b&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span class="Apple-style-span" style="font-family: 'Trebuchet MS', sans-serif;"&gt;&lt;b&gt;PERFORMING ON THE VILLAGE GREEN? (7,7)&lt;/b&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ol&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;A description of the image&lt;/div&gt;&lt;div&gt;&lt;ol&gt;&lt;li&gt;A&amp;nbsp;gorilla made of bolt fastenings holding a wrench&lt;/li&gt;&lt;li&gt;Hokusai's Great ocean picture with the water made from sombreros&lt;/li&gt;&lt;li&gt;&lt;span class="Apple-style-span" style="font-size: x-large;"&gt;&lt;span class="Apple-style-span" style="font-size: 21px;"&gt;&lt;b&gt;&lt;span class="Apple-style-span" style="font-size: small; font-weight: normal;"&gt;A tree with non-lobster crustacean fruit.&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;A green valise with extraneous plumbing attached&lt;/li&gt;&lt;li&gt;A stick insect&lt;/li&gt;&lt;li&gt;A glowing hand taking an object from an overcoat&lt;/li&gt;&lt;li&gt;A white forest&lt;/li&gt;&lt;li&gt;A grasshopper playing the flute&lt;/li&gt;&lt;/ol&gt;&lt;/div&gt;&lt;br /&gt;Answer, (or so I think)&lt;br /&gt;&lt;ol&gt;&lt;li&gt;&lt;span class="spoiler" onmounout="this.style.color='black'" onmousover="this.style.color='white';" style-"color: black;"&gt;Monkey nuts&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span class="spoiler" onmounout="this.style.color='black'" onmousover="this.style.color='white';" style-"color: black;"&gt;Mexican wave&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span class="spoiler" onmounout="this.style.color='black'" onmousover="this.style.color='white';" style-"color: black;"&gt;Crab apples&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span class="spoiler" onmounout="this.style.color='black'" onmousover="this.style.color='white';" style-"color: black;"&gt;Bagpipes&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span class="spoiler" onmounout="this.style.color='black'" onmousover="this.style.color='white';" style-"color: black;"&gt;Walking stick&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span class="spoiler" onmounout="this.style.color='black'" onmousover="this.style.color='white';" style-"color: black;"&gt;Light fingered&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span class="spoiler" onmounout="this.style.color='black'" onmousover="this.style.color='white';" style-"color: black;"&gt;Concrete jungle&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span class="spoiler" onmounout="this.style.color='black'" onmousover="this.style.color='white';" style-"color: black;"&gt;Playing cricket&lt;/span&gt;&lt;/li&gt;&lt;/ol&gt;&lt;br /&gt;&lt;br /&gt;Do you have a favourite cryptic crossword puzzle?&lt;br /&gt;Mine would probably be:&lt;br /&gt;hijklmno? (5)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3617485390135312686-205517159268736991?l=www.alexx.net' alt='' /&gt;&lt;/div&gt;</description><link>http://www.alexx.net/2012/01/adverts-and-crosswords.html</link><author>noreply@blogger.com (alexx)</author><thr:total>0</thr:total><georss:featurename>46 New King&amp;#39;s Rd, London Borough of Hammersmith and Fulham, London SW6 4LS, UK</georss:featurename><georss:point>51.47266927645419 -0.20062923431396484</georss:point><georss:box>51.47019677645419 -0.20556473431396485 51.475141776454194 -0.19569373431396483</georss:box></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-3617485390135312686.post-34330156563372414</guid><pubDate>Wed, 01 Feb 2012 15:22:00 +0000</pubDate><atom:updated>2012-03-01T16:33:09.937Z</atom:updated><category domain='http://www.blogger.com/atom/ns#'>advert</category><category domain='http://www.blogger.com/atom/ns#'>search</category><category domain='http://www.blogger.com/atom/ns#'>Oranjeboom</category><title>Oranjeboom advert search</title><description>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;Most of my life I have detested beer, (though in the past few years my pallet has accepted&amp;nbsp;&lt;span class="Apple-style-span" style="font-family: Tahoma, Geneva, Helvetica, Arial, sans-serif;"&gt;&lt;a href="http://beeradvocate.com/beer/profile/187/7712"&gt;Lindemans Faro Lambic&lt;/a&gt;&amp;nbsp;and&amp;nbsp;&lt;/span&gt;&lt;a class="" href="http://beeradvocate.com/beer/profile/169/13598" style="color: #cc2211; cursor: pointer;"&gt;La Bécasse kriek cerise&lt;/a&gt;, (cherry).) So it might seem odd for me to be talking about beer.&lt;/div&gt;&lt;br /&gt;I remember, many years ago, being on a red number 22 Routmaster double-decker bus in London. There were Oranjeboom adverts. At the time I thought that they were meant to sound like someone &amp;nbsp;who had drunk too much of their product, but later I discovered that it was Dutch, (sorry my cloggies.)&lt;br /&gt;&lt;br /&gt;This was all B.I.&amp;nbsp;(Before Internet) and B.D.C. (before digital cameras) so an image search does not turn up useful hits for these adverts, that I seek.&lt;br /&gt;&lt;br /&gt;I have found a few dark &lt;a href="http://www.stephenfry.com/forum/topic/words/page/31"&gt;corners&lt;/a&gt; of the Internet where this topic is discussed, but the majority of the blag in the blogs is about the previous television ad-campaign, (the one with the song, "Oranjeboom, Oranjeboom,&amp;nbsp;It’s a flavour not a tune"). The one I'm looking for was a print campaign on both the London Underground and the buses.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;center&gt;"Oer dier! U heeft juist mist de laatst trein reden dis postuur. Oranjeboom."&lt;/center&gt;&lt;br /&gt;&lt;br /&gt;Is the closest that I have come to finding any quotes.&lt;br /&gt;&lt;br /&gt;So the logical search, (after the Internet fails) is, find out who got paid, (Gibbs rule #0:&amp;nbsp;Follow the money).&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;London Regional Transport, (the Tube and bus people, back then.)&lt;/li&gt;&lt;li&gt;The advertising agency that came up with the concept, and&amp;nbsp;&lt;/li&gt;&lt;li&gt;the company that printed the adverts.&amp;nbsp;&lt;/li&gt;&lt;li&gt;There is also the option of contacting the brewery.&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&amp;nbsp;Since then the brewery has been bought and sold and moved and bought some more. ( If you have ever moved house you will know how much you throw out and how much can be lost in the move.) I doubt that it would be easy to find their original records, (but still worth asking.) &amp;nbsp;CBS Outdoor might have a record, &amp;nbsp;(or have acquired the company that did) but again they are not a public library.&lt;br /&gt;&lt;br /&gt;This leaves two options for comments, (there has to be someone who worked on the project that made a note of the phrases, or someone who has kept a copy.)&lt;br /&gt;&lt;br /&gt;&lt;ol&gt;&lt;li&gt;Those that can shed light on the campaign, (preferably verbatim copy or contacts that would be able to locate the words in the adverts.)&lt;/li&gt;&lt;li&gt;Dutch people that want to create new versions, (though I'm loathed to verbify it: Orangebooming anyone?) [I suppose you could try other languages as well.]&lt;/li&gt;&lt;/ol&gt;If you can add either a type 1 or type 2 comment then please do. It would be nice to get them all back together.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3617485390135312686-34330156563372414?l=www.alexx.net' alt='' /&gt;&lt;/div&gt;</description><link>http://www.alexx.net/2012/02/oranjeboom-advert-search.html</link><author>noreply@blogger.com (alexx)</author><thr:total>0</thr:total></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-3617485390135312686.post-6593577012829659581</guid><pubDate>Mon, 30 Jan 2012 14:51:00 +0000</pubDate><atom:updated>2012-01-30T14:51:19.117Z</atom:updated><category domain='http://www.blogger.com/atom/ns#'>maths</category><category domain='http://www.blogger.com/atom/ns#'>vi hart</category><category domain='http://www.blogger.com/atom/ns#'>numberphile</category><category domain='http://www.blogger.com/atom/ns#'>blackhole number</category><title>Numberphile</title><description>If you are like me then you will like&amp;nbsp;&lt;a href="http://www.youtube.com/user/Vihart"&gt;http://www.youtube.com/user/Vihart&lt;/a&gt;&amp;nbsp;(squee! ♥)&lt;br /&gt;&lt;br /&gt;and you will have seen&amp;nbsp;&lt;a href="http://www.youtube.com/user/numberphile"&gt;Numberphile&lt;/a&gt;... which so far has not been as good as&amp;nbsp;&lt;a href="http://www.youtube.com/user/singingbanana"&gt;The Singing Banana&lt;/a&gt;, until today! (So I declare!)&lt;br /&gt;&lt;br /&gt;For me&amp;nbsp;&lt;a href="http://www.youtube.com/watch?v=hiOMtBrH8pc"&gt;today's episode of numberphile&lt;/a&gt;&amp;nbsp;is as cool as I had been hoping they would be.&lt;br /&gt;( I hope that they have just got into their stride.)&lt;br /&gt;&lt;br /&gt;The previous episodes have been, for me, between so-so and hmmm, (so worth seeing, but not worth a thumbs up [0].)&lt;br /&gt;&lt;br /&gt;If I had to do an episode then mine would be 15 and I would talk about black-hole numbers [1].&lt;br /&gt;&lt;br /&gt;I wonder if they would let me pick 1234, but then talk about 1,2,3,4 and trying to create every number from [1..100] just using each of those digits once. i.e.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: 'Courier New', Courier, monospace;"&gt;1+2+3+4&amp;nbsp;&amp;nbsp; =10 &lt;/span&gt;(99 left to find), &lt;br /&gt;&lt;span style="font-family: 'Courier New', Courier, monospace;"&gt;(1+2)(3+4)=14&lt;/span&gt;&amp;nbsp; (98) left to find.&lt;br /&gt;&lt;br /&gt;Many years ago my friend Shevek wrote, (in 3194 bytes of perl) a program that searched for all possibilities. Before that my friend Nico and I had found most of them by hand.&lt;br /&gt;&lt;br /&gt;(If you get stuck then you can ask me for help.)&lt;br /&gt;&lt;br /&gt;[0] It would be nice to have some granularity. Did I like the production; Did I like the relevance to what I was looking for? (Come on 'The Internet' not all of us are undergrads ;-)&lt;br /&gt;&lt;br /&gt;[1] Recurse through { The sum of the divisors of a natural number } =&amp;gt; 15&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3617485390135312686-6593577012829659581?l=www.alexx.net' alt='' /&gt;&lt;/div&gt;</description><link>http://www.alexx.net/2012/01/numberphile.html</link><author>noreply@blogger.com (alexx)</author><thr:total>0</thr:total></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-3617485390135312686.post-534351781708159684</guid><pubDate>Sun, 29 Jan 2012 21:56:00 +0000</pubDate><atom:updated>2012-01-29T21:56:41.242Z</atom:updated><category domain='http://www.blogger.com/atom/ns#'>code</category><category domain='http://www.blogger.com/atom/ns#'>net::server</category><category domain='http://www.blogger.com/atom/ns#'>perl</category><category domain='http://www.blogger.com/atom/ns#'>httpd</category><category domain='http://www.blogger.com/atom/ns#'>monkey-project</category><title>Monkey httpd</title><description>This weekend I tried monkey httpd. The short version: It rocks.&lt;br /&gt;I had a little trouble getting it to server CGI (.php .pl .cgi .py .rb .bash) because the server that came with it, (written in python - bless their cotton socks) did not work for me.&lt;br /&gt;&lt;br /&gt;If you want to use the script that I hacked together then feel free:&lt;br /&gt;&lt;br /&gt;&lt;a href="https://github.com/alexxroche/AIF/blob/master/scripts/perl/monkey-palm_0.1.pl"&gt;https://github.com/alexxroche/AIF/blob/master/scripts/perl/monkey-palm_0.1.pl&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;The big gotcha for me was "\r\n\r\n" rather than "\n\n". But once I tracked that down it was, (much like that reset of monkey-project) just as I expected, with everything where it should be and even painted the right colours!&lt;br /&gt;&lt;br /&gt;I'm off to hack the auth plugin to make it read .htaccess and then I'm going to "uninstall", (yes, remove) apache.&lt;br /&gt;&lt;br /&gt;(Then I'm going to port my little perl&amp;nbsp;Net::Server script to native c.)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3617485390135312686-534351781708159684?l=www.alexx.net' alt='' /&gt;&lt;/div&gt;</description><link>http://www.alexx.net/2012/01/monkey-httpd.html</link><author>noreply@blogger.com (alexx)</author><thr:total>0</thr:total></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-3617485390135312686.post-8342816427497223243</guid><pubDate>Fri, 27 Jan 2012 20:23:00 +0000</pubDate><atom:updated>2012-01-27T20:23:46.110Z</atom:updated><category domain='http://www.blogger.com/atom/ns#'>tshirt</category><category domain='http://www.blogger.com/atom/ns#'>buy</category><category domain='http://www.blogger.com/atom/ns#'>merchandise</category><category domain='http://www.blogger.com/atom/ns#'>shop</category><category domain='http://www.blogger.com/atom/ns#'>cafepress</category><title>Buy my stuff</title><description>&lt;span class="Apple-style-span" style="font-size: large;"&gt;For those of you that would like to own an original design based on one of the many great quotes in my blog, (or my life): &lt;/span&gt;&lt;a href="http://www.cafepress.com/alexxroche"&gt;&lt;span class="Apple-style-span" style="font-size: large;"&gt;Now you can&lt;/span&gt;&lt;/a&gt;&lt;span class="Apple-style-span" style="font-size: large;"&gt;.&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3617485390135312686-8342816427497223243?l=www.alexx.net' alt='' /&gt;&lt;/div&gt;</description><link>http://www.alexx.net/2012/01/for-those-of-you-that-would-like-to-own.html</link><author>noreply@blogger.com (alexx)</author><thr:total>0</thr:total></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-3617485390135312686.post-5221596513197924227</guid><pubDate>Fri, 27 Jan 2012 17:11:00 +0000</pubDate><atom:updated>2012-01-27T17:37:01.126Z</atom:updated><category domain='http://www.blogger.com/atom/ns#'>munin</category><category domain='http://www.blogger.com/atom/ns#'>rrdtool</category><category domain='http://www.blogger.com/atom/ns#'>laptop</category><category domain='http://www.blogger.com/atom/ns#'>graph</category><category domain='http://www.blogger.com/atom/ns#'>missing monthly graph</category><title>Munin about logarithmically</title><description>As you all know, I like to graph, (OK, being honest - I need to graph.) So when I create a nifty new plug-in to monitor the charge in my laptop battery, (acpi_volt) I was feeling rather smug.&amp;nbsp;It uses&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;acpi -i&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;to find out two pieces of information. The first is how charged the batter is. (Somewhere between 0 and 100 percent.) The second, (and this is the science bit) is the design capacity in mAh, and &lt;b&gt;the mAh at last full capacity&lt;/b&gt;. This is cool. We get two lines, one showing how much charge is left in the battery and another showing how much milk is left in the bottle.&amp;nbsp;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;(I know that my laptop battery should not suffer from any memory effect or milk-bottle effect, but it does. I don't know what chemical fingers are responsible, but over the past three years the length of time that I can run it off the battery has dropped from about 90 minutes to about 20.)&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;So I click on the graph to see the day,week,month,year view and &lt;span class="Apple-style-span" style="font-family: Arial, Helvetica, sans-serif;"&gt;*gasp* &lt;/span&gt;no month graph.&lt;br /&gt;I console myself that sometimes it takes a while for munin to have enough data in the rrd files to bother creating the month and year graphs. So I go to bed. The next day it has managed to create a year graph, but still no month graph.&lt;br /&gt;&lt;br /&gt;I smile. I have been a sysadmin.&lt;br /&gt;&lt;div style="text-align: center;"&gt;- this I know how to solve.&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;div style="text-align: left;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;I start with the usual suspects, (file/dir permissions in /var/lib/munin and other munin locations specified in /etc/munin/munin.conf )&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;Nothing. I check that I can collect the data remotely, and that the acpi_volt.rrd files have valid data in them, (they do.)&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;hmm - I have never got this far with a munin problem. I guess we will have to go deeper.&lt;/div&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace; font-size: x-small;"&gt;su -s /bin/bash munin&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;munin@laptop:~$ /usr/share/munin/munin-graph --service acpi_volt --nolazy --list-images --month --noyear --noday --noweek&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;produces the expected output&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;/var/www/munin/localdomain/localhost.localdomain-acpi_volt-month.png&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;div&gt;but it lies!&lt;/div&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;ls -la&amp;nbsp;ls -la /var/www/munin/localdomain/localhost.localdomain-acpi_volt-month.png&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;ls: cannot access /var/www/munin/localdomain/localhost.localdomain-acpi_volt-month.png: No such file or directory&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;br /&gt;ok. how about adding &lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;--debug&lt;/span&gt;&lt;/span&gt; to the end of that&lt;br /&gt;&lt;blockquote class="tr_bq"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;DEBUG: Expanding specials "volt0","volt1","".&lt;br /&gt;DEBUG: Checking field lengths "volt0","volt1","".&lt;br /&gt;DEBUG: Treating fields "volt0","volt1","".&lt;br /&gt;DEBUG: Processing field "volt0".&lt;br /&gt;DEBUG: single_value: Checking field "ARRAY(0x8a0ea38)".&lt;br /&gt;DEBUG: Drawing field "volt0".&lt;br /&gt;DEBUG: Processing field "volt1".&lt;br /&gt;DEBUG: Drawing field "volt1".&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;rrdtool "graph" "--font"&lt;br /&gt;"LEGEND:7:monospace"&lt;br /&gt;"--font"&lt;br /&gt;"UNIT:7:/usr/share/munin/VeraMono.ttf"&lt;br /&gt;"--font"&lt;br /&gt;"AXIS:7:/usr/share/munin/VeraMono.ttf"&lt;br /&gt;"/var/www/munin/localdomain/localhost.localdomain-acpi_volt-month.png"&lt;br /&gt;"--title"&lt;br /&gt;"Voltages - by month"&lt;br /&gt;"--start"&lt;br /&gt;"-33d"&lt;br /&gt;"--base"&lt;br /&gt;"1000"&lt;br /&gt;"--logarithmic"&lt;br /&gt;"--vertical-label"&lt;br /&gt;"Volt"&lt;br /&gt;"--height"&lt;br /&gt;"175"&lt;br /&gt;"--width"&lt;br /&gt;"400"&lt;br /&gt;"--imgformat"&lt;br /&gt;"PNG"&lt;br /&gt;"DEF:gvolt0=/var/lib/munin/localdomain/localhost.localdomain-acpi_volt-volt0-g.rrd:42:AVERAGE"&lt;br /&gt;"DEF:ivolt0=/var/lib/munin/localdomain/localhost.localdomain-acpi_volt-volt0-g.rrd:42:MIN"&lt;br /&gt;"DEF:avolt0=/var/lib/munin/localdomain/localhost.localdomain-acpi_volt-volt0-g.rrd:42:MAX"&lt;br /&gt;"CDEF:cvolt0=gvolt0"&lt;br /&gt;"COMMENT: "&lt;br /&gt;"COMMENT: Cur\:"&lt;br /&gt;"COMMENT:Min\:"&lt;br /&gt;"COMMENT:Avg\:"&lt;br /&gt;"COMMENT:Max\: \j"&lt;br /&gt;"LINE1.6:gvolt0#22ff22:Full "&lt;br /&gt;"GPRINT:cvolt0:LAST:%6.2lf%s"&lt;br /&gt;"GPRINT:ivolt0:MIN:%6.2lf%s"&lt;br /&gt;"GPRINT:gvolt0:AVERAGE:%6.2lf%s"&lt;br /&gt;"GPRINT:avolt0:MAX:%6.2lf%s\j"&lt;br /&gt;&lt;br /&gt;"DEF:gvolt1=/var/lib/munin/localdomain/localhost.localdomain-acpi_volt-volt1-g.rrd:42:AVERAGE"&lt;br /&gt;"DEF:ivolt1=/var/lib/munin/localdomain/localhost.localdomain-acpi_volt-volt1-g.rrd:42:MIN"&lt;br /&gt;"DEF:avolt1=/var/lib/munin/localdomain/localhost.localdomain-acpi_volt-volt1-g.rrd:42:MAX"&lt;br /&gt;"CDEF:cvolt1=gvolt1"&lt;br /&gt;"LINE1.6:gvolt1#0022ff:capacity "&lt;br /&gt;"GPRINT:cvolt1:LAST:%6.2lf%s"&lt;br /&gt;"GPRINT:ivolt1:MIN:%6.2lf%s"&lt;br /&gt;"GPRINT:gvolt1:AVERAGE:%6.2lf%s"&lt;br /&gt;"GPRINT:avolt1:MAX:%6.2lf%s\j"&lt;br /&gt;"COMMENT:Last update\: Fri Jan 27 16\:45\:03 2012\r"&lt;br /&gt;"--end"&lt;br /&gt;"1327672800"&lt;/span&gt;&lt;/span&gt;&lt;/blockquote&gt;&lt;div&gt;hmm, that all looks ok. Lets take a closer look at the data:&lt;br /&gt;&lt;br /&gt;rrdtool info /var/lib/munin/localdomain/localhost.localdomain-acpi_volt-volt0-g.rrd&lt;br /&gt;rrdtool info /var/lib/munin/localdomain/localhost.localdomain-acpi_volt-volt1-g.rrd&lt;br /&gt;&lt;blockquote class="tr_bq"&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;rrd_version = "0003"&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;step = 300&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;last_update = 1327685404&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;ds[42].type = "GAUGE"&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;ds[42].minimal_heartbeat = 600&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;ds[42].min = NaN&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;ds[42].max = NaN&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;ds[42].last_ds = "100"&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;ds[42].value = 4.0290790000e+02&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;ds[42].unknown_sec = 0&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;rra[0].cf = "AVERAGE"&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;rra[0].rows = 576&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;rra[0].cur_row = 88&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;rra[0].pdp_per_row = 1&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;rra[0].xff = 5.0000000000e-01&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;rra[0].cdp_prep[0].value = NaN&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;rra[0].cdp_prep[0].unknown_datapoints = 0&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;rra[1].cf = "MIN"&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;rra[1].rows = 576&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;rra[1].cur_row = 197&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;rra[1].pdp_per_row = 1&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;rra[1].xff = 5.0000000000e-01&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;rra[1].cdp_prep[0].value = NaN&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;rra[1].cdp_prep[0].unknown_datapoints = 0&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;rra[2].cf = "MAX"&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;rra[2].rows = 576&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;rra[2].cur_row = 509&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;rra[2].pdp_per_row = 1&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;rra[2].xff = 5.0000000000e-01&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;rra[2].cdp_prep[0].value = NaN&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;rra[2].cdp_prep[0].unknown_datapoints = 0&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;...&lt;/blockquote&gt;yup that all looks good, (to me). So lets graph by hand:&lt;br /&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;rrdtool graphv /var/www/munin/localdomain/localhost.localdomain-acpi_volt-month.png \&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;-W "Alexx Roche" --end now --start end-33d \&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;DEF:gvolt0=/var/lib/munin/localdomain/localhost.localdomain-acpi_volt-volt0-g.rrd:42:AVERAGE \&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;DEF:ivolt0=/var/lib/munin/localdomain/localhost.localdomain-acpi_volt-volt0-g.rrd:42:MIN \&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;DEF:avolt0=/var/lib/munin/localdomain/localhost.localdomain-acpi_volt-volt0-g.rrd:42:MAX \&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;CDEF:cvolt0=gvolt0 \&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;DEF:gvolt1=/var/lib/munin/localdomain/localhost.localdomain-acpi_volt-volt1-g.rrd:42:AVERAGE \&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;DEF:ivolt1=/var/lib/munin/localdomain/localhost.localdomain-acpi_volt-volt1-g.rrd:42:MIN \&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;DEF:avolt1=/var/lib/munin/localdomain/localhost.localdomain-acpi_volt-volt1-g.rrd:42:MAX \&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;LINE1.6:gvolt0#22ff22:Full LINE1.6:gvolt1#0022ff:capacity&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;yup, that works, (but does not look pretty.) So lets keep adding configurations.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;rrdtool graphv /var/www/munin/localdomain/localhost.localdomain-acpi_volt-month.png \&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;--title "Voltages - by month" \&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;--end now --start end-33d \&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;DEF:gvolt0=/var/lib/munin/localdomain/localhost.localdomain-acpi_volt-volt0-g.rrd:42:AVERAGE \&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;DEF:ivolt0=/var/lib/munin/localdomain/localhost.localdomain-acpi_volt-volt0-g.rrd:42:MIN \&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;DEF:avolt0=/var/lib/munin/localdomain/localhost.localdomain-acpi_volt-volt0-g.rrd:42:MAX \&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;CDEF:cvolt0=gvolt0 \&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;DEF:gvolt1=/var/lib/munin/localdomain/localhost.localdomain-acpi_volt-volt1-g.rrd:42:AVERAGE \&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;DEF:ivolt1=/var/lib/munin/localdomain/localhost.localdomain-acpi_volt-volt1-g.rrd:42:MIN \&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;DEF:avolt1=/var/lib/munin/localdomain/localhost.localdomain-acpi_volt-volt1-g.rrd:42:MAX \&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;CDEF:cvolt1=gvolt1 \&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;--font LEGEND:7:monospace \&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;--font UNIT:7:/usr/share/munin/VeraMono.ttf \&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;--font AXIS:7:/usr/share/munin/VeraMono.ttf \&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;--base 1000 \&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;--vertical-label "Volt" \&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;--height 175 \&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;--width 400 \&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;--imgformat PNG \&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;COMMENT:" " \&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;COMMENT:" Cur\:" \&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;COMMENT:"Min\:" \&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;COMMENT:"Avg\:" \&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;COMMENT:"Max\: \j" \&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;LINE1.6:gvolt0#22ff22:Full &amp;nbsp;\&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;GPRINT:cvolt0:LAST:%6.2lf%s \&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;GPRINT:ivolt0:MIN:%6.2lf%s \&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;GPRINT:gvolt0:AVERAGE:%6.2lf%s \&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;GPRINT:"avolt0:MAX:%6.2lf%s\j" \&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;LINE1.6:gvolt1#0022ff:capacity &amp;nbsp;\&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;GPRINT:cvolt1:LAST:%6.2lf%s \&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;GPRINT:ivolt1:MIN:%6.2lf%s \&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;GPRINT:gvolt1:AVERAGE:%6.2lf%s \&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;GPRINT:"avolt1:MAX:%6.2lf%s\j" \&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;"COMMENT:Last update (by LxR)\: Fri Jan 27 16\:45\:03 2012\r"&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;ah ha! --logarithmic seems to break it. Just for the monthly graph? (Some may ask why I was graphic logarithmically rational numbers between 0..100 but that is not the point.)&lt;br /&gt;&amp;nbsp;I do not see why munin would not alert or at least log, (somewhere in /var/log/munin/) something to mention that the graphing did not happen, (and even more oddly, for just one of the four graphs.)&lt;br /&gt;&lt;br /&gt;So I changed acpi_volt to&amp;nbsp;graph_args =&amp;gt; '-1 0' and now I have all four... but I still do not know why rrdtool refused to graph. (Part of me want to keep the .rrd so that others can test it, but I'm not sure how much help that would be.)&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3617485390135312686-5221596513197924227?l=www.alexx.net' alt='' /&gt;&lt;/div&gt;</description><link>http://www.alexx.net/2012/01/munin-about-logarithmically.html</link><author>noreply@blogger.com (alexx)</author><thr:total>0</thr:total></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-3617485390135312686.post-2322686111763693049</guid><pubDate>Thu, 26 Jan 2012 17:21:00 +0000</pubDate><atom:updated>2012-01-26T17:21:34.627Z</atom:updated><category domain='http://www.blogger.com/atom/ns#'>grammar</category><category domain='http://www.blogger.com/atom/ns#'>logic</category><category domain='http://www.blogger.com/atom/ns#'>English</category><title>Grandma Nazi</title><description>I am not a grammar Nazi. That would be like Stephen Fry applying to join the SS in 1941's Germany.&lt;br /&gt;&lt;br /&gt;Everyone is somewhere on the line from zero to &lt;a href="http://en.wikipedia.org/wiki/Heinrich_Himmler" title="Heinrich Himmler"&gt;Himmler&lt;/a&gt; when it come to various typographic and logical errors. The one I want to mention, (though I hear it more often than read it) is:&lt;br /&gt;&lt;br /&gt;&lt;div style="font-family: &amp;quot;Trebuchet MS&amp;quot;,sans-serif;"&gt;"Very unique"&lt;/div&gt;&lt;br /&gt;Please stop trying to define degrees of uniqueness; Either something is unique or it isn't.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3617485390135312686-2322686111763693049?l=www.alexx.net' alt='' /&gt;&lt;/div&gt;</description><link>http://www.alexx.net/2012/01/grandma-nazi.html</link><author>noreply@blogger.com (alexx)</author><thr:total>0</thr:total></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-3617485390135312686.post-7431861531697112710</guid><pubDate>Sun, 15 Jan 2012 18:00:00 +0000</pubDate><atom:updated>2012-01-19T20:11:56.219Z</atom:updated><category domain='http://www.blogger.com/atom/ns#'>match-making</category><category domain='http://www.blogger.com/atom/ns#'>matchmaking</category><category domain='http://www.blogger.com/atom/ns#'>maths</category><category domain='http://www.blogger.com/atom/ns#'>Chart::Clicker</category><category domain='http://www.blogger.com/atom/ns#'>bash</category><category domain='http://www.blogger.com/atom/ns#'>graph</category><category domain='http://www.blogger.com/atom/ns#'>perl</category><category domain='http://www.blogger.com/atom/ns#'>Half your age plus seven</category><category domain='http://www.blogger.com/atom/ns#'>age</category><category domain='http://www.blogger.com/atom/ns#'>match-making graph</category><category domain='http://www.blogger.com/atom/ns#'>bc</category><title>Match-making Age Ranges</title><description>Many years ago I was told that, "Half your age plus seven years is the girlfriend limit."&lt;br /&gt;&lt;br /&gt;This immediately seemed both sexist and mathematically incompetent, but just as "Feed a cold, starve a fever" isn't medical advice, (it is reassurance for young mothers who are panicking that their feverish child isn't eating,) it is just a guide-line, ( or in that case - &amp;nbsp;a throw-away anecdote at some debutante party in London.)&lt;br /&gt;&lt;br /&gt;What about those looking to date someone older? This guide can easily be reversed as, "Your age minus seven, doubled."&lt;br /&gt;&lt;br /&gt;Mathematically, (where x is your age),&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;lower_limit = (x/2)+7&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; upper_limit = 2(x-7)&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Some time later I was looking for mathematically significant differences between two numbers. &lt;i&gt;This is an area of statistics where arguments are had over tea.&lt;/i&gt;&lt;br /&gt;&lt;br /&gt;I found, on one rather well written site: (I did not bookmark it, sorry.)&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;( ( x - y ) / 2 ) ^2 &amp;nbsp;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;which might not look like much but I rather liked it. (Here y is "their age" for lower limit, and ^2 means "to the power of two" i.e. squared.) &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;It took a while, but eventually I made the connection between these two and the obvious next move was to graph them. I had already found, with a quick script, the intersection at 34 and 54 by hand, (once I noticed that the output of the two functions was not parallel, I had to search,) but somehow I had missed the one at 49, (see! this is why graphs are cool.)&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;a href="http://1.bp.blogspot.com/-vVXSI4mWcLw/Txh2hLy95jI/AAAAAAAAAC0/vthtJZxRPbU/s1600/14_to_70_match_making3.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="480" src="http://1.bp.blogspot.com/-vVXSI4mWcLw/Txh2hLy95jI/AAAAAAAAAC0/vthtJZxRPbU/s640/14_to_70_match_making3.png" width="640" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;/div&gt;(&lt;i&gt;I was going to add a vertical line marking the age of consent, but that is a topic for another post.&lt;/i&gt;)&lt;br /&gt;&lt;br /&gt;I have added some sudo-random labels on the graph, using gimp, so that I could refer to particular areas more easily, (see I'm thinking of you.)&lt;br /&gt;&lt;br /&gt;The first thing that is worth noting is that the &lt;a href="http://en.wiktionary.org/wiki/cougar#Noun"&gt;cougar limit&lt;/a&gt;, &lt;span class="Apple-style-span" style="font-size: x-small;"&gt;[yes, I typoed in the graph]&lt;/span&gt; and the &lt;a href="http://en.wiktionary.org/wiki/sugar_parent"&gt;sugar limit&lt;/a&gt; are not both straight lines. This is not due to some form of ageism or sexism, but is due to the use of an odd number in "half your age plus". If it was half your age plus six then they would both be straight.&lt;br /&gt;&lt;br /&gt;We can see stepping in the two stats lines, (marked mathematically lower and upper). So the question there becomes, why are they stepping at 18, 24, 32, 40, 50, 60.&lt;span class="Apple-style-span" style="font-size: x-small;"&gt; [ I know that I have three errors in the graph: &lt;/span&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;msl&lt;/span&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;{18,32,50} should all be +1 ]&lt;/span&gt;.&lt;br /&gt;Are these square numbers? Is there something about their factors? How are they related?&lt;br /&gt;&lt;br /&gt;The thing I like here is that when you take the output of the two simple equations that is nearest to x, (your age) you end up with a rectification of this old match-makers guide.&lt;br /&gt;If you are a parent then you can explain to your daughter why, when she is sixteen, a twenty year-old boyfriend should only happen in porno-land, (and other fictitious realms.)&lt;br /&gt;&lt;br /&gt;So who ends up in the perpetuity zone? If you imagine having a crush on an older film star, (say forty years-old) when you were younger, (e.g. twenty). By the time you are fifty they would be seventy. If you happened to be compatible when you meant thirty years later, they would be in the perpetuity zone, and in this case I could see people making exceptions, (humans being social creatures.)&lt;br /&gt;&lt;br /&gt;Despite my choice of labels, I would recommend that everyone stay within the cradle-snatching:Tapping the Grave areas.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Technical details&lt;/b&gt;&lt;br /&gt;Data generated using a &lt;a href="https://github.com/alexxroche/AIF/blob/master/scripts/shell/match_maker"&gt;bash script&lt;/a&gt;&amp;nbsp;and bc.&lt;br /&gt;Graph generated using cairo, Chart::Clicker and a &lt;a href="https://github.com/alexxroche/AIF/blob/master/scripts/perl/match_Maker_graph.pl"&gt;perl script&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;(&lt;/span&gt;&lt;i&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt; The functionality of the bash script could be extended to calculate how long you would have to wait until someone entered the perpetuity zone. &lt;/span&gt;&lt;/i&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;)&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3617485390135312686-7431861531697112710?l=www.alexx.net' alt='' /&gt;&lt;/div&gt;</description><link>http://www.alexx.net/2012/01/match-making-age-ranges.html</link><author>noreply@blogger.com (alexx)</author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/-vVXSI4mWcLw/Txh2hLy95jI/AAAAAAAAAC0/vthtJZxRPbU/s72-c/14_to_70_match_making3.png' height='72' width='72'/><thr:total>0</thr:total></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-3617485390135312686.post-565330546202348557</guid><pubDate>Sat, 14 Jan 2012 14:15:00 +0000</pubDate><atom:updated>2012-05-29T10:53:15.445+01:00</atom:updated><category domain='http://www.blogger.com/atom/ns#'>mbsync</category><category domain='http://www.blogger.com/atom/ns#'>howto</category><category domain='http://www.blogger.com/atom/ns#'>email</category><category domain='http://www.blogger.com/atom/ns#'>backup</category><category domain='http://www.blogger.com/atom/ns#'>gmail</category><category domain='http://www.blogger.com/atom/ns#'>guide</category><title>Email Archive; How do you do yours?</title><description>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;If you are anything like me, you have an ever growing pile of email. It sits on a server that does have IMAP4 access and you &lt;i&gt;might&lt;/i&gt;&amp;nbsp;even check it using a client like &lt;a href="http://www.getthunderbird.com/"&gt;Thunderbird&lt;/a&gt;, but for the most part you just use the webmail interface. Since &lt;a href="http://roundcube.net/"&gt;Roundcube&lt;/a&gt; and gmail the email client has rather had its day... or has it.&lt;br /&gt;&lt;br /&gt;Why not install and fire up a copy of Thunderbird, (it is free). Well I'll tell you why not, (or rather why.) You can use the client to make a backup of all the messages that you received and sent. (If Google goes bust for trying to bind G+ into your searches, you will be thankful to have a backup! Remember: Nothing is forever.)&lt;br /&gt;If you got a new computer in the last six months you will have oodles of disk space; Why not use some of it for something useful?&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Remember than IMAP just "looks" at the messages on the server.&lt;/b&gt; You &lt;b&gt;have&lt;/b&gt;&amp;nbsp;to copy them into "Local Folders".&amp;nbsp;Then you can safely go online and delete any of your old messages. Please make sure that you have a local copy, (heck, with the price of consumer disk-space make two!) before you delete any messages.&lt;br /&gt;&lt;br /&gt;If this blog were a film, and you had been reading the subtitles, you will know that I'm a fan of fire-and-forget automation using scripting. So how do I do it?&lt;br /&gt;&lt;br /&gt;If you are not using a computer that has UNIX or Linux installed then this may be as far as you need to go today, (if&amp;nbsp;~/backups/" is gibberish to you then you need to find a good &amp;nbsp;UNIX / Linux Terminal Tutorial.)&lt;br /&gt;&lt;br /&gt;In 2005 I used http://freshmeat.net/projects/imapsync (now called http://freecode.com/projects/imapsync). That was a great project, but now it is a great product.. so it&amp;nbsp;is no longer free (though https://github.com/imapsync/imapsync seems free.) So you look for something else&amp;nbsp;and find mbsync http://isync.sourceforge.net/mbsync.html - maybe a little harder to understand at first, so here is how I use it, (with a cut-n-paste example config):&lt;br /&gt;&lt;div&gt;&lt;br /&gt;&lt;br /&gt;Install mbsync:&lt;/div&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace; font-size: x-small;"&gt;aptitude install isync&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;(if you are on debian/Ubuntu)&lt;br /&gt;&lt;br /&gt;cron + wrapper_script + &lt;a href="http://isync.sourceforge.net/mbsync.html"&gt;mbsync&lt;/a&gt;&amp;nbsp;(I used to use&amp;nbsp;&lt;a href="http://freecode.com/projects/imapsync"&gt;imapsync&lt;/a&gt;, as I mentioned).&lt;br /&gt;&lt;br /&gt;For this example we are going to backup two gmail accounts into&amp;nbsp;~/backups/gmail/&lt;br /&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-size: x-large;"&gt;Configure&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-size: large;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-size: large;"&gt;Get certificates&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;We want an encrypted connection, (remember that (since 2008) SSL/TLS will only protect you against casual network snooping!) so we willl have to collect the remote servers certificates&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace; font-size: x-small;"&gt;mkdir -p ~/backups/gmail/;&amp;nbsp;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New',Courier,monospace; font-size: x-small;"&gt;&amp;nbsp; openssl s_client -connect imap.gmail.com:993 -showcerts &amp;gt;&lt;/span&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace; font-size: x-small;"&gt; ~/backups/gmail/certs.pem &amp;lt;/dev/null&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Then we have to write a config file called .mbsync and put it in the root of our home directory:&lt;br /&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-size: large;"&gt;~/.mbsync&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;div style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&lt;span style="font-size: x-small;"&gt;#example&lt;/span&gt;&lt;/div&gt;&lt;div style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&lt;span style="font-size: x-small;"&gt;MaildirStore local&lt;/span&gt;&lt;/div&gt;&lt;div style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&lt;span style="font-size: x-small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&lt;span style="font-size: x-small;"&gt;# where do you want to keep the messages?&lt;/span&gt;&lt;/div&gt;&lt;div style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&lt;span style="font-size: x-small;"&gt;Path ~/backups/gmail/&lt;/span&gt;&lt;/div&gt;&lt;div style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&lt;span style="font-size: x-small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&lt;span style="font-size: x-small;"&gt;# I think of this as the details for one remote account&lt;/span&gt;&lt;/div&gt;&lt;div style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&lt;span style="font-size: x-small;"&gt;IMAPStore just.a.label&lt;/span&gt;&lt;/div&gt;&lt;div style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&lt;span style="font-size: x-small;"&gt;Host imap.gmail.com&lt;/span&gt;&lt;/div&gt;&lt;div style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&lt;span style="font-size: x-small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&lt;span style="font-size: x-small;"&gt;User test-example@gmail.com&lt;/span&gt;&lt;/div&gt;&lt;div style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&lt;span style="font-size: x-small;"&gt;Pass notVERYsecure&lt;/span&gt;&lt;/div&gt;&lt;div style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&lt;span style="font-size: x-small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&lt;span style="font-size: x-small;"&gt;UseIMAPS yes&lt;/span&gt;&lt;/div&gt;&lt;div style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&lt;span style="font-size: x-small;"&gt;CertificateFile /usr/share/purple/ca-certs/&lt;cite&gt;thoughtcrime&lt;/cite&gt;_CA.pem&lt;/span&gt;&lt;/div&gt;&lt;div style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&lt;span style="font-size: x-small;"&gt;CertificateFile ~/backups/gmail/certs.pem&lt;/span&gt;&lt;/div&gt;&lt;div style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&lt;span style="font-size: x-small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&lt;span style="font-size: x-small;"&gt;# You can have the details for as many accounts as you like&lt;/span&gt;&lt;/div&gt;&lt;div style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&lt;span style="font-size: x-small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace; margin: 0px;"&gt;&lt;span style="font-size: x-small;"&gt;IMAPStore work.email&lt;/span&gt;&lt;/div&gt;&lt;div style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace; margin: 0px;"&gt;&lt;span style="font-size: x-small;"&gt;Host imap.gmail.com&lt;/span&gt;&lt;/div&gt;&lt;div style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&lt;span style="font-size: x-small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace; margin: 0px;"&gt;&lt;span style="font-size: x-small;"&gt;User test.work@gmail.com&lt;/span&gt;&lt;/div&gt;&lt;div style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace; margin: 0px;"&gt;&lt;span style="font-size: x-small;"&gt;Pass 4l50notVERYsecure&lt;/span&gt;&lt;/div&gt;&lt;div style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace; margin: 0px;"&gt;&lt;span style="font-size: x-small;"&gt;UseIMAPS yes&lt;/span&gt;&lt;/div&gt;&lt;div style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace; margin: 0px;"&gt;&lt;span style="font-size: x-small;"&gt;CertificateFile /usr/share/purple/ca-certs/Thawte_Premium_Server_CA.pem&lt;/span&gt;&lt;/div&gt;&lt;div style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace; margin: 0px;"&gt;&lt;span style="font-size: x-small;"&gt;CertificateFile ~/backups/gmail/certs.pem&lt;/span&gt;&lt;/div&gt;&lt;div style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&lt;span style="font-size: x-small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&lt;span style="font-size: x-small;"&gt;# Now the "backup instructions"&lt;/span&gt;&lt;/div&gt;&lt;div style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&lt;span style="font-size: x-small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&lt;span style="font-size: x-small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&lt;span style="font-size: x-small;"&gt;Channel my.email&lt;/span&gt;&lt;/div&gt;&lt;div style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&lt;span style="font-size: x-small;"&gt;Master ":just.a.label:[Gmail]/All Mail"&lt;/span&gt;&lt;/div&gt;&lt;div style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&lt;span style="font-size: x-small;"&gt;Slave :local:test-example&lt;/span&gt;&lt;/div&gt;&lt;div style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&lt;span style="font-size: x-small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&lt;span style="font-size: x-small;"&gt;Sync PullNew&lt;/span&gt;&lt;/div&gt;&lt;div style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&lt;span style="font-size: x-small;"&gt;Create Slave&lt;/span&gt;&lt;/div&gt;&lt;div style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&lt;span style="font-size: x-small;"&gt;SyncState *&lt;/span&gt;&lt;/div&gt;&lt;div style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&lt;span style="font-size: x-small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&lt;span style="font-size: x-small;"&gt;# The "Channel" is used when invoking mbsync to tell it which Channel to "watch"&lt;/span&gt;&lt;/div&gt;&lt;div style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&lt;span style="font-size: x-small;"&gt;# Master tells it which IMAPStore to look at, (in this case look for the one called "just.a.label"&lt;/span&gt;&lt;/div&gt;&lt;div style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&lt;span style="font-size: x-small;"&gt;# Slave is where to put it, (this _can_ be a remote IMAP server! Cool for migrations)&lt;/span&gt;&lt;/div&gt;&lt;div style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&lt;span style="font-size: x-small;"&gt;# the last three are more example settings. Check the man for more.&lt;/span&gt;&lt;/div&gt;&lt;div style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&lt;span style="font-size: x-small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&lt;span style="font-size: x-small;"&gt;# A Channel can pull from multiple accounts or server at the same time!&lt;/span&gt;&lt;/div&gt;&lt;div style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&lt;span style="font-size: x-small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&lt;div style="margin: 0px;"&gt;&lt;span style="font-size: x-small;"&gt;Channel both &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;#&amp;nbsp;&lt;/span&gt;&lt;/div&gt;&lt;div style="margin: 0px;"&gt;&lt;span style="font-size: x-small;"&gt;Master ":just.a.label:[Gmail]/All Mail" &amp;nbsp;# from&lt;/span&gt;&lt;/div&gt;&lt;div style="margin: 0px;"&gt;&lt;span style="font-size: x-small;"&gt;Master ":work.email:[Gmail]/All Mail" &amp;nbsp;# from&lt;/span&gt;&lt;/div&gt;&lt;div style="margin: 0px;"&gt;&lt;span style="font-size: x-small;"&gt;Slave :local:combined &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;# to&lt;/span&gt;&lt;/div&gt;&lt;div style="margin: 0px;"&gt;&lt;span style="font-size: x-small;"&gt;Sync PullNew &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;# how&lt;/span&gt;&lt;/div&gt;&lt;div style="margin: 0px;"&gt;&lt;span style="font-size: x-small;"&gt;Create Slave &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;# do&lt;/span&gt;&lt;/div&gt;&lt;div style="margin: 0px;"&gt;&lt;span style="font-size: x-small;"&gt;SyncState * &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; # what&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&lt;span style="font-size: x-small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&lt;span style="font-size: x-small;"&gt;#End .mbsync config file&lt;/span&gt;&lt;/div&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-size: large;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-size: large;"&gt;&lt;/span&gt;&lt;br /&gt;Add a crontab entry&lt;br /&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New',Courier,monospace;"&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace; font-size: x-small;"&gt;58 */8 * * * &amp;nbsp;echo 'yes'|mbsync -q both 2&amp;gt;/dev/null&lt;/span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New',Courier,monospace;"&gt;#I know I should listen for errors but it warns about certs&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New',Courier,monospace;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New',Courier,monospace;"&gt;The "echo 'yes'" hacks us past an ssl warning. There is probably a better way to solve this problem, but this worked for me.&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New',Courier,monospace;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;div&gt;But what of the&amp;nbsp;&lt;span class="Apple-style-span" style="font-size: small;"&gt;wrapper_script &lt;/span&gt;that you mentioned?&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;Well by calling a wrapper script, (in my case perl) it is trivial to change the path based on the date:&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New',Courier,monospace;"&gt;&lt;b&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;s%^&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New',Courier,monospace;"&gt;&lt;b&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;Path ~/backups/gmail/%&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New',Courier,monospace;"&gt;&lt;b&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;Path ~/backups/gmail/`echo -n \$(date +%Y)`/%&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;that way each year get a separate backup. I do end up with some duplication while I delete the old messages on the server, but duplicates are better than lost data.&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;Recovery&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;There isn't much point in having a backup if you can't use it. I did used to just use grep to search but I found it faster to index ~/.backup/gmail using &lt;a href="http://www.mozilla.org/projects/thunderbird/"&gt;Thunderbird&lt;/a&gt; and then search for messages within that.. which brings me full circle back to Thunderbird. Thank you Mozilla. Keep up the good work.&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;[update] I've moved to balsa as a client and that can read the Maildir++ format without having to add an IMAP4 server. I tried claws but they no longer support Maildir. &lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3617485390135312686-565330546202348557?l=www.alexx.net' alt='' /&gt;&lt;/div&gt;</description><link>http://www.alexx.net/2012/01/email-archive-how-do-you-do-yours.html</link><author>noreply@blogger.com (alexx)</author><thr:total>0</thr:total></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-3617485390135312686.post-7737028265364694450</guid><pubDate>Fri, 13 Jan 2012 14:52:00 +0000</pubDate><atom:updated>2012-01-13T14:53:29.222Z</atom:updated><category domain='http://www.blogger.com/atom/ns#'>no seeds</category><category domain='http://www.blogger.com/atom/ns#'>The year without winter</category><category domain='http://www.blogger.com/atom/ns#'>gardening</category><title>The Year Without Winter</title><description>It is Friday the Thirteen, January 2012. I am looking out of the window and the sun is shining. It is 4 degrees Celsius, and I'm wounding where the delivery of winter is going to happen. 1816 may have been "the year without summer" but the end of 2011 is the year without winter. This may be 1947 all over again, but so far Autumn had, for me, a lower average temperature than winter. (I find myself, today, in France and to help the rest of this entry make sense I'm hangin' round Latitude 47 North.)&lt;br /&gt;&lt;br /&gt;[&amp;nbsp;Now that I try to talk about winter and pin it into a year, as we can with a summer it seems that the New year should be moved to be located between winter and spring. Having it in the depth of winter, (which winter where? Did you see one? ) to celebrate the "returning of the light" seems a little antiquated. It may be a dull time in the farming world and an excuse for a party to help us drudge through the long dark nights is probably a good thing, but why should our calendar dictate when to party - take control people! You write on your calendar, don't let your calendar write your life. ]&lt;br /&gt;&lt;br /&gt;So am I talking about winter 2011 or winter 2012? As November..December 2011 felt more like spring, in this case I'm talking about winter 2012.&lt;br /&gt;&lt;br /&gt;Since the early eighties, (1983 to be exact) I've been noticing the winter seems to recede, (like my hair). I remember thinking, (and reading my diary from that time) that winter no longer included November. By the nineties December was leaving the party, and now January seems to be defecting to the Autumn camp, (or the mid-winter-spring as many of my plants seem to think.)&lt;br /&gt;&lt;br /&gt;As October 2011 became November 2011 I was starting to get worried about seeds. Let me explain: Each year I like to have at least one basil plant on my window-sill. They are very easy to look after - I just water mine a little every other day, or when the soil start to turn a shade lighter brown. ( They can drip oils, so make sure, if you have them in pots, that they don't drip on anything that matters.) &amp;nbsp;I usually stop picking the leaves as I start to think about Christmas presents. A few weeks later they produce little white flowers. I brush them with a small downy feather to transfer pollen, and then I collect the small dark brown seeds, ready to plant in the spring. So with no seeds there are no plants. With no flowers there are no seeds... so I was getting worried. I checked some other plants in the garden and noticed that the lemon-balm, (mine spreads like a weed) didn't have a single flower... even today, (hence the entry.)&lt;br /&gt;&lt;br /&gt;My avocado plant has, over the last few weeks, put on a growth spurt as if it already received its invitation to spring.&lt;br /&gt;&lt;br /&gt;So it feels fishy, like something is up. I have not been making detailed enough measurements to have any certainty beyond that. My feeling about the weather is probably some form of confirmation bias, (I hope it is), or just because I finally managed to, (in 2011) get round to reading&amp;nbsp;&lt;i&gt;&lt;b&gt;The Body Electric: Electromagnetism and the Foundation of Life, &lt;span class="Apple-style-span" style="font-style: normal;"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;(ISBN&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/i&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;0-688-06971-1).&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;( I don't intend to review that here, but I did find it very interesting. I tried to maintain a suitable level of scepticism for a man investigating something that was outside of his field, but if his passion for research was anything like as compelling as his writing then it would mean that his voice was more valid than my internal detractor.)&amp;nbsp;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;I hope that the lack of seeds is because of something that I did, (or am doing) and that 2012 is not going to see a run on the seed-banks to rival the 2011, (oh you know where this analogy is going.)&lt;br /&gt;&lt;br /&gt;Setting my paranoia aside for a moment, what would the lack of a winter mean for a temperate European climate? The first thing that comes to mind is, an excess of insects surviving to spring, (well for some the first thing would be a lack of good skiing, but I'm trying to think more generally.)&lt;br /&gt;&amp;nbsp;More insects would be good for those that predate upon them, but could devastate crops and aid in the spread of disease, (the mosquitoes will focus on malaria, the others can help spread the other nasties.) On a more positive note, the increase in temperature may reduce the general susceptibility of the population to contracting influenza.&lt;br /&gt;&lt;br /&gt;I'm going to get back to work now. I hope that the seeds that I have left over from 2011 will germinate this spring.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3617485390135312686-7737028265364694450?l=www.alexx.net' alt='' /&gt;&lt;/div&gt;</description><link>http://www.alexx.net/2012/01/it-is-friday-thirteen-january-2012.html</link><author>noreply@blogger.com (alexx)</author><thr:total>1</thr:total></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-3617485390135312686.post-3982167829042471183</guid><pubDate>Tue, 10 Jan 2012 19:10:00 +0000</pubDate><atom:updated>2012-01-10T19:10:04.015Z</atom:updated><category domain='http://www.blogger.com/atom/ns#'>Valerie Aurora</category><category domain='http://www.blogger.com/atom/ns#'>crytography</category><category domain='http://www.blogger.com/atom/ns#'>hashes</category><category domain='http://www.blogger.com/atom/ns#'>cryto</category><category domain='http://www.blogger.com/atom/ns#'>cryptographic</category><title>SHA-1 countdown...</title><description>If you are into security then you will probably have already found, (or know)&amp;nbsp;&lt;em&gt;Valerie Aurora,&lt;/em&gt;&amp;nbsp;and if you are not then this might not interest you. I was reading some of her stuff and loved this, &lt;span class="Apple-style-span" style="font-size: x-small;"&gt;(so much that I stole^wadapted&amp;nbsp;it.)&lt;/span&gt;&amp;nbsp;So, &lt;a href="http://valerieaurora.org/hash.html"&gt;thank you Valerie&lt;/a&gt; for:&lt;br /&gt;&lt;br /&gt;&lt;style type="text/css"&gt;.&lt;span class="goog-spellcheck-word" style="background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: yellow; background-position: initial initial; background-repeat: initial initial; "&gt;vt&lt;/span&gt; {  writing-mode:&lt;span class="goog-spellcheck-word" style="background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: yellow; background-position: initial initial; background-repeat: initial initial; "&gt;tb&lt;/span&gt;-&lt;span class="goog-spellcheck-word" style="background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: yellow; background-position: initial initial; background-repeat: initial initial; "&gt;rl&lt;/span&gt;;  -&lt;span class="goog-spellcheck-word" style="background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: yellow; background-position: initial initial; background-repeat: initial initial; "&gt;webkit&lt;/span&gt;-transform:rotate(90deg);  -&lt;span class="goog-spellcheck-word" style="background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: yellow; background-position: initial initial; background-repeat: initial initial; "&gt;moz&lt;/span&gt;-transform:rotate(90deg);  -o-transform: rotate(90deg);  white-space:&lt;span class="goog-spellcheck-word" style="background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: yellow; background-position: initial initial; background-repeat: initial initial; "&gt;nowrap&lt;/span&gt;;  bottom:0; } tr, &lt;span class="goog-spellcheck-word" style="background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: yellow; background-position: initial initial; background-repeat: initial initial; "&gt;td&lt;/span&gt; { white-space:&lt;span class="goog-spellcheck-word" style="background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: yellow; background-position: initial initial; background-repeat: initial initial; "&gt;nowrap&lt;/span&gt;; } &lt;/style&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;/div&gt;&lt;table border="1"&gt; &lt;tbody&gt;&lt;tr&gt;&lt;th colspan="22"&gt;Life cycles of popular cryptographic hashes (the "Breakout" chart)&lt;/th&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Function&lt;b&gt;&lt;span class="Apple-style-span" style="font-size: large;"&gt;\&lt;/span&gt;&lt;/b&gt;Year&lt;/td&gt;&lt;td&gt;90&lt;/td&gt;&lt;td&gt;91&lt;/td&gt;&lt;td&gt;92&lt;/td&gt;&lt;td&gt;93&lt;/td&gt;&lt;td&gt;94&lt;/td&gt;&lt;td&gt;95&lt;/td&gt;&lt;td&gt;96&lt;/td&gt;&lt;td&gt;97&lt;/td&gt;&lt;td&gt;98&lt;/td&gt;&lt;td&gt;99&lt;/td&gt;&lt;td&gt;00&lt;/td&gt;&lt;td&gt;01&lt;/td&gt;&lt;td&gt;02&lt;/td&gt;&lt;td&gt;03&lt;/td&gt;&lt;td&gt;04&lt;/td&gt;&lt;td&gt;05&lt;/td&gt;&lt;td&gt;06&lt;/td&gt;&lt;td&gt;07&lt;/td&gt;&lt;td&gt;08&lt;/td&gt;&lt;td&gt;09&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Snefru&lt;/td&gt;&lt;td bgcolor="lightgreen"&gt;&lt;/td&gt;&lt;td bgcolor="lightgreen"&gt;&lt;/td&gt;&lt;td bgcolor="lightgreen"&gt;&lt;/td&gt;&lt;td bgcolor="red"&gt;&lt;/td&gt;&lt;td bgcolor="red"&gt;&lt;/td&gt;&lt;td bgcolor="red"&gt;&lt;/td&gt;&lt;td bgcolor="red"&gt;&lt;/td&gt;&lt;td bgcolor="red"&gt;&lt;/td&gt;&lt;td bgcolor="red"&gt;&lt;/td&gt;&lt;td bgcolor="red"&gt;&lt;/td&gt;&lt;td bgcolor="red"&gt;&lt;/td&gt;&lt;td bgcolor="red"&gt;&lt;/td&gt;&lt;td bgcolor="red"&gt;&lt;/td&gt; &lt;td bgcolor="red"&gt;&lt;/td&gt;&lt;td bgcolor="red"&gt;&lt;/td&gt;&lt;td bgcolor="red"&gt;&lt;/td&gt;&lt;td bgcolor="red"&gt;&lt;/td&gt;&lt;td bgcolor="red"&gt;&lt;/td&gt;&lt;td bgcolor="red"&gt;&lt;/td&gt;&lt;td bgcolor="red"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;MD4&lt;/td&gt;&lt;td bgcolor="lightgreen"&gt;&lt;/td&gt;&lt;td bgcolor="orange"&gt;&lt;/td&gt;&lt;td bgcolor="orange"&gt;&lt;/td&gt;&lt;td bgcolor="orange"&gt;&lt;/td&gt;&lt;td bgcolor="orange"&gt;&lt;/td&gt; &lt;td bgcolor="red"&gt;&lt;/td&gt;&lt;td bgcolor="red"&gt;&lt;/td&gt;&lt;td bgcolor="red"&gt;&lt;/td&gt;&lt;td bgcolor="red"&gt;&lt;/td&gt;&lt;td bgcolor="red"&gt;&lt;/td&gt;&lt;td bgcolor="red"&gt;&lt;/td&gt;&lt;td bgcolor="red"&gt;&lt;/td&gt;&lt;td bgcolor="red"&gt;&lt;/td&gt;&lt;td bgcolor="red"&gt;&lt;/td&gt;&lt;td bgcolor="red"&gt;&lt;/td&gt;&lt;td bgcolor="red"&gt;&lt;/td&gt;&lt;td bgcolor="red"&gt;&lt;/td&gt;&lt;td bgcolor="red"&gt;&lt;/td&gt;&lt;td bgcolor="red"&gt;&lt;/td&gt;&lt;td bgcolor="red"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;MD5&lt;/td&gt;&lt;td bgcolor="white"&gt;&lt;/td&gt;&lt;td bgcolor="white"&gt;&lt;/td&gt;&lt;td bgcolor="lightgreen"&gt;&lt;/td&gt;&lt;td bgcolor="lightgreen"&gt;&lt;/td&gt;&lt;td bgcolor="orange"&gt;&lt;/td&gt;&lt;td bgcolor="orange"&gt;&lt;/td&gt;&lt;td bgcolor="orange"&gt;&lt;/td&gt;&lt;td bgcolor="orange"&gt;&lt;/td&gt;&lt;td bgcolor="orange"&gt;&lt;/td&gt;&lt;td bgcolor="orange"&gt;&lt;/td&gt;&lt;td bgcolor="orange"&gt;&lt;/td&gt;&lt;td bgcolor="orange"&gt;&lt;/td&gt;&lt;td bgcolor="orange"&gt;&lt;/td&gt;&lt;td bgcolor="orange"&gt;&lt;/td&gt; &lt;td bgcolor="red"&gt;&lt;/td&gt;&lt;td bgcolor="red"&gt;&lt;/td&gt;&lt;td bgcolor="red"&gt;&lt;/td&gt;&lt;td bgcolor="red"&gt;&lt;/td&gt;&lt;td bgcolor="red"&gt;&lt;/td&gt;&lt;td bgcolor="red"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;MD2&lt;/td&gt;&lt;td bgcolor="white"&gt;&lt;/td&gt;&lt;td bgcolor="white"&gt;&lt;/td&gt;&lt;td bgcolor="lightgreen"&gt;&lt;/td&gt;&lt;td bgcolor="lightgreen"&gt;&lt;/td&gt;&lt;td bgcolor="lightgreen"&gt;&lt;/td&gt;&lt;td bgcolor="orange"&gt;&lt;/td&gt; &lt;td bgcolor="orange"&gt;&lt;/td&gt;&lt;td bgcolor="orange"&gt;&lt;/td&gt;&lt;td bgcolor="orange"&gt;&lt;/td&gt;&lt;td bgcolor="orange"&gt;&lt;/td&gt;&lt;td bgcolor="orange"&gt;&lt;/td&gt;&lt;td bgcolor="orange"&gt;&lt;/td&gt;&lt;td bgcolor="orange"&gt;&lt;/td&gt;&lt;td bgcolor="orange"&gt;&lt;/td&gt;&lt;td bgcolor="red"&gt;&lt;/td&gt;&lt;td bgcolor="red"&gt;&lt;/td&gt;&lt;td bgcolor="red"&gt;&lt;/td&gt;&lt;td bgcolor="red"&gt;&lt;/td&gt;&lt;td bgcolor="red"&gt;&lt;/td&gt;&lt;td bgcolor="red"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt; &lt;td&gt;RIPEMD&lt;/td&gt;&lt;td bgcolor="white"&gt;&lt;/td&gt;&lt;td bgcolor="white"&gt;&lt;/td&gt;&lt;td bgcolor="lightgreen"&gt;&lt;/td&gt;&lt;td bgcolor="lightgreen"&gt;&lt;/td&gt;&lt;td bgcolor="lightgreen"&gt;&lt;/td&gt;&lt;td bgcolor="lightgreen"&gt;&lt;/td&gt;&lt;td bgcolor="lightgreen"&gt;&lt;/td&gt;&lt;td bgcolor="orange"&gt;&lt;/td&gt;&lt;td bgcolor="orange"&gt;&lt;/td&gt;&lt;td bgcolor="orange"&gt;&lt;/td&gt;&lt;td bgcolor="orange"&gt;&lt;/td&gt;&lt;td bgcolor="orange"&gt;&lt;/td&gt;&lt;td bgcolor="orange"&gt;&lt;/td&gt;&lt;td bgcolor="orange"&gt;&lt;/td&gt;&lt;td bgcolor="red"&gt;&lt;/td&gt; &lt;td bgcolor="red"&gt;&lt;/td&gt;&lt;td bgcolor="red"&gt;&lt;/td&gt;&lt;td bgcolor="red"&gt;&lt;/td&gt;&lt;td bgcolor="red"&gt;&lt;/td&gt;&lt;td bgcolor="red"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;HAVAL-128&lt;/td&gt;&lt;td bgcolor="white"&gt;&lt;/td&gt;&lt;td bgcolor="white"&gt;&lt;/td&gt;&lt;td bgcolor="lightgreen"&gt;&lt;/td&gt;&lt;td bgcolor="lightgreen"&gt;&lt;/td&gt;&lt;td bgcolor="lightgreen"&gt;&lt;/td&gt;&lt;td bgcolor="lightgreen"&gt;&lt;/td&gt;&lt;td bgcolor="lightgreen"&gt;&lt;/td&gt; &lt;td bgcolor="lightgreen"&gt;&lt;/td&gt;&lt;td bgcolor="lightgreen"&gt;&lt;/td&gt;&lt;td bgcolor="lightgreen"&gt;&lt;/td&gt;&lt;td bgcolor="orange"&gt;&lt;/td&gt;&lt;td bgcolor="orange"&gt;&lt;/td&gt;&lt;td bgcolor="orange"&gt;&lt;/td&gt;&lt;td bgcolor="orange"&gt;&lt;/td&gt;&lt;td bgcolor="red"&gt;&lt;/td&gt;&lt;td bgcolor="red"&gt;&lt;/td&gt;&lt;td bgcolor="red"&gt;&lt;/td&gt;&lt;td bgcolor="red"&gt;&lt;/td&gt;&lt;td bgcolor="red"&gt;&lt;/td&gt;&lt;td bgcolor="red"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;SHA-0&lt;/td&gt; &lt;td bgcolor="white"&gt;&lt;/td&gt;&lt;td bgcolor="white"&gt;&lt;/td&gt;&lt;td bgcolor="white"&gt;&lt;/td&gt;&lt;td bgcolor="lightgreen"&gt;&lt;/td&gt;&lt;td bgcolor="lightgreen"&gt;&lt;/td&gt;&lt;td bgcolor="lightgreen"&gt;&lt;/td&gt;&lt;td bgcolor="lightgreen"&gt;&lt;/td&gt;&lt;td bgcolor="lightgreen"&gt;&lt;/td&gt;&lt;td bgcolor="orange"&gt;&lt;/td&gt;&lt;td bgcolor="orange"&gt;&lt;/td&gt;&lt;td bgcolor="orange"&gt;&lt;/td&gt;&lt;td bgcolor="orange"&gt;&lt;/td&gt;&lt;td bgcolor="orange"&gt;&lt;/td&gt;&lt;td bgcolor="orange"&gt;&lt;/td&gt;&lt;td bgcolor="red"&gt;&lt;/td&gt;&lt;td bgcolor="red"&gt;&lt;/td&gt;&lt;td bgcolor="red"&gt;&lt;/td&gt; &lt;td bgcolor="red"&gt;&lt;/td&gt;&lt;td bgcolor="red"&gt;&lt;/td&gt;&lt;td bgcolor="red"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;SHA-1&lt;/td&gt;&lt;td bgcolor="white"&gt;&lt;/td&gt;&lt;td bgcolor="white"&gt;&lt;/td&gt;&lt;td bgcolor="white"&gt;&lt;/td&gt;&lt;td bgcolor="white"&gt;&lt;/td&gt;&lt;td bgcolor="white"&gt;&lt;/td&gt;&lt;td bgcolor="lightgreen"&gt;&lt;/td&gt;&lt;td bgcolor="lightgreen"&gt;&lt;/td&gt;&lt;td bgcolor="lightgreen"&gt;&lt;/td&gt;&lt;td bgcolor="lightgreen"&gt;&lt;/td&gt; &lt;td bgcolor="lightgreen"&gt;&lt;/td&gt;&lt;td bgcolor="lightgreen"&gt;&lt;/td&gt;&lt;td bgcolor="lightgreen"&gt;&lt;/td&gt;&lt;td bgcolor="lightgreen"&gt;&lt;/td&gt;&lt;td bgcolor="lightgreen"&gt;&lt;/td&gt;&lt;td bgcolor="orange"&gt;&lt;/td&gt;&lt;td bgcolor="orange"&gt;&lt;/td&gt;&lt;td bgcolor="orange"&gt;&lt;/td&gt;&lt;td bgcolor="orange"&gt;&lt;/td&gt;&lt;td bgcolor="orange"&gt;&lt;/td&gt;&lt;td bgcolor="orange"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;RIPEMD-128 [1]&lt;/td&gt;&lt;td bgcolor="white"&gt;&lt;/td&gt; &lt;td bgcolor="white"&gt;&lt;/td&gt;&lt;td bgcolor="white"&gt;&lt;/td&gt;&lt;td bgcolor="white"&gt;&lt;/td&gt;&lt;td bgcolor="white"&gt;&lt;/td&gt;&lt;td bgcolor="white"&gt;&lt;/td&gt;&lt;td bgcolor="lightgreen"&gt;&lt;/td&gt;&lt;td bgcolor="lightgreen"&gt;&lt;/td&gt;&lt;td bgcolor="lightgreen"&gt;&lt;/td&gt;&lt;td bgcolor="lightgreen"&gt;&lt;/td&gt;&lt;td bgcolor="lightgreen"&gt;&lt;/td&gt;&lt;td bgcolor="lightgreen"&gt;&lt;/td&gt;&lt;td bgcolor="lightgreen"&gt;&lt;/td&gt;&lt;td bgcolor="lightgreen"&gt;&lt;/td&gt;&lt;td bgcolor="lightgreen"&gt;&lt;/td&gt;&lt;td bgcolor="lightgreen"&gt;&lt;/td&gt;&lt;td bgcolor="lightgreen"&gt;&lt;/td&gt;&lt;td bgcolor="lightgreen"&gt;&lt;/td&gt; &lt;td bgcolor="lightgreen"&gt;&lt;/td&gt;&lt;td bgcolor="lightgreen"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;RIPEMD-160&lt;/td&gt;&lt;td bgcolor="white"&gt;&lt;/td&gt;&lt;td bgcolor="white"&gt;&lt;/td&gt;&lt;td bgcolor="white"&gt;&lt;/td&gt;&lt;td bgcolor="white"&gt;&lt;/td&gt;&lt;td bgcolor="white"&gt;&lt;/td&gt;&lt;td bgcolor="white"&gt;&lt;/td&gt;&lt;td bgcolor="lightgreen"&gt;&lt;/td&gt;&lt;td bgcolor="lightgreen"&gt;&lt;/td&gt;&lt;td bgcolor="lightgreen"&gt;&lt;/td&gt;&lt;td bgcolor="lightgreen"&gt;&lt;/td&gt; &lt;td bgcolor="lightgreen"&gt;&lt;/td&gt;&lt;td bgcolor="lightgreen"&gt;&lt;/td&gt;&lt;td bgcolor="lightgreen"&gt;&lt;/td&gt;&lt;td bgcolor="lightgreen"&gt;&lt;/td&gt;&lt;td bgcolor="lightgreen"&gt;&lt;/td&gt;&lt;td bgcolor="lightgreen"&gt;&lt;/td&gt;&lt;td bgcolor="lightgreen"&gt;&lt;/td&gt;&lt;td bgcolor="lightgreen"&gt;&lt;/td&gt;&lt;td bgcolor="lightgreen"&gt;&lt;/td&gt;&lt;td bgcolor="lightgreen"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;SHA-2 family&lt;/td&gt;&lt;td bgcolor="white"&gt;&lt;/td&gt;&lt;td bgcolor="white"&gt;&lt;/td&gt; &lt;td bgcolor="white"&gt;&lt;/td&gt;&lt;td bgcolor="white"&gt;&lt;/td&gt;&lt;td bgcolor="white"&gt;&lt;/td&gt;&lt;td bgcolor="white"&gt;&lt;/td&gt;&lt;td bgcolor="white"&gt;&lt;/td&gt;&lt;td bgcolor="white"&gt;&lt;/td&gt;&lt;td bgcolor="white"&gt;&lt;/td&gt;&lt;td bgcolor="white"&gt;&lt;/td&gt;&lt;td bgcolor="lightgreen"&gt;&lt;/td&gt;&lt;td bgcolor="lightgreen"&gt;&lt;/td&gt;&lt;td bgcolor="lightgreen"&gt;&lt;/td&gt;&lt;td bgcolor="lightgreen"&gt;&lt;/td&gt;&lt;td bgcolor="lightgreen"&gt;&lt;/td&gt;&lt;td bgcolor="lightgreen"&gt;&lt;/td&gt;&lt;td bgcolor="lightgreen"&gt;&lt;/td&gt;&lt;td bgcolor="lightgreen"&gt;&lt;/td&gt;&lt;td bgcolor="lightgreen"&gt;&lt;/td&gt; &lt;td bgcolor="lightgreen"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="100"&gt;&lt;table border="1"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;th&gt;Key&lt;/th&gt;&lt;td bgcolor="lightgreen"&gt;Unbroken&lt;/td&gt;&lt;td bgcolor="orange"&gt;Weakened&lt;/td&gt;&lt;td bgcolor="red"&gt;Broken&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="100"&gt;[1] Note that 128-bit hashes are at best 2^64 complexity to break;&lt;br /&gt;using a 128-bit hash is irresponsible based on sheer digest length.&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;&lt;br /&gt;So this post may be more of a bookmark than information. Actually I found this wonderful representation &amp;nbsp;through&amp;nbsp;&lt;a href="http://blog.valerieaurora.org/2011/06/22/updating-lifetimes-of-cryptographic-hash-functions/"&gt;her blog.valerieaurora.org&lt;/a&gt;. I'm sure that there are others that would like to see an updated page with the addition of all of the entries from&amp;nbsp;&lt;a href="http://www.larc.usp.br/~pbarreto/hflounge.html"&gt;The Hash Function Lounge&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;I remember when MD5 fell and we created our own x509 root certificate. I'm still waiting, like a child waiting for Christmas morning, for SHA-1 to publically fall.&lt;br /&gt;&lt;br /&gt;So how many of you have noticed that in 1996 RIPEMD was being attacked and RIPEMD-160 was being created. This seems logical as the attack and development were neither secret. (What is he on about? I'll tell you ;-)&lt;br /&gt;&lt;br /&gt;So let us look at the year that SHA-0 was publicly attacked... and the year that its replacement came out... 1995. Four years is a long time in the cryptographic hashes world, (MD4 and HAVAL-128 went from Unbroken to Broken in that time!)&lt;br /&gt;&lt;br /&gt;Now I'm not a conspiracy nut (obviously) so I'm not suggesting that the NSA already knew about the vulnerability and did not announce it. The question is... when will the NSA files leak^wdeclasification reveal the time and date that they broke each hash function. (In the UK it is about 30 years for most files, which seems reasonable, but who knows for those over at Fort Meade.)&lt;br /&gt;&lt;br /&gt;That reminds me - I must check on my bees.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;th&gt;&lt;br /&gt;&lt;/th&gt;&lt;td&gt;&lt;span class="label"&gt;&lt;/span&gt;&lt;/td&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3617485390135312686-3982167829042471183?l=www.alexx.net' alt='' /&gt;&lt;/div&gt;</description><link>http://www.alexx.net/2012/01/sha-1-countdown.html</link><author>noreply@blogger.com (alexx)</author><thr:total>0</thr:total></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-3617485390135312686.post-7141459761164522202</guid><pubDate>Thu, 05 Jan 2012 22:39:00 +0000</pubDate><atom:updated>2012-01-06T10:21:47.969Z</atom:updated><category domain='http://www.blogger.com/atom/ns#'>project managment</category><category domain='http://www.blogger.com/atom/ns#'>bash</category><category domain='http://www.blogger.com/atom/ns#'>dotProject</category><category domain='http://www.blogger.com/atom/ns#'>RT</category><category domain='http://www.blogger.com/atom/ns#'>perl</category><title>Project Management: Script everything; Test EVERYTHING; Graph everything</title><description>Last year I finished a two year project. I would love to tell, (brag) all about it but when I sign an NDA I mean it. The customer is a huge fan of opensource, and encouraged me to share as much as possible about my experience gained from the project, (while keeping an eye on the NDA.) I sent this entry to the client for approval and Q.E.D. they did.&lt;br /&gt;&lt;br /&gt;So you have a project. You want to&amp;nbsp;use reliable software, but&amp;nbsp;spend no money on it &lt;b&gt;and&lt;/b&gt; get the job done ahead of schedule. You are starting compleatly from scratch, with no support, (are you insane?)&lt;br /&gt;I don't know what works for you, but my advice is as follows:&lt;br /&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-size: large;"&gt;use dotProject&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;That is all I really wanted to share. If you are inside of a company, being nurtured with an existing support infrastructure, or if on day one you have an idea, a small laptop and no-money, my advice is the same. If you want a more wordy explanation for when starting with nothing, then read on, (you can delete the parts that you already have.)&lt;br /&gt;&lt;br /&gt;Grab a copy of Linux, (I used&amp;nbsp;Stackware&amp;nbsp;and&amp;nbsp;CentOS, but debian/ubuntu also works) and stick it on any computer, (I started out with a six year-old laptop and one aging 1U server - and I did not need the server for the first year!)&lt;br /&gt;&amp;nbsp;When I did need a server I looked at co-location options, (I build my own server in 1998 and hosted it on my office network until 2005, so that was what I was used to.) The result of the search was, as is often the case, when you go looking for something, but keep an open mind; I found that I rather liked the VPS from &lt;a href="http://www.bytemark.co.uk/hosting/virtual_machines"&gt;Bytemark&lt;/a&gt;, (but if you have a dedicated server you can&amp;nbsp;&lt;a href="http://vagrantup.com/"&gt;create a&lt;/a&gt;&amp;nbsp;&lt;a href="http://www.virtualbox.org/"&gt;virtual machine&lt;/a&gt;&amp;nbsp;using &lt;a href="http://www.linux-kvm.org/"&gt;KVM&lt;/a&gt;.)&lt;br /&gt;&lt;br /&gt;Install&amp;nbsp;&lt;a href="http://www.dotproject.net/"&gt;dotProject&lt;/a&gt;,&amp;nbsp;&lt;a href="http://bestpractical.com/rt/"&gt;RT: Request Tracker&lt;/a&gt;,&amp;nbsp;&lt;a href="https://github.com/alexxroche/Notice"&gt;Notice&lt;/a&gt;, apache, exim, dovecot and munin to monitor the server. (This took me most of the first morning, but I was new to dotProject then.) Create, on the virtual machine, a new account for each of the developers and give them sudo access to exactly what they need. I like to add &lt;a href="http://selinuxproject.org/" title="don't believe what you read: SELinux is easy, (and gives you one more thing to graph \o/ *yay*)"&gt;SELinux&lt;/a&gt;&amp;nbsp;to the mix, lock down access with iptables, and create a pocket certificate-authority so that everything can be signed&amp;nbsp;and where possible encrypted. (E.g. the &lt;a href="http://www.ejabberd.im/"&gt;ejabberd&lt;/a&gt; instance. The team used&amp;nbsp;&lt;a href="http://www.pidgin.im/"&gt;pidgin / finch&lt;/a&gt;&amp;nbsp;/ Adium to communicate more often than email.)&lt;br /&gt;&lt;br /&gt;With dotProject you don't even need RT, (there is a simple ticketing system as a plug-in,) but when your project goes live you should have transitioned into RT for customer facing response. I use Notice as the glue that holds everything together, (so it is written in Perl.) Notice controls apache, exim, dovecot , NSD3, (and anything else like that) and manages all of my data: Which people are in each team; Project assets; CRM; reports; billing; general system administration, (though again, dotProject can manage all of the data for a project. The reason for Notice is "everything else".)&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;What did I learn from managing this project?&lt;br /&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-size: large;"&gt;Script everything&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-size: large;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;# This project used&lt;br /&gt;---&lt;br /&gt;- 7zip&lt;br /&gt;- bash&lt;br /&gt;- C&lt;br /&gt;- C++&lt;br /&gt;- glusterFS&lt;br /&gt;- HTML: CSS&lt;br /&gt;- javascript: [DOM, jQuery, JSON]&lt;br /&gt;-&amp;nbsp;&lt;span class="title"&gt;&lt;a href="http://www.keepalived.org/"&gt;Keepalived&lt;/a&gt;&lt;/span&gt;&lt;br /&gt;- mysql: master-master replication&lt;br /&gt;- Perl: [DBIx::Class, Template::Toolkit, CPAN]&lt;br /&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;- svn: then later git&lt;/div&gt;- &lt;a href="http://nsis.sourceforge.net/"&gt;windows-installer&lt;/a&gt;: NSIS&lt;br /&gt;- &lt;a href="http://www.winehq.org/" title="to run NSIS under Linux"&gt;wine&lt;/a&gt;&lt;br /&gt;- x509&lt;br /&gt;- XML&lt;br /&gt;- XMPP&lt;br /&gt;- other: probably, but this is all that comes to mind right now&lt;br /&gt;#&amp;nbsp;while consuming .ogg, &lt;a href="http://en.wikipedia.org/wiki/Theine" title="Tea"&gt;&lt;span style="color: black; font-weight: bold;"&gt;C&lt;/span&gt;&lt;sub&gt;8&lt;/sub&gt;&lt;span style="color: #4d4d4d; font-weight: bold;"&gt;H&lt;/span&gt;&lt;sub&gt;10&lt;/sub&gt;&lt;span style="color: navy; font-weight: bold;"&gt;N&lt;/span&gt;&lt;sub&gt;4&lt;/sub&gt;&lt;span style="color: #742323; font-weight: bold;"&gt;O&lt;/span&gt;&lt;/a&gt;&lt;sub&gt;2,&lt;/sub&gt;&amp;nbsp;&lt;a href="http://www.waiwai.co.th/" title="mostly Minced Pork Tom Yum Flavour"&gt;noodles&lt;/a&gt;&amp;nbsp;and&amp;nbsp;&lt;a href="http://en.wikipedia.org/wiki/Cider" title="cidre"&gt;&lt;span style="color: black; font-weight: bold;"&gt;C&lt;/span&gt;&lt;sub&gt;2&lt;/sub&gt;&lt;span style="color: #4d4d4d; font-weight: bold;"&gt;H&lt;/span&gt;&lt;sub&gt;5&lt;/sub&gt;&lt;span style="color: #26d5d6; font-weight: bold;"&gt;OH&lt;/span&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;So it was vital to be able to build the binaries with a single command. I looked at &lt;a href="http://ant.apache.org/"&gt;Apache Ant&lt;/a&gt;&amp;nbsp;but in the end I was won over by&amp;nbsp;&lt;a href="http://www.ibm.com/developerworks/linux/library/l-bash/" title="few that understand well can make themselves understood so clearly"&gt;Daniel Robbins&lt;/a&gt;&amp;nbsp;(of&amp;nbsp;Gentoo fame), and chose bash. This meant that at any moment it was possible to checkout a copy of the code and build it with a single command, (that involved extracting files from archives, applying changes, compressing, compiling more compressing and finally building the installer for each platform.)&lt;br /&gt;&lt;br /&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;&lt;span class="Apple-style-span" style="font-size: large;"&gt;Test&amp;nbsp;&lt;/span&gt;&lt;b&gt;&lt;span class="Apple-style-span" style="font-size: large;"&gt;EVERYTHING&lt;/span&gt;&lt;/b&gt;&lt;span class="Apple-style-span" style="font-size: large;"&gt;: not only the Chuck, but the bit and the whole drill!&lt;/span&gt;&lt;/div&gt;&lt;div class="Apple-style-span" style="font-size: x-small; text-align: center;"&gt;(In joke - either you know it or you don't - its called a learning curve)&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;Thanks to the book,&amp;nbsp;&lt;a href="http://shop.oreilly.com/product/9780596100926.do"&gt;Perl Testing: A Developer's Notebook&lt;/a&gt;&amp;nbsp;I fell in love with testing, (I don't expect everyone to become a testing freak - just their code.) With the cross-pollination of python, (use phpcs to see how the&amp;nbsp;indentation gestapo have already spread there,) and what seems like the inevitable convergence of scripting languages directly analogous to car design, I expect that perl style testing will become as ubiquitous as a 5 star Euro NCAP rating before very long. (Talking of which, if there was an Internet Software Security&amp;nbsp;and Quality&amp;nbsp;Assessment Programme, like&amp;nbsp;html5test.com crossed with&amp;nbsp;&lt;span class="Apple-style-span"&gt;alternative&lt;/span&gt;&lt;span class="Apple-style-span" style="font-style: italic;"&gt;&lt;span class="Apple-style-span" style="font-style: normal;"&gt;to.net&lt;/span&gt;,&lt;/span&gt;&amp;nbsp;then both quality and security would probably go up, but that is a talk for another day.) If you have not already worked it out, "Script everything" still applies to testing.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-size: large;"&gt;Graph everything: If it moves - graph it&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;(I think I read this quote in an entry by either Paul Graham, (RTML) or&amp;nbsp;Brad Fitzpatrick, (livejournal) but I could be wrong)&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;For many years I had used cacti, (MRTG) and loved it. It was sometimes tricky to install, and learning how to do custom pages took me longer than I expected, (I'm not saying that it is hard, just that it too me too long.) Then I found &lt;a href="http://munin-monitoring.org/"&gt;&lt;span class="Apple-style-span" style="color: #e69138;"&gt;Munin&lt;/span&gt;&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;It was like the sun coming out from behind the clouds. I'm not saying that munin is better than cacti, I'm saying that munin does it for me; I fancy munin and I don't care who knows.&lt;br /&gt;It just fit my needs exactly. I could easily write a new plugin, (if it did not &lt;a href="http://exchange.munin-monitoring.org/"&gt;already exist&lt;/a&gt;), and I can centralise multiple servers into one report, I can do it all from a bash prompt, (did I mention script everything?) Using&amp;nbsp;&lt;a href="http://exchange.munin-monitoring.org/plugins/?filter=tag:ipmi"&gt;ipmi&lt;/a&gt;&amp;nbsp;I can even check the air-con in the data centre.&lt;br /&gt;&lt;br /&gt;In conclusion, opensource software has matured to a level where it is practical to use it in a commercial environment. Just as any good version control system can contain its own development, any project can now be managed with free software, (and no amount of &lt;a href="http://en.wikipedia.org/wiki/Fear,_uncertainty_and_doubt"&gt;FUD&lt;/a&gt;&amp;nbsp;or snake-oil-talk of ROI or TCO is going to save the&amp;nbsp;proprietary&amp;nbsp;dinosaurs now.)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3617485390135312686-7141459761164522202?l=www.alexx.net' alt='' /&gt;&lt;/div&gt;</description><link>http://www.alexx.net/2012/01/project-management-script-everything.html</link><author>noreply@blogger.com (alexx)</author><thr:total>0</thr:total></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-3617485390135312686.post-6628470642107670229</guid><pubDate>Thu, 05 Jan 2012 17:46:00 +0000</pubDate><atom:updated>2012-01-05T17:46:40.764Z</atom:updated><category domain='http://www.blogger.com/atom/ns#'>Catalyst</category><category domain='http://www.blogger.com/atom/ns#'>Notice</category><category domain='http://www.blogger.com/atom/ns#'>CGI::Application</category><title>Notice this?</title><description>If you are looking for a working example of CGI::Application combining the plug-ins:&lt;br /&gt;&lt;br /&gt;CGI::Application::Plugin::ConfigAuto&lt;br /&gt;CGI::Application::Plugin::DBH&lt;br /&gt;CGI::Application::Plugin::Session&lt;br /&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;CGI::Application::Plugin::Authentication&lt;/div&gt;CGI::Application::Plugin::Redirect&lt;br /&gt;CGI::Application::Plugin::DBIC::Schema&lt;br /&gt;CGI::Application::Plugin::Forward&lt;br /&gt;CGI::Application::Plugin::TT&lt;br /&gt;&lt;br /&gt;in a working &amp;nbsp;MVC (DBIC,TT,CAS) framework, then &lt;a href="https://github.com/alexxroche/Notice"&gt;Notice&lt;/a&gt;&amp;nbsp;should help you. I use it as a&amp;nbsp;Customer Resource and Account Manager; Asset management, but you can adapt it to your needs. Notice is the &amp;nbsp;distillation of almost twenty years of Internet related solutions. Being a general outline of an idea to, "solve all of the Internet problems" it has a very expansive remit. &lt;br /&gt;&lt;br /&gt;Although this example, on github, is from an earlier development branch, it certainly would have saved me some time if even this incarnation of Notice had already existed, when I was looking through the many good&amp;nbsp;&lt;a href="http://www.perl.org/"&gt;Perl&lt;/a&gt;&amp;nbsp;frameworks for the one that met my needs.&lt;br /&gt;&lt;br /&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;(This incarnation of Notice is&amp;nbsp;inspired by CGI::Application::Structured and a direct port of my previous, all-my-own-code-from-the-ground-up, version of of Notice.) &lt;br /&gt;&lt;br /&gt;I hope that someone will find it useful. Being the outline of the Notice modular system, (that is using the CGI::Application framework), it is easy to create a custom module that stores your data in any way that you want, (or you can strip it down to the bones and build your own animal.)&lt;br /&gt;&lt;br /&gt;Notice is interesting for at least two reasons, (possibly more).&lt;br /&gt;&lt;br /&gt;First it is an example of a light MVC framework using &lt;a class="l" href="http://search.cpan.org/perldoc?DBIx::Class"&gt;DBIx&lt;/a&gt;&lt;a class="l" href="http://search.cpan.org/perldoc?DBIx::Class"&gt;::&lt;/a&gt;&lt;a class="l" href="http://search.cpan.org/perldoc?DBIx::Class"&gt;Class&lt;/a&gt;&amp;nbsp;and&amp;nbsp;&lt;a class="l" href="http://www.google.com/url?sa=t&amp;amp;rct=j&amp;amp;q=template+toolkit&amp;amp;source=web&amp;amp;cd=8&amp;amp;ved=0CFEQFjAH&amp;amp;url=http%3A%2F%2Fsearch.cpan.org%2Fperldoc%3FTemplate%253A%253AToolkit&amp;amp;ei=edcFT_m7OdP78QOBhZSWDA&amp;amp;usg=AFQjCNFqyMu5S-_oiXoDUcij9LVJ0BL9IQ"&gt;Template::Toolkit&lt;/a&gt;. I started out by looking at the largest most popular MVC framework in CPAN;&amp;nbsp;it is great, but I needed something lighter, so I looking for the lightest, (CGI::). ( My previous version of Notice had started out using CGI_light, but eventually I stripped out all dependencies except DBI.)&lt;br /&gt;&lt;br /&gt;I found a collection of tutorials, but&amp;nbsp;never quite the full combination (of Authentication with dbic and TT) that I needed, (actually I wanted L18n as well but I did not have time when I was creating&amp;nbsp;this third incarnation for Notice. xkcd.com/974/)&lt;br /&gt;&lt;br /&gt;Second I was spending a weekend building a domain registry, (it really isn't that hard) and needed a whois server; I could&amp;nbsp;find an almost endless collection of code to talk to/with a whois server, but not actually a whois daemon. So in the S of&amp;nbsp;Model, View, Control, Sundries is a little RFC3912 compliant whois daemon. If you create a CDB file with a key of&amp;nbsp;awesome.alexx.net and a value of "Why YOU are my friend, you are!" this daemon will serve it up for you. ( It is trivial to have the whois server pull live data from the database - your milage may vary with the level and volume of DDoS or /. directed at your server.)&lt;br /&gt;&lt;br /&gt;The unsuspecting world should know that this version is NOT an example of perfect code. Feel free to improve it, laugh at it, (I do) or make a&amp;nbsp;version with the features that you need, e.g. L18n. I'm extending the assets section to have hive-records for for the beehives that I now have listed in my &amp;nbsp;assets table.&lt;br /&gt;&lt;br /&gt;If you need an example of the features mentioned at the start of this post, (or&amp;nbsp;a whois server), this may save you time. Also, there are many modules that have already been developed, that have not been included in this code. I will include a new README, (and possibly a blog entry) explaining the modules and how each instance of Notice can interact with all of the others, (or you can email me with questions about Notice.)&lt;br /&gt;&lt;br /&gt;[I have published the whois server separately in &lt;a href="http://search.cpan.org/~alexx/"&gt;CPAN&lt;/a&gt;, but with this you can automate the rebuilding, (and distribution) of the whois database from a central management system. I have not yet got permission to include all of the custom code that did the DNSSEC. That sat on a computer with no external access; pulled each zonefile; signed them; pushed them out to each DNS server. ]&lt;br /&gt;&lt;br /&gt;This is &lt;b&gt;not&lt;/b&gt;&amp;nbsp;another framework; It is an example of&amp;nbsp;&lt;a href="http://cgi-app.org/"&gt;CGI::Application&lt;/a&gt;. If you ask why?:&lt;br /&gt;Catalyst seems like the daddy-bear of frame-works, (though &lt;a href="http://mojolicio.us/"&gt;Mojolicious&lt;/a&gt;&amp;nbsp;will be 'The Daddy' for some)&amp;nbsp;and all the others seemed like mummy-bear, so Notice is my baby-bear;&lt;br /&gt;&lt;br /&gt;I hope that someone else will think that it is '&lt;span class="Apple-style-span" style="color: #e69138;"&gt;just right&lt;/span&gt;'.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3617485390135312686-6628470642107670229?l=www.alexx.net' alt='' /&gt;&lt;/div&gt;</description><link>http://www.alexx.net/2012/01/notice-this.html</link><author>noreply@blogger.com (alexx)</author><thr:total>0</thr:total></item></channel></rss>
