Search Results: "will"

9 July 2007

Martín Ferrari: DebConf, travelling, pictures, SoC... Oh my!

I'm still lacking the obligatory post-DebConf7 post... These weeks had been intense... So, first of all, thanks to all the DC-team for another wonderful conference. Next year I'll feel how it's done one of the two things that everybody likes but nobody wants to know how it's done. Hint: not sausages. This is the first time I've also attended DebCamp, and it was very useful. Not that I could do any real work, as very few people are able to do that during DebConf, but I managed to do what I planned, that is talk with many people who are working on debian-cd, debian-installer and custom-cdds. I've already uploaded my pictures to a temporary place, whitout captions, until I decide how I will replace the stinko called gallery. And there you can see that I was one of the few that actually wore a kilt during the event —not a proper Debian kilt, but hey... After DebConf, and after a year of hard work, I took a seven days vacation in the UK. So I was able to know Edinburgh (I prefer to hang out with Debian people that doing tourism during the conference, so I only knew the way to the supermarket). I also went to the Arthur's Seat HIll, which was very beautiful, and was only a 1-hour walk from the hostel to the top. Then I did a small visit to Stirling and concluded that castles in Scotland are not that interesting (but go to the Smith Museum!). Then, I went to London for a couple of days (dang, that was expensive!!), visited Marx's tomb, rided near the car bombs, got to know all the nice stuff that the british stole from around the world in the British Museum (it's really great, and free), and went to Cambridge to spend a day (and punting, I even did the punting myself!). Finally I spent my last day walking around that beatiful city, in the Soho and South Bank areas. I don't want to forget to say thanks to Nattie, Kai and Ben for hosting me, you guys rock!! This last week has been very productive. I was working GSoC project, trying to recover from lateness, and staying until late. It was worth it, I have finished settling down the architecture and overall design, and wrote the main program which will coordinate all the tests to be run. It includes from the begining dependency-based scheduling and paralellism, so I hope it will scale well in SMP computers. I also wrote a draft specification for the plugins and description of the running plan in the wiki page. I've also asked for the creation of a Alioth's project, so I can start publishing the code, and get feedback from the people that will use it. PS: do MIND THE GAP, please. :-)

Matthew Palmer: Hell is other people('s code)

I've been working (part-time) on an existing Rails application for the last month or so, getting comfortable with it, modifying some sections to support needed functionality, and beginning an all-out, carpet-bombing "shock and awe" assault on it's test suite. However, a significant portion of the system is (or rather was, since I've already gutted a lot of it) a chunk of rather messy and unpleasant auto-generated code. I've always been a bit iffy about code generation tools, ever since my first encounters with them whilst working on some $DEITY-awful access application years ago. (First encounters with anything Microsoft usually have that effect on me, though). Since then, I've never found any reason to change my mind, and dealing with this particular chunk of auto-generated code has pushed me over the edge into "wild-eyed extremist" territory. Please note that when I say "code generator", I'm talking here about programs or wizards or whatever that create a block of code that you're then expected to tweak to suit your conditions. If it's just a mechanical transformation of an input format to an output format, where a human is never expected to maintain the output by hand, that's not code generation in my book -- that's just a compiler being used for it's intended purpose. I like compilers. I'm fairly sure you do too. Code generators, though? EVIL. Consider what you get out of your generator: A big blob of code in your application that you then have to understand and maintain. It's like you gave a commit bit to some random person who dropped a 5000 line change into your tree and then ran away into the night, cackling. If there's bugs in the generated code (and remember, there's always bugs in software), when they get fixed upstream you're up the creek unless you haven't modified the code at all (and thus can regenerate), or you're willing to apply the necessary patches to your modified version, often by hand. Hand-patching is error-prone, and if you've modified the code at the same place that has to be patched, things can get unpleasant. In the case of the generator I'm dealing with at the moment, I'm not even blessed with it being decent code. It's ugly code, in every possible sense of the word. There's inconsistent formatting, poor commenting, it uses some totally whack coding constructs[1], the hard-coded text strings are ungrammatical, it's got very few (and poorly covering) test cases, the methods are huge and unwieldy, and it's got security bugs (not so hot for something that's supposed to be guarding your application). In short, it looks like some quick-and-dirty internal hack that escaped one night and is now wreaking havoc on the world. There's probably some really good code generators out there. I've been poking around a bit, and there's some written for Rails by people who I know produce good code. However, no matter how good the author of the code generator is, the very best you can hope for is solid, clean code that is the equivalent of some portion of your application having been coded by some member of your team who you (and nobody else) has ever met, who didn't follow your team's coding conventions, and who has never looked at any other part of your application to make sure that everything hung together in a consistent manner. Which you now have to maintain. I've read a lot of books, articles, blog posts, and mailing list messages, and participated in no shortage of "why software sucks" discussions with other programmers, but I've never heard anyone advocate that the way to clean code, minimal bugs, and happy programmers was to drop a big chunk of unknown code right in the middle of things. Before you start charging up the e-mail-delivered tasers, ready to fry my delicate braincells for the twin crimes of Xenocodophobia and a vicious case of Not Invented Here syndrome, though, please understand that I'm not against code reuse in the right place. That right place is a library, component, or other abstract, documented, fairly static, and presumably-replaceable chunk of code. By using a library, you get a relatively simple interface to somebody else's complexity. This is a good thing, for all the reasons that everyone should already be able to recite. Items such as a comprehensible interface, minimal learning curve, and so on. Things you don't get with generated code because, pretty much by definition, the entire chunk of code is you "interface". There are some times, though, when what you want to do can't be done in a library. Either the thing has too many tentacles to be able to easily encapsulate behind an abstracted interface, or you need to modify it's behaviour in too many places to be able to get away with a few simple callbacks to get the job done. Hence, it might be tempting to fire up the code generator to get yourself out of a hole quickly. Don't do it though. Don't succumb to the temptation of saving yourself a little bit of time by firing up a code generator. What you're doing there is just making pain for yourself, by inheriting a big chunk of code that you don't fully understand, probably doesn't solve your problem particularly well, and which you (or whichever poor slob gets the job after you) will have to maintain into perpetuity -- most likely by gradually rewriting large pieces of it so that it fits your application better. The output of a code generator is likely to be the least maintainable code in your tree -- either by virtue of the fact that it's crap code, or at the very least because you just don't understand it. The general principle of good codebase hygiene is that you get rid of unmaintainable code quickly, so it doesn't infect everything else (a la the "broken window theory"). With that in mind, why would you ever consider deliberately introducing a huge chunk of unmaintainable code into your application? The closest I can come to a defence of code generators is something like Rails' scaffolding, where the controller and views for a set of simple CRUD operations on a table are auto-generated. The key word there, though, is scaffolding. It's very name suggests that it's temporary, to be replaced with something more robust and useful as soon as is reasonable. The default scaffolding is ugly as sin, besides, which encourages you to replace it, and -- as of Rails 1.1 (I think), there's a 'scaffold' method which creates the scaffolding output at runtime, so you never, ever need to generate scaffolding code any more. Anyone planning on producing any significant piece of their application through the use of code generators is, in my book, committing a crime against software decency.
1. My favourite whack code construct thus far has been this gem:
 case somevar
   when 17
     do_something_here()
 end
Because, you know, if statements are for people who know how to program, or something.

8 July 2007

Mirco Bauer: Hello World, how small can you get?

Today I was checking how much diskspace is need when a small CLI (.NET) application like gfax is installed. The last 2 years I am optimizing the Mono packages in Debian to reduce dependency chains. Dependency chains can cause a small application to become very big (at least it looks that way) when they are installed, as modern Linux distributions automaticly install all required dependencies. So first I worked against GUI dependencies for non-GUI applications, those are annoying for servers, you don't want to install a X server or other GUI libraries when you only serve webpages using ASP.NET.
Splitting CLI 1.0/1.1 vs 2.0 also seemed to be a very good candidate to split apart, as applications usually are target at 1.0/1.1 or 2.0.
Then I split Base-Class-Libraries that have dependencies on native libraries (via P/Invoke), as those packages must depend on those native libraries, like DB drivers.
Last but not least I split debug symbols in a different package, as those are not needed for normal production usage, and embedded systems don't have much diskspace. The mono-dbg package is 28.2MB in size when installed, that's alot.
The Mono source package in Debian is now building 67 binary packages, but thanks to APT nobody has to care for that, every part is installed when needed. So today I was checking the results of it, how much will a small application download and install?
I am testing with a clean minimal Debian system, that way all dependency chains will show up very easily.
Installing GFax + required libraries today takes 43MB to download and 138MB on the harddisk. GFax is a small GNOME application, it uses libraries like: Mono, GTK#, GNOME#, Evolution#, GConf#.
So someone might say: "of course, it is based on that bloaty Mono virtual machine!", well let's check a different application.
What about a GTK# only application (no GNOME) like graphmonkey + required libraries? That will download 19.5MB and uses 56.4MB on the harddisk. That's alot less, isn't it? graphmonkey only uses Mono and GTK#.
So it's not Mono taking all no diskspace? Well after all my packaging optimizations, it's not Mono smile.png
So how big is a install of a minimal Mono runtime + all required libraries then?
Minimal as in enough to run famous the "Hello World".
It's 2.4MB to download and 7MB on the harddisk, yes you read it correctly, the super monster bloaty virtual machine just needs 7MB. Mono only has glib as dependency which will be replaced by the eglib library some day. After I had this great result, I wondered how big other runtimes are.... like.... Java and Python? The results are interesting...
A minimal Python install takes 3.9MB to download and 13.4MB on the harddisk. Yes, that's almost double the size of Mono, I was surprised too.
So and Java? Here it becomes a bit unfair as SUN's license is not allowing to ship parts of a Java runtime. So the Java package in a distribution is one package. 34.5MB to download and 95.2MB on the harddisk. Yes, that's alot, but thats the smallest install you can get when you want to run anything on it. So, if you want to run Hello World on a virtual machine: use Mono! tongue.png just kidding...
Small runtimes are important when it comes to acceptance and adaption of new technologies, as nobody wants to kill all his computer resources for it. And I often hear the replies on Linux IRC channels, when people ask which software they can use to do $task: "No I don't want o install 100MB just for $task" and they decide to try some other software with less dependencies and less resource usage.
Also for the embedded area, resources are very limited, every MB still counts there. For the completeness of my report, here the naked numbers of other available Java runtimes: sablevm 22.0MB (63.2MB), kaffe 52.2MB (118MB), jamvm 28.3MB (65.4MB), cocoa 28.8MB (66.0MB).

Matt Brown: POSIX/NFSv4 ACL Inheritance Problems

I (as root) have a directory hierarchy that I want a particular group to always have write access to. The files and folders inside the hierarchy are owned and manipulated by a wide variety of diffrent users. Essentially I want to delegate ‘root’ access for a portion of the filesystem to a particular group. My first attempt at implementing this was to use the standard POSIX ACLs that are available for almost every filesystem Linux supports. I recursively set an ACL on the top-level directory to give the group write access to all files and directories that currently exist and then I recursively set a default ACL to give the group write access on all the directories. This default ACL should be inherited by any new files that are created ensuring that the group keeps write access to everything. Problem solved? Unfortunately not. The intricacies of complying with POSIX means that ACLs are implemented as an ACL plus a mask. To gain access to a particular file or directory the user or group must match an appropriate ACL granting the access and the mask for that file or directory must also allow the requested permission to be granted. When you add an ACL to a file or directory, the ‘group’ bits of the standard Unix permissions magically switch from controlling group access to controlling the mask portion of the ACL, effectively providing an upper bound on the permissions that an ACL entry can grant. This prevents legacy POSIX applications that do not understand ACLs from unintentionally granting excessive permissions - arguably a good thing. Unfortunately this also makes it very hard to preserve the ACL granting write access to the ‘root’ group which I legitimately intended to have in place on this portion of the filesystem. Newly created files under the hierarchy generally inherit the ACL as intended, as most applications attempt to create files with as many permissions as possible, leaving it up to the umask to remove undesired permissions. However any file that is copied into the hierarchy without the ‘group’ write bit set, or any file that has the ‘group’ write bit removed via chmod will actually remove the write bit from the ACL mask invalidating the ACL and leaving me back at square one! After a bit of Googling I thought that NFSv4 ACLs might be the answer to this problem, as they are marketed as “very similar to Windows ACLs” and I’m sure that I vaugely recall Windows being able to properly inherit ACLs from parent directories. Unfortunately after downloading the NFSv4 ACL patches and trying all the various mount options I cannot find any combination that will offer the functionality I need. The implementation conforms to POSIX, so it still has a mask parameter and the same problems as the standard POSIX ACLs. The only benefit from using NFSv4 ACLs that I can see is that you have more permissions to grant. So once again, I’m back to square one. I’m hoping that there is some fundamental point that I’m missing as this seems like a very common use-case that I would have thought would be well supported. If a command-line example is clearer to you look at:
http://www.mattb.net.nz/blog/dump/acl-inheritance-problems.txt My current solution is to run a cronjob every X minutes to recursively ‘chmod -R g+w /dir’, however that’s far from optimal as it exposes all sorts of race conditions and just seems ugly! Any suggestions or solutions will be gratefully received.

Biella Coleman: Impacts of Technology

Most of my recurring anxiety nightmares emerge straight out of work experiences. A common dream I had, for years, was basically being slammed with a deluge of like 25 customers/tables while waitressing. Yes, I have waited tables for many years. Now, I have a new dream which reflects new working conditions. Basically I show up on the first day of class with NO syllabus and it is horribly embarrassing. Thankfully that scenario is easily avoided. I am teaching two classes this fall, one called Impacts of Technology, the other Human Culture and Communication. I had to come up with the Impacts of Technology syllabus from scratch (Culture and Comm is somewhat standard for the Department I am teaching in) and here is a first version of my syllabus. I am sure it will change but it is nice to have most of it done as I hope to avoid any work-related nightmares this summer.

Eric Warmenhoven: Wolf Camera sucks.

Lately I’ve been thinking that I’d like to buy a tripod, for a variety of reasons. I’ve been doing some research into them and decided that I’d really like to try a few out in the store before I consider buying one (especially since head and legs together will possibly cost $600). So today Lisa and I went out driving around to a bunch of different camera stores. Or at least, we tried to go to a bunch of different stores. Los Gatos Camera closed, and we weren’t able to find a couple other of the stores on my list. The Wolf Cameras that I’ve been to have had an extremely limited variety of tripods, and I wouldn’t consider buying any of the ones that they have. Are there any decent camera shops in the San Jose area?

7 July 2007

Rob Taylor: Moving..

This week I’m going to be moving house to the lovely Hope Valley in the Peak District. Its an exciting move and I’m looking forward to going bouldering and climbing, but there’s a terrible side-effect - I’m missing Lug Radio Live. I’m insanely jealous of everyone who can go - I know Jono will show you all a wonderful time :) I’ll also have to miss the warm up days of GUADEC but I’ll be there from the core days till the end. Can’t wait to see everyone there!

Mike Hommey: Finding where a tarball came from with git

I got the idea reading this question on the webkit-dev list, and from my recollection of the git documentation. Well, for the webkit case, the basic script I put up would be of no help because the tarballs don’t contain all the files (plus, they use subversion, not git, so it would also require a long importing process). Anyways… Considering how SHA-1 hashes of objects are created with git, it is actually pretty easy to generate a SHA-1 hash from a random (non-git) tree, and then, the corresponding commit. First, you have git-hash-object that helps you creating a hash for a particular object (though it’s also trivial to do with sha1sum). For regular files, git-hash-object -t blob $filename is enough. For symbolic links, you have to read the link destination, and give it without a trailing character (be it the NULL character or a carriage return) to git-hash-object -t blob --stdin. For directories, you have to generate a tree “structure” by yourself and pass it to git-hash-object -t tree --stdin. I haven’t bothered looking at other file types. The tree structure can be guessed by either looking at mktree.c or at the output of git-cat-file tree $sha1 where $sha1 is the SHA-1 hash for a tree object. It contains 3 informations for each node in the tree : the file mode, with the same format as what stat() returns, except for some reason, permissions are 000 for directories and symbolic links ; the file name ; and the SHA-1 hash. These informations are written with the following format : file mode in octal ascii and no padding zero (”%o”) followed by a space character, then the filename followed by a NULL character, and the binary form of the SHA-1 hash. Nodes are sorted in a not-so-quite lexical order (take a look at base_name_compare in read-cache.c) and are not separated by any special character: the mode of a file just follows the SHA-1 hash of its predecessor. With all this new knowledge, you should be able to write some code that would return the SHA-1 from an arbitrary directory. Okay, since you must be at least as lazy as I am, you can take the script I wrote. Now, let’s take a look at a real life case : what commit is the latest nightly snapshot for the linux kernel from ? First, download the latest snapshot patch and its baseline, and extract the whole. Then, run my git-hash-tree.pl script with the directory containing the extracted kernel as an argument. It will return, after a while, the SHA-1 hash for the whole tree. During this long process, you also have plenty of time to git clone linus’s tree. Once you’re all done, you can search for the commit corresponding to the tree hash (let’s call it $hash) with the following command :

git-rev-list --all while read h; do git-cat-file commit $h grep -q "^tree $hash" && echo $h && break; done
If you just followed these steps, you should just have spent a great moment having no result at all. There are actually 2 things that prevent this method to properly work with the linux kernel nightlies : Note this is a naive method, because I haven’t dedicated much time going through git documentation and code to find better ways, if there are any. Also note it’s pretty much worthless to do this with the kernel nightly snapshots, since a file containing the SHA-1 hash of the corresponding commit can be found alongside the patch. I guess a similar method could be used with mercurial, though I could not find a documentation detailing what are the hashes calculated from (I’ve not searched a lot, I must say, but for git, it was just before my eyes).

Robert Collins: 7 Jul 2007

Ran into an interesting thing a couple of days ago. It looks like mercurial suffers from a race condition wherein a size-preserving change made within the same second as the last hg command's completion (or possibly the last time hg observed the file) will be ignored by hg. This isn't particularly bad for regular human users (as long as you don't have your editor open while running commands in the background), but its pretty harsh for scripting users - size preserving changes are not *that* uncommon. I'm immensely glad that we don't have this race within bzr (even on FAT filesystems where you only get last-modified to within 2 seconds!)

Martin F. Krafft: Hacker tools in Germany

I am sure you've heard that "hacker tools", including nmap and other system administrastion essentials, may be considered illegal in Germany as of now. It'll depend on whether judges determine that e.g. nmap is a tool primarily used to do harm, so we all have not become criminals overnight, but there will be complications and ridiculous showdowns in courtrooms. I was only one of thousands of protestors, when this bill was first discussed by our politicians. Back in October 2006, I wrote an email to Ilse Aigner, the spokesperson for education, research and the estimation of consequences of techynology (whatever that may be) of the Christian Democratic and Christian Socialist Unions, who is a member of the German Bundestag. She's the Bundestag representative for my hometown. Surprisingly, I got a reply from her secretary, which I shall quote in full below:
im Auftrag von Frau Ilse Aigner ich habe mich bez glich Ihres Anliegens bei unserem Referenten der CDU/CSU-Arbeitsgruppe f r Recht erkundigt. Ich wurde darauf hingewiesen, dass die Bedenken Ihrer Branche hinsichtlich des Refentenentwurfs eines Strafrechts nderungsgesetzes zur Bek mpfung der Computerkriminalit t bekannt sind. Auch hat der Bundesrat eine Pr fbitte ge u ert. Zwar ist der Referent der Meinung, dass die Gefahr der Illegalisierung schon jetzt nicht best nde, trotzdem wolle man aber im laufenden Gesetzgebungsverfahren alle Bedenken beseitigen. Seien Sie versichert, dass Sie auch in Zukunft weiterhin Ihre Arbeit ganz legal aus ben k nnen.
That last sentence says: rest assured that you may continue to exercise your profession legally in the future. In the spring of 2007, it seemed as if all protests were overheard, the Bundestag pushed the new legislation 202c StGB, and the Bundesrat drew in their horns and failed to appeal the decision. I wrote another email to the secretary of Ilse Aigner asking whether I can still "rest assured", but this time, no response came back. And now the law has been passed. Politics as we know it. On the topic of whether the Debian project now has to provide a non-German archive for Germany, I find myself in the middle of the swamp of German legislation. On the one hand, publication or distribution of "hacker tools" has been made illegal, in addition to their (ab)use. On the other hand, however, the law only makes tools illegal which are (a) primarily used for cracking, and (b) are used with malevolent intentions. It's the "yes or no?" "maybe." bullshit which makes it impossible for people to do their job in Germany, if they actively want to stay on the legal side. A good example is the tax system where you have three options: do it yourself with minimal time investment and pay way more taxes than you have to, or let a tax advisor do it, or try to do it right yourself. If you do the latter, it's like walking a thin ridge in absolute darkness, except you won't be told immediately when you fall off. I think Debian should not take any action. We're not malevolently or intentionally distributing tools primarily used for cracking, so we stand good chances of getting by with it. Apart, Debian is not a legal entity in Germany anyway, so who are they to sue? NP: Overhead: Metaepitome Update: Thomas Jollans writes in that Debian can't be sued, but the German mirror operators can, with which I have to agree. Then the solution is obviously to move the German mirrors. That's a topic for this thread.

Russell Coker: Google is Good for the Environment

Google has just announced the Recharge project. They are converting some of their own fleet of Prius and other hybrid cars to be “plug-in hybrids”, this means that the car can be plugged in to mains power to charge it’s batteries and petrol will only be used as a fuel of last resort. If a car is mostly used for short trips then the petrol use is dramatically reduced - but the car still has the 1000Km range that a full tank of petrol provides! Google is also going to invest $10,000,000 in companies that develop technologies related to hybrid vehicles. If you have some ideas for new technological developments related to power saving then you might want to check out what Google is doing.

Gunnar Wolf: It still gets to my nerves...

I've gradually become happier and happier with Ruby on Rails. I've got mostly past the constant "WTF?WTF?WTF?" phase that's so frustrating when you try to understand the magic behind the scenes (after all, I like understanding what happens inside a framework - the bang and the bling are not what lured me into Rails).
So I've tried to become a more idiomatic, more complete. In the last project I started, I decided to -gasp- stop declaring my schema structure in SQL, and use migrations instead. All fine until I reached migration 008... The first one including a table modification (adding a admin column for users) instead of a creation. Well, that one went pretty fine, but 009 was also a table modification (adding an order column for tsgs). And I updated my server - with both migrations at the same time.
Bad news: Tsg has_many :users, and every User validates_associated :tsg as it should. And as migration 8 modifies (and saves, of course) a User, this validation was triggered... So, migration 8 died complaining about an undefined method order' for #<Tsg:0x2b2d2dd8d0d0>. WTF?WTF?WTF? all over again. It took me quite a while to realize.
What's the moral of the story? That a sleepy programmer can and will mess up. That batching up several migrations does not guarantee success, because the model is already up to the newest version. Crap. :-/
Or maybe it will just be safer if I abstain from directly instantiating models in migrations? umh... Does not feel right :-/

Martin F. Krafft: The weakest link

For whatever reason, my flights always bite with my food schedule; not that I have one, but I'll get hungry part way through, it must be the excitement. Under no circumstances will I gulp down the crap they serve on short haul flights, and being a last-minute packer, I usually never find the time to eat before I leave home I am also seldom hungry when there is stuff to be done before an immutable deadline, such as the departure of a plane. Fortunately, Switzerland provides healthy and great relief in the form of Bircher M esli, a snack that can keep you nourished for hours, and which renders itself well to tuppaware transport. So I've gotten into the habit of taking some along on trips. Today, the security staff at the Zurich airport forced me to break with this habit and to throw out my treasured mush. I have since recovered from the pain, but because there is more to the story than M esli in the dump, I thought it's about time for yet another airport security story about liquids my last one is more than half a year old and I am sure you're craving by now When the attendants saw my 400ml container containing M esli (think yoghurt for now, so you'll know what consistency I am talking about), they categorised it as liquid and would not let me take it through. Obviously, there was no point in arguing nor in mentioning that I often take the stuff with me on planes and never had a problem before (which is true). I was left with the choice to dump it all, or try to eat it up before my flight left. I opted for the latter, but 400ml of M esli is quite too much for quick consumption and I had to declare forfeit about three quarters through. In a moment of genius, I did the math and postulated publicly that I should now be allowed to take the rest, because it's less than 100ml (airplanes are allergic to liquids in larger volumes). I learnt then that the size of the container matters, not the amount of stuff it contains. I handed over the container to the attendant under the pretense that I refuse to throw away food and had her do the deed instead. When I got the container back, I noticed that it still had traces of M esli, looked at the queue of my flight and decided to have a go and be difficult. The result was that I had to head for the toilets and wash off all remaining traces of explosive M esli. I made sure to leave a good bit of water in the container, sealed it, and returned to the wardens of safety. This time, they let me pass, despite the 400ml container filled with, say, 30ml of water. But clear liquids aren't dangerous, or so it seems. Or maybe this is the way to smuggle the real stuff on board? The entire situation was hilarious, I stayed calm and friendly and made sure to inject a sentence about understanding that they're just doing their job and aren't responsible for the regulations at least every minute. They assured me that this was in fact what they were doing, and that it was their orders to obey the regulations imposed by Brussels without exceptions. Just then, as I was repacking my bag behind the x-ray machine, I noticed how another passenger got through with shaving cream and other stuff in a small toiletries bag. When they didn't even bother to unpack the bag, I remarked that the regulations also demand for a single, one litre, transparent plastic bag to contain all the 100ml containers and asked whether they were aware of those. At first, the attendant denied it. When I asked her to step over and look at the informational signs all over the place, which clearly documented the plastic bag requirement, she shrugged and got seemingly annoyed: "we do our job the way we do our job, leave it up to us." Some airport staff make you take off your shoes, others don't. At some airports, you have to switch on laptops, at most you don't. Some passengers are subjected to the new liquid regulations and have to throw out M esli, others are exempt. Now what was that they say about the weakest link? NP: Dream Theater: Awake

6 July 2007

Russell Coker: Terrorism Foolishness

The Age has published a remarkably stupid article about terrorism titled “It’s hard to prevent the hard to imagine” which contains some amusing statements such as “a plan to use liquid explosives hidden in soft-drink bottles and destroy commercial jets crossing the Atlantic. The scale of this plot, combined with the innovative bomb design, threatened to kill thousands of people and cause massive disruption to global commerce“. This however has been debunked by many chemists, here is one of the many expert analysis of the claims. Here’s another inane claim from The Age “So the perpetrators in the UK looked elsewhere and compiled a crude yet potentially deadly bomb from materials available in everyday life a mix of gas cylinders, petrol and nails. Finding a way to govern access to such otherwise mundane items will be expensive, and perhaps ultimately, impossible.“. It’s surprising that The Age editorial team were unable to find someone who knows the basics of chemistry or who has ever had a need to start a fire to review the article. Everyone should know that an oxidising agent is necessary for combustion - and a huge quantity of an oxidising agent is needed for an explosion. Petrol vapour won’t ignite if it’s too concentrated (it can displace enough oxygen to prevent combustion). When a gas cylinder is damaged and set alight you get a fireball surrounding it which may be several meters wide (the one occasion that I witnessed a damaged gas cylinder on fire the fire-ball was about 4 meters wide). But no explosion. To propell nails or other solid objects you need the combustion to be rapid and only on one side of the object. Combustion on all sides (IE a 4 meter wide fire-ball) will not propell nails. Here’s what a British Army bomb-disposal operator has to say about it in The Register. If you want to talk about dangerous items that are difficult to control how about cars? A terrorist who drove a 4WD along the footpath of Oxford St could potentially kill more people than the London bombings and would take almost no preparation. The article inevitably concludes with claims about the efforts that al Qaeda operatives are supposedly making to recruit people for terrorist missions. Naturally it ignores the best recruiting method of al Qaeda - the huge civilian death toll in Iraq since the US led invasion. The best available medical research (by researchers from Johns Hopkins University and published in The Lancet - the most reputable and prestigious medical journal) estimates that there were 655,000 “excess deaths” as a result of the invasion in the period up to July 2006. Over the last year the best available reports suggest that the violence in Iraq has got worse (among other things the number of US air-strikes is twice what it was last year). For more analysis of the fear-mongering being done by much of the media (including The Age) here’s another article from The Register. It’s interesting to read The Age’s article Truth first casualty of the internet?. Maybe they should publish an article titled Intelligence first casualty of print media?.

Patrick Winnertz: German law

Hey for everybody who doesn’t already know it: The upper house of the German Parliament (Bundesrat) decided today that in germany now programs like nessus and nmap are illegal.. since only hacker will use them. This means that not only the use of that programs is illegal, but having them installed already. Mh… I think I’m now one of the many persons who is doing, when the law is published, something illegal… having nmap (and nessus) installed.
Time to think about emigration to another country, better than this one. Keep hacking! ;-)

Biella Coleman: Blue Cross Blue Shield Internal Memos Leaked

Don’t you just love leaked corporate memos? I do. They are a window into that which we KNOW exists, yet we are not privvy to very often. Because corporations like to keep their dark, dirty secrets well hidden. Memos give us access to what I call in High Academic Jargonese “Corporate Psychological Interiority,” or to put in simpler language: memos allow us to see corporations crapping in their pants. Gross, but pleasant to see from time to time. I just got word of leaked memos from the Insurance Company I love to hate: Blue Cross Blue Shield. The four pages are chock full of interesting stuff, so take a read for yourself. Here, I will only highlight two things:
* Horizon BlueCross/BlueShield is picked out early in the film in a collage of stories citing bad
treatment of members.
And well, as most readers here know, I concur. Well at least
Blue Cross Blue Shield of New Jersey/Horizon can be proud for being one of the worst. In their concluding talking point sections, they say:
2) The Blues recognize the need for improvement of both the coverage and delivery of healthcare.
But the divisive tone set forth by Michael Moore and his movie “Sicko” is not helpful. Positive
change to our healthcare system can be best achieved through shared responsibility, not
recrimination. To ensure Americans have access to the best healthcare that is both timely,
efficient, and of high quality, requires the collective contribution of all stakeholders
consumers, providers, employers and the government.
Try NOT being angry at a 4,000 dollar bill or worse, an 80,000 dollar bill, or even worse a death. It is near to impossible to stop the rumblings of anger. We are human beings, after all. We are born with the capacity to think and feel, passionately and deeply. And some of the best change comes from the fire that is anger and I hope that enough Americans are finally feeling the fire.

MJ Ray: One-eyed iPlayer

So iPlayer, the BBC's on-demand 7-days TV download service, launched as Microsoft-only, despite the feedback to the trial service. They come along to events like hackday pretending to be our friends, but they're really not. It's more BBC Backdoor than BBC Backstage. My IMDB-listed friend Martyn Drake estimates the cost of using iPlayer as at least 215 for GNU/Linux users and you can't do it with free software. It seems to be even more expensive for a Mac.
"The BBC should remain impartial, but they're currently having hot patootie with Bill Gate and his chums in Redmond. They continue to use OUR license fee regardless of our objections to their dimwitted decision to use DRM, and now say they'll review the situation is six months. Thanks, BBC. Thanks a lot. Can I get some of my license fee back to afford these additional costs, please?"
No wonder the Open Source Consortium says they'll complain to the European Commission - it's blatent bundled sales. TV has got away with worse in the past (for example, Channel4-satellite requires you to buy Sky), but the BBC's TV-tax-funded services had been getting progressively freer. This latest reversal of that makes me wonder whether Freesat will be fully-viewable with free software. Also, they're up against another big problem: given a choice between the expensive and inconvenient legal iPlayer and the free and easy illegal torrents (which I'm told have US imported shows earlier), which will users choose? Surely not even the BBC's advertising power will overcome iPlayer's 200 quid bundled sale and auto-delete? Let them know it won't: petition the Prime Minister to open iPlayer. The BBC is a Royal Charter Corporation and should act in the public interest.

Rob Taylor: Introduction to Codethink

As those of you who’ve been a bit more observant may have noticed, I now have a new company - Codethink Ltd. It’s really just starting up, but so far we’ve been doing work on HAL, OHM and Tinymail and it’s been good fun. However I don’t want to go the normal contracting house route of taking on employees to supply demand. This inevitably leads to static power structures and static role assignments which generally seems to lead to inefficiency, conflict and boredom as a company grows. Where I want to take Codethink: In business, I believe the future lies in loosely connected individual contractors, dynamically coming together to attack a project or idea, much as was described a few years ago in the seminal article ‘The Dawn of the E-lance Economy’ by Malone and Laubacher (Though I have to admit I hate the term ‘E-lance’..). Back then a few businesses were started up to try to facilitate this, like guru.com and elance.com, but I think these fail fundamentally as they don’t represent the knowledge of the network - that requires real people who actually know each other. Of course here in open source we implicitly understand the importance of knowing each other’s strengths, the importance of introducing new people to our community and building new expertise. This can only happen in loosely-bound structures, where cost of entry is negligible - quite the opposite of the standard large-corporation model. So with Codethink I propose to act as an agent of change. I plan to provide support and help to groups and individuals who want to strike out on their own. I will use my knowledge of the management, architectural and coding expertise of these individuals to provide the service of assembling teams to attack projects for clients. There needs to be another side to the equation. For this to scale, I also need to invest in bringing new people into our open source world and training them as experts able to strike out on their own. So that means taking on employees of a kind - but with the covenant that I will be expecting each employee to be looking at becoming her own boss in time. So my cards are on the table now - for this plan to work it needs to be transparent by default. It may turn out to be a crazy idea that’ll never work in practice, but lets see. If anyone wants to chat with me about these plans, you can find me at rob.taylor@codethink.co.uk on email and XMPP and I’m always around as robtaylor on Freenode and GIMPNet.

Wouter Verhelst: Beid issues: survey

I've been receiving a number of bugreports, both formal bugreports through the BTS and just people contacting me through regular mail or otherwise, about the packages for the Belgian Electronic ID card that I maintain for Debian. I think I'm starting to see a pattern in the bugs, but I'd like to be sure; and in order to be sure, I'd like for people who use beid on Linux to please send me the following information: I'd appreciate it if people willing to help me out could send me an email with their answers to the above at wouter+beid@grep.be. Thanks. The pattern that I'm seeing currently is that people using the ACR38u chipset (as in the eID cardreaders sold by Zetes and the government) on amd64- or em64t-based machines cannot get it to work. What I'd like to find out is whether it works on other 64bit architectures, and/or whether it is acr38u-specific. Of course, I'm not doing this on a for-pay basis (I 'simply' maintain the Debian packages), so there's no guarantees of me fixing these issues here. Your cooperation is greatly appreciated.

Michael Janssen: :

Well, the last day in Greece went swimmingly. It was mostly just relaxing, playing on the Internet, chatting with lovely Di, and working out logistics of taking a long flight back to the United States. The only strange thing about it is that I haven't slept since the last post, which is away from the norm. It's a kind of forced all-nighter caused by the bad scheduling that I made for myself. The flight from to Athens happened at 10:20pm in the evening. This was the latest flight that I could get and assure that I could get to the Athens airport in time for my 7:20 flight to Madrid, which connects through Chicago and back to Minneapolis at last.

I've spent a total of 10 days outside of the United States now, the longest time since I have been alive, according to my knowledge. It has caused some interesting results. I realized that I am inextricably connected to the people who I am familiar with in my life, and being without them decreases my mood significantly, and without contact to them decreases my mood sharply.

I am not alone in this fact. There are many studies that show that people who have more social connections lead happier lives. I am lucky in that I am technologically ept and can connect to my near and dear in a number of ways, and be resourceful in finding other ways to contact them if necessary. I feel that I am lucky to live in a time which it is possible for me to spend so much time apart and still be in connection with people. I am also lucky that I was born in a geological area which enables me to be as such.

At the same time, I am sad to leave this place. It is a nice area, with good food and a very long history. As Nikos reminded me the other day, it is the birthplace of Democracy, which I hold to a fairly high regard. It is also the birthplace of modern medicine, and a significant portion of many early sciences. The wealth of the nation as a whole and as parts is clear to me, and I wish to return.

I've learned part of the language while I am here, and it has made me more cognizant of communication with other cultures. People in Athens seemed put off when I tried to talk in Greek, but in Kos they were at the worst amused at my attempts. The language may not be as romantic to learn as French or Italian, and may not be as useful in the long term as Latin, but it would be interesting to speak nonetheless. I am tempted to start working on some of the i18n Greek QA issues in Debian -- It would help me learn the language more, and also keep me aware of the issues in software when you start working with other countries' characters. I have been lucky to be using a MacBook this entire time with decent Greek support, allowing me to type at least some greek while I was here. It helped me understand even more of the language - I now know mostly the numbers 1-9 at least.

The trip has highlighted for me something which is highly lacking in airports: power. Every airport that I have been to has prominently displayed the signs of wireless access, and has people using their laptops in almost every direction you can look (I am one of those), but they are sorely without power points for people who are using those laptops. This may be a designed flaw in order to save energy, but I don't really believe that 50 or even 5,000 laptops at 65-150W will put a significant dent in the power grid at somewhere as large as an airport, where LCD screens are running 24/7 with ads and bright lights illuminate every corner for all to be seen. I won't even start talking about the airplanes themselves.

All in all, the trip has been a happy one, and I would very much repeat it. I will make different decisions on lodging at some places and probably plan a shorter trip. I however wholly endorse Greece as a vacation spot, and even would consider moving here if offered a position (that would depend highly on Diana as well, obviously). I find it entirely favorable. I hope that this small series on the site has caused you, the reader some pleasure at least, even if it was at my expense.

Now begins the long trip home, on three planes and with 14.5 hours in the airplane and 18 hours in total. It'll be only 10 hours counting local time, unfortunately -- the jet lag will, I'm sure, be horrible.

Comments: (0) Trackbacks: (0)

Comments
  1. No comments
Trackbacks
  1. No Trackbacks

Next.

Previous.