Search Results: "phil"

19 November 2006

Ross Burton: Sound Juicer "Wish I Could Stop You From Talking" 2.16.2

Sound Juicer "Wish I Could Stop You From Talking" 2.16.2 is out. Tarballs are available on burtonini.com, or from the GNOME FTP servers. Loads of fixes!

17 November 2006

MJ Ray: Want a Pint? Give us your prints!

As if the underhand registration of children wasn't bad enough, this NO2ID newsletter describes another way to encourage people to submit to scanning:
"The scheme which is backed by the Home Office was first trialled in Yeovil but plans are afoot to expand the system to Coventry, Hull, Sheffield, Leeds, Gwent, Nottingham, Taunton and possibly Swindon. Drinkers must have their thumbprints scanned and supply their name, address and date of birth to enrol onto the system before they are allowed to enter licensed premises taking part in the scheme." "If you are in any of the towns affected, especially Yeovil, and are willing to do something then send an e-mail to phil@no2id.net (please put "pub fingerprinting" in the Subject).Don't get depressed, don't give in and get a home-brew kit - get angry and do something!" "PS. If anyone knows a pub that would like to take NO2ID beer mats, Newcastle NO2ID has created some with our logo on the front and key counter-arguments on the back, ideal for starting the discussions of the scheme that we need."
Not even our beer is safe from the ID State!

15 November 2006

Per Olofsson: What's the deal with hermeneutics?

Dear Lazyweb,

Today I had a philosophy class and we discussed hermeneutics. But I didn't understand a thing. Not that I ever understand much of what my philosophy teacher says, but I just don't get hermeneutics.

Yes, I've looked it up on Wikipedia, and I've read about it in a book. But I still don't understand. The language used to describe hermeneutics is complicated and weird, and just doesn't make any sense to me.

What I've grasped so far is this: Hermeneutics is a methodology and/or epistemology used in the humanities and, to some extent, the social sciences. Hermeneutics is about interpreting texts. A text can be a literary text or something else (like a film, painting, or perhaps even reality). When you read a text, you need to read it several times and perform "close reading" of the parts. A text consists of the parts and the whole, and somehow they relate to each other, and you need to understand the parts to understand the whole and vice versa (I have no idea what this means). Hermeneutics is also some kind of way of describing reality (epistemology) which differs from the natural science in that it seeks to understand things rather than explain them. In the natural sciences, or the logical positivist tradition, knowledge is sought by explaining cause and effect (at least that's what my teacher says). Proponents of hermeneutics argue that this method does not apply to the humanities. Hermeneutics also employ something called the "hermeneutic circle", which means that you understand a text better the more you read it.

But I don't understand this method. What's so special about reading a text several times? What's the deal with close reading, why is it that good? What kind of knowledge is gained by this method? How does it differ from simply reading a text any number of times and then write an essay about what you think and feel about it? The parts I understand about hermeneutics are only trivialities. Also, there seems to be some kind of rules when you read the text. Like, you need to observe the characters one time, and the plot the second time, etc. Who decided that? Why is it necessary to follow these particular rules, if they exist?

Most importantly, exactly why is hermeneutics a scientific method? To me it looks merely as a practice of reading texts and writing essays about them. These essays are of course subjective; they don't generate any objective knowledge in the natural scientific sense. I'm not saying that it's wrong to write about literature, I just don't understand why a certain method of doing it is considered more scientific than any arbitrary method. In the natural sciences, there are criteria of intersubjectivity, independent testability, verifiability, falsifiability, etc. I see nothing of the like in hermeneutics; I don't know any of its scientific criteria. Apparently you need to refer to specific parts of the text in order to justify your statements (opinions? theories?), but it is a rather vague criterion, and I don't understand the rationale for it.

Another thing is the epistemological side of it. Somehow, hermeneutics is a general theory of knowledge. How that could be I don't know. Why would, for example, a close reading of a text give us the answer to questions like the distance to a particular star or human effect on global warming? Maybe that's not what hermeneutics is intended for. But if it is claimed to be a general theory of knowledge, it should be able to answer those questions in some way.

Maybe all this is just me being stupid or zealous. Or maybe I'm not thinking clearly -- I'm suspecting that I've not been thinking clearly lately. Perhaps I'm refusing to understand out of mere distaste or frustration. My classmates suggested something in the line of that. Perhaps it's because I've read physicist Alan Sokal's brilliant satirical article "Transgressing the Boundaries: Toward a Transformative Hermeneutics of Quantum Gravity", and I am now allergic to the language used by academics in the humanities.

If someone could enlighten me on these issues, that would be much appreciated.

14 November 2006

Clint Adams: The only reason Ani DiFranco is tolerable

I got into my E85-loving Chevy Impala, tickled the throttle, and sped down past 8 Mile, past Telegraph Road, past Madonna University, and all the way to Loving Spoonful. I only stopped to vote at a couple of middle schools. On the way, I didn't sing any Eminem, or Dire Straits, or Madonna, or the Lovin' Spoonful. All I sang was a song by Utah Phillips.

13 November 2006

Nacho Barrientos Arias: Debian NM process movements

I was approved by Debian NM FrontDesk team today, then, only one step remaining to dispatch my application. I hope to be DAM approved soon, go go! :) By the way, tomorrow I will have a skills test to get a driving license, wish me luck!

11 November 2006

David Welton: Bicycling, Running, and Open Source Economics

I am very passionate about open source (or free software, or whatever you want to call it) software. In one way or the other, it seems I'm always drawn back to it, whatever else I'm supposed to be working on. I get a good feeling from the community aspects of it, believe in the potential for technological benefits, and appreciate that being open is often the best way to advance the state of the art. One thing that has always been something of a mystery though, is how the whole thing works in economic terms. There is no doubt in my mind that open source works in terms of creating value, but what isn't so simple is how it sustains itself, and where it makes sense. Some people, like Richard Stallman, sustain that all software should be free. Others take a more laissez faire attitude. Aside from philosophical debates, though, there is a very pragmatic question of how it works in practice, and if the process could be made more efficient, and in which cases should one simply decide to 'go proprietary' in terms of maximizing monetary returns. In the proprietary software world, this is all rather "simple" - (well, conceptually at least - it's not actually easy for anyone). If you write some software that you then sell, and people like it, they'll buy it, which in turn gives you money that you can funnel back into improving the product. If it stinks, you won't get any money, and presumably you'll move on to something you are more qualified for. It's a pretty simple and direct feedback loop. With free software though, it gets much more complex, because there is not necessarily an economic link between users and developers, which might mean that while the software provides very real economic benefits in terms of flexibility, avoiding vendor lock in, and low costs, none of those benefits necessarily flow to the person or people who actually wrote the software. This, in turn, means that they may have to support themselves in some other way and may not be able to dedicate much time to working on the code. This system is thus 'inefficient', because there is a disconnect between the value and the person who created it. A lot of thought has been dedicated to "solving" this problem, but it doesn't seem to have a satisfying answer just yet, although there are several free software companies that clearly do function, with a variety of models. One of the original ideas about how people would live in an entirely free software based economy, proposed by Stallman, is services. In other words, the software is free, but you get money to fix it, teach people about it, improve it, provide support for it, customize it and so on. While riding my bike around the Colli Euganei the other day, it occured to me that a pure services business is a lot like running. The minute you have fewer clients, go on vacation, or otherwise ease up... revenue drops proportionately, just as if you had slowed from a run to a walk. Ease off on the effort completely, and the money is gone, because you have no way of carrying your momentum forward. With a bicycle, on the other hand, it's more like a product-based business. It's certainly still an effort, and you have to be strong to beat your competitors, however, you can stop pedaling for a moment now and then, and you do get the descents after riding up the hills, and for a few meters at least, you can stop pedaling altogether and coast. What prompted me to think about products versus services was a small web application I developed recently. It's a nice ajaxy to-do list/time-tracker that I started developing with Ruby on Rails. My first instinct, and the easiest thing to do, of course, would be to open source it and let it go at that, but... I also wonder if I could make a little bit of money at it if I were to commercialize the product somehow. Not "get rich quick" money, but enough to pay me back for the time I sunk into making it work, and enough to let me justify doing more work on it to meet people's needs and requests. A couple of strategies come to mind: Whatever ends up happening with it, I'll be sure to post further information as it becomes available.

Phil Hands: MBNA's lax attitude towards security

Today I received a copy of the PIN for my MBNA credit card in the post, despite not having asked for it. In response, I've cancelled my account, and reported their incompetence to You and Yours. I suppose I shouldn't be all that surprised, since MBNA have a habit of randomly sending out unsolicited cheques (which also has worrying security implications), but I actually found it quite shocking to see the PIN that I'd chosen printed in clear text. Obviously, in the first instance they generate a random PIN, and print it out, but I was rather hoping that their systems would be set up so that that random PIN, and certainly any PIN subsequently selected by the customer, would not be available in clear text at any time. If I forget my PIN, they should generate a new one, not remind me of the old one. They should not be able to remind me of the old one. The two people I talked to seemed surprised that I would cancel an account that I've had for about 13 years over a single PIN in the post, but given that that's their policy, I don't think it's a massive leap to think that a corrupt postman might be tempted to collect these PIN letters (which are pretty easy to spot and most of which are not being expected, so won't be missed). Then, assuming that a reasonable percentage of people will match MBNA's laxness by setting all their PINs alike, the criminals will be armed with all the information they need to do a targeted mugging for the card(s), with an average return in tens of thousands of pounds, especially if they hospitalise/kill the victim to ensure they don't get to cancel the cards.

10 November 2006

David Nusinow

With all the talk about binary drivers, and Ubuntu's recent decision to ship them by default, I was going to try and rant or philosophize about the various issues it raises, and how I think ripping Ubuntu a new one for this move is justified, but instead I'm going to talk about kitties and happy things.

On the XSF front, the coolest news has come from people other than me. In addition to providing compiz updates and improvements, Thierry Reding has been busy cleaning up the Debian mesa packaging in the XSF repo. Mesa's Debian maintainer hasn't been very active over the past few months, so Thierry has stepped in to help out there.

Julien Cristau, who helped in the early work moving from XFree86 to Xorg, has returned to the XSF to take over maintainance of xterm, which I've almost completely neglected. Both these packages needed more dedicated maintainance than I could provide, and it's great to see them both being beaten in to shape.

Drew Parsons has been as industrious as ever, packaging updates for drivers so we can ship Etch with driver support that is very close to what will be released upstream as 7.2. In addition, he's packaged the modesetting branch of the i810 driver. This is an experimental development branch that will become the mainline in the nearish future, and it basically allows the driver to set modelines that aren't specified by the BIOS, just like other drivers.

Christian Perrier continues to rock the translations.

I've been doing unglamorous work bringing the Xorg docs in to the late 90's, thus making sure that we ship with docs so that users can tell what's on their systems.

Finally, Thierry has put a ton of work in building infrastructure to move the XSF svn repo over to git. I've been evaluating this, and hopefully we can make the move soon so that we hit etch+1 development running. Using git will provide an easier means of pulling from and pushing to upstream. Hopefully, downstream derivatives will also use git as well to facilitate this. I'm really excited about all of this because it feels like we're active across the board.

And now for the kitties. Nicole and I have adopted a cat. We get to take her home from the shelter next Wednesday, so if some random characters start to appear from me on irc, it's probably her fault. Rest assured that when I never run for DPL, she will be a far better running mate than Zeke. As a favor I would like to ask you, all my loyal readers: if I start to talk about my cat constantly, like one would one's own child, please punch me in the kidney. Thank you.

5 November 2006

Antti-Juhani Kaijanaho: If I were American

… which I certainly am not …
What American accent do you have?
Your Result: The Midland
“You have a Midland accent” is just another way of saying “you don’t have an accent.” You probably are from the Midland (Pennsylvania, southern Ohio, southern Indiana, southern Illinois, and Missouri) but then for all we know you could be from Florida or Charleston or one of those big southern cities like Atlanta or Dallas. You have a good voice for TV and radio.
The West
Boston
The South
Philadelphia
The Northeast
The Inland North
North Central
What American accent do you have?
Take More Quizzes

Mike Hommey: Meme time: What american accent do you have ?

What American accent do you have?
Your Result: The Northeast
Judging by how you talk you are probably from north Jersey, New York City, Connecticut or Rhode Island. Chances are, if you are from New York City (and not those other places) people would probably be able to tell if they actually heard you speak.
Philadelphia
The Inland North
The Midland
The South
Boston
The West
North Central
What American accent do you have?

3 November 2006

Julien Danjou: DeFuBu contest #4

Bug Welcome to this 4th issue of the DeFuBu contest, the monthly championship of the funniest bug reported to the Debian BTS. The challengers How the vote has been done Four Debian related people voted for these bugs, Philipp Kern, Florent Bayle, Cyril Brulebois and Gregory Colpart.
Mohammed Adn ne Trojette should vote quicker next time. Full ranking Bugs Challengers The winners Notes To participate, simply drop me an email with a bug number. About DeFuBu

2 November 2006

Jon Dowland: Post "RSI"

A quick summary of the last few weeks. It's been a bit quiet, mainly because I had a cold which kept me from work for 3 days. However, during the build up and for a time after that I was keeping offline as much as possible as I had "arthgesic" symptoms (in short, painful wrists). I took a look at the debconf6 DVD release candidates and found that the menus didn't work quite as expected on two of my hardware players. After a few exchanges of tests (change this byte here, etc.), Ben Hutchings managed to sort the problem in time for the final release. Ben also kindly helped me get doom-package into shape and sponsored the upload. After a nail-biting wait in NEW (which in all fairness was not long at all), the package has made it into Etch. One package I'm working on which is not intended for Etch happens to be a Java program. It's quite an interesting one for me, too, because it's graphical, but it uses AWT rather than Swing, and happens to work very well with the Free Software Java implementations. I'm up to Philosophy and Procedures in the NM process. In preparation, I'm re-reading all the main Debian documents. This has actually proved fruitful, as I've spotted some mistakes and started filing corrections for them. This reminded me of the AM and NM talks at Debconf6, where there was some discussion about how feasible practical tasks are for the NM process. I've missed a few weeks of Debconf work, but I managed to catch the meeting on Monday night and I'm taking charge of Accommodation from here on in. The importance of this is rather frightening but I've assured people I'll scream for help if it's necessary. Finally, I've just bought a Thecus n2100 home NAS server. This is an interesting ARM-based machine that happens to work reasonably well with Debian. They also seem to have supported the porting effort by providing free machines to some developers, which is great. Although I did buy this to function as a NAS server, I'm hoping I can help out with the port (and learn a bit about embedded systems in the process).

30 October 2006

Jurij Smakov: Papers, please ?

Today I have witnessed an incident which involved a person getting kicked from #debian-devel, when he refused to disclose his real name (I did not notice any other disruptive behavior on his part). When I objected to that, I was quite surprised to find that quite a lot of people found this an acceptable administrative measure (the channel rules wiki page was promptly created to reflect that). While I find it totally acceptable, that a person must reveal his/her real name when becoming a Debian Developer, I think that having such a requirement in place for an unrestricted public Debian channel is completely inappropriate. In my opinion, the right to remain anonymous is fundamental, and I don’t care about the person’s real name, as long as he/she has something useful to contribute. I also believe that protection of this right is a part of the core Debian philosophy, as we refuse to recognize software as free, if it impedes on the person’s right to remain anonymous (”Dissident test” in the DFSG FAQ). Therefore, the support of fellow DDs (some of them actively involved in NM process) for such measures looks like nothing but pure hypocrisy to me. I have added a note stating my disagreement on this issue to the wiki page.

27 October 2006

Jonathan McDowell: Another year, Another Expo

I spent the past couple of days at LinuxWorld UK, mostly on the Debian stand. I'm not sure I'd go as a punter these days; I don't think a lot changes year on year. However I do think it's good for us to turn up and show our faces so people can come and talk to us and realise we're wonderful people. Plus it's always good to see people I haven't seen in ages. We sold a lot of T-Shirts (even the red one with yellow writing that looks like something Phil would come up with after too much vodka [I bought one of these myself]). We didn't sell a lot of DVDs, but that's been happening since broadband became more pervasive. There were a reasonable number of people who just stopped to chat (shouting "Use Debian, it's great!" at people as they walked by was surprisingly effective). Lots of questions about how we felt about Ubuntu. Not really many about why we hadn't released yet which is a change! I also found a new toy I think I want; the Nokia E70. Steve has one of these and it looks pretty sweet; 3G+WLAN, a keyboard and a screen that, while not that big, manages a pretty good PuTTY session in 80x43 or so. And all of this in something not that much larger than a normal phone. That's appealing. I'd been sort of lusting after an HTC TyTN, but reports of poor reliability have put me off. And Simon has put me off the 9300i by saying it's quite slow as a phone. Finally, courtesy of Trexy, I present a new, work safe, goat sex: Goat Sex And now I will spend the next week sleeping I think.

Scott James Remnant: Upstart in Universe

upstart is a replacement for the init daemon, the process spawned by the kernel that is responsible for starting, supervising and stopping all other processes on the system. The existing daemon is based on the one found in UNIX System V, and is thus known as sysvinit. It separates jobs into different “run levels” and can either run a job when particular run levels are entered (e.g. /etc/init.d/rc 2) or continually during a particular run level (e.g. /sbin/getty). The /etc/init.d/rc script is also based on the System V one (and is in the sysv-rc package), it simply executes the stop then start scripts found in /etc/rcN.d (where N is the run level) in numerical order. Why change it? Running a fixed set of scripts, one after the other, in a particular order has served us reasonably well until now. However as Linux has got better and better at dealing with modern computing (arguably Linux’s removable device support is better than Windows’ now) this approach has begun to have problems. The old approach works as long as you can guarantee when in the boot sequence things are available, so you can place your init script after that point and know that it will work. Typical ordering requirements are: This worked ten years ago, why doesn’t it work now? The simple answer is that our computer has become far more flexible: We’ve been able to hack the existing system to make much of this possible, however the result is chock-full of race conditions and bugs. It was time to design a new system that can cope with all of these things without any problems. What we needed was an init system that could dynamically order the start up sequence based on the configuration and hardware found as it went along. Design of upstart upstart is an event-based init daemon; events generated by the system cause jobs to be started and running jobs to be stopped. Events can include things such as: In fact, any process on the system may send events to the init daemon over its control socket (subject to security restrictions, of course) so there is no limit. Each job has a life-cycle which is shown in the graph below: The two states shown in red (“waiting” and “running”) are rest states, normally we expect the job to remain in these states until an event comes in, at which point we need to take actual to get the job into the next state. The other states are temporary states; these allow a job to run shell script to prepare for the job itself to be run (“starting”) and clean up afterwards (“stopping”). For services that should be respawned if they terminate before an event that stops them is received, they may run shell script before the process is started again (“respawning”). Jobs leave a state because the process associated with them terminates (or gets killed) and move to the next appropriate state, following the green arrow if the job is to be started or the red arrow if it is to be stopped. When a script returns a non-zero exit status, or is killed, the job will always be stoped. When the main process terminates and the job should not be respawned, the job will also always be stopped. As already covered, events generated by the init daemon or received from other processes cause jobs to be started or stopped; also manual requests to start or stop a job may be received. The communication between the init daemon and other processes is bi-directional, so the status of jobs may be queries and even changes of state to all jobs be received. How does it differ from launchd? launchd is the replacement init system used in MacOS X developed as an “Open Source” project by Apple. For much of its life so far, the licence has actually been entirely non-free and thus it has only become recently interesting with the licence change. Much of the goal of both systems appears initially to be the same; they both start jobs based on system events, however the launchd system severly limits the events to only the following: Therefore it does not actually allow us to directly solve the problems we currently have; we couldn’t mount filesystems once the “filesystem checked” event has been recived, we couldn’t check filesystems when the block device is added and we certainly couldn’t start daemons once the complete filesystem (as described by /etc/fstab) is available and writable. The launchd model expects the job to “sit and wait” if it is unable to start, rather than provide a mechanism for the job to only be started when it doesn’t need to wait. Jobs that need /usr to be mounted would need to spin in a loop waiting for /usr to be available before continuing (or use a file in a tmpfs to indicate it’s available, and use that modification as the event). This is not especially surprising given that Apple have a high degree of control over both their hardware and the actual underlying operating system; they don’t need to deal with the wide array of different configurations that we have in the Linux world. Had the licence been sufficiently free at the point we began development of our own system, we would probably have extended launchd rather than implement our own. At the point Apple changed the licence, our own system was already more suitable for our purposes. How does it differ from initng? Initng by Jimmy Wennlund is another replacement init daemon intended to replace the sysvinit system used by Linux. It is a dependency-based system, where upstart is an event-based system. The notion of a dependency-based system is interesting to talk about at this point. Jobs declare dependencies on other jobs that need to happen before the job itself can be started. Starting the job causes its dependencies to be started first, and their dependencies, and so on. When jobs are stopped, if running jobs have no dependencies, they themselves can be stopped. It’s a neat solution to the problem of ordering a fixed boot sequence and the problem of keeping the number of running processes to a minimum needed. However this means that you need to have goals in mind when you boot the system, you need to have decided that you want gdm to be started in order for it, and its dependencies, to be started. Initng uses run levels to ensure this happens, where a run level is a list of goal jobs that should be running in that run level. It’s also not clear how the dependencies interact with the different types of job, a dependency on Apache would need the daemon to be running where a dependency on “checkroot” would need the script to have finished running. Upstart handles this by using different events (“apache running” vs. “checkroot stopping”). Again while interesting, Initng does not solve the problems that we wanted to solve. It can reorder a fixed set of jobs, but cannot dynamically determine the set of jobs needed for that particular boot. A typical example would be that if the only dependency on the job that configures networking is the mount network filesystems job, then should that job fail or notbe a goal (e.g. because there are no network filesystems to be mounted) the result is that network devices themselves will not be configured. You could make everything a goal, and just use the dependencies to determine the order, however this is less efficient than just ordering the existing sysv-rc scripts (which can be done at install time). Another example is that often you simply don’t know whether something is a dependency or not without reading other configuration, for example the mount network filesystems may be a dependency of everything under /usr or may just be a dependency of anything allowing the user to login if it just mounts /home. The difference in model can be summed up as “initng starts with a list of goals and works out how to get there, upstart starts with nothing and finds out where it gets to.” How does it differ from Solaris SMF? SMF is another approach to replacing init developed by Sun for the Solaris operating system. Like initng it’s a dependency-based system, so see above for the differences between those systems and upstart. SMF’s main focus is serive management; making sure that once services are running, they stay running, and allowing the system administrator to query and modify the states of jobs on the system. Upstart provides the same set of functionality in this regard, services are respawned when they fail and system administrators can at any time query the state of running services and adjust the state to their liking. Will it replace cron, inetd, etc? The goal of upstart is to replace those daemons, so that there is only one place (/etc/event.d) where system administrators need to configure when and how jobs should be run. In fact, the goal is that upstart should also replace the “run event scripts” functionality of any daemon on the system. Daemons such as acpid, apmd and Network Manager would send events to init instead of running scripts themselves with their own perculiar configuration and semantics. A system administrator who only wanted a particular daemon to be run while the computer was on AC power would simply need to edit /etc/event.d/daemon and change “on startup” to “on ac power”. What about compatibility? There’s a lot of systems administrators out there who have learned how Linux works already and will not want to learn again immediately, there’s also a large number of books that cover the existing software and won’t cover upstart for at least a couple of years. For this reason, compatibility is very important. upstart will continue to run the existing scripts for the forseeable future so that packages will not need to be updated until the author wants. Compatibility command-line tools that behave like their existing equivalents will also be implemented, a system administrator would never need to know that crontab -e is actually changing upstart jobs. Does it use D-BUS?
“To D-BUS people, every problem seems like a D-BUS problem.” —Erik Troan
The UNIX philosophy is that something should do just one job, and do it very well. upstart’s one job is starting, supervising and stopping other jobs; D-BUS’s one job is passing messages between other jobs. D-BUS does provide a mechanism for services to be activated when the first message is sent to them, thereby starting other jobs. Some people have taken this idea and extended it to suggest that all a replacement init system need do is register jobs with D-BUS and turn booting into a simple matter of message parsing. This seems wrong to me, D-BUS would need to be extended to supervise these services, provide means for them to be restarted and stopped; as well as deal with being process #1 which means cleaning up after children whose parent’s have died, etc. It seems far simpler to arrange for D-BUS to send an event to init when it needs a service to be started, and focus on being a very good message passing system. The IPC mechanism used by upstart is not currently D-BUS because of various problems, however it’s always been expected that even if init itself doesn’t communicate with D-BUS directly, there would be a D-BUS proxy that would ensure messages about all init jobs and events would be given to D-BUS and D-BUS clients could send messages to init to query and change the state of jobs. What is the implementation plan? Because this is process #1 we are changing, we want to make sure that we get it right. Therefore instead of releasing a fully-featured daemon and configuration to the world, we’re developing it in the following stages:
  1. Principal development; at the end of this stage the daemon has been implemented and can manage jobs as described.
  2. Replacement of /sbin/init while running the existing sysv-rc scripts. This is the shake-down test of the daemon, can it perform the same job as the existing sysvinit daemon without any regressions?
  3. /etc/rcS.d scripts replaced by upstart jobs. These consitute the majority of tasks for booting the system into at least single-user mode, and contain many of the current ordering problems and race conditions. If the daemon solves the problems here, it will be a success.
  4. Other daemon’s scripts replaced by upstart jobs on a package-by-package basis; this will be an ongoing effort during which upstart will continue running the existing sysv-rc scripts as well as its own jobs. During this time the event system may be tweaked to ensure it truly solves the problems we need.
  5. Replcement of cron, atd, anacron and inetd. This will happen alongside the above and result in a single place to configure system jobs.
  6. Modification of other daemons and processes to send events to init instead of trying to run things themselves.
The current plan is that we will be at least part of the way into stage #3 by the time edgy is released, with that release shipping with upstart as the init daemon and the most critical rcS scripts being run by it to correct the major problems For edgy+1 we hope to have completed stage #5 and be at least part of the way into the implementation of stage #6. From the start of development of edgy+2, no new packages will be accepted unless they provide upstart jobs instead of init scripts and init scripts will be considered deprecated. What state is it in now? The init daemon has been written and is able to manage jobs as described above, receiving events on the control socket to start and stop them. This has now been uploaded to the Ubuntu universe component in the upstart package for testing before it becomes the init daemon. We welcome any experienced users who want to help test this; install the package and follow the instructions in /usr/share/doc/upstart/README.Debian to add a boot option that will use upstart instead of init. If your system boots and shut downs normally (other than a slightly more verbose boot without usplash running) then it is working correctly. Other types of events will be added as required during development and testing. Currently only a basic client tool (initctl) has been written, compatibility tools such as shutdown will be written over the next week or two before it replaces our sysvinit package.

17 October 2006

Russell Coker: run an insecure system and get raped

After a recent mailing list discussion about computer security I'm going to be quoted in someone's .sig so I think that I need to write a blog entry.

Here is an article about a 2001 case of a man who was arrested for pedophilia and spent 9 days in prison: http://www.xatrix.org/article.php?s=3549 .

This article on The Register has links to a few other articles and describes how a man has been found guilty due to the apparent actions of a hostile program on his machine (and served 20 days jail time).

Rumor has it that pedophiles are really disliked in prison and that they are often attacked by other prisoners. Even spending a few days in prison as a pedophile could be enough to get raped.

Run the latest version of the OS for your PC with all security patches. If you buy a second-hand machine reformat and reinstall as the first thing that you do just in case the last owner had kiddy porn (even though they may not have known of it).

Wouter Verhelst: Linux 2.6.18 vs NBD

Version 2.6.18 of the kernel contained a small(ish) change to <linux/nbd.h>:
--- nbd.h	2006-10-17 19:53:55.000000000 +0200
+++ /usr/include/linux/nbd.h	2006-09-20 05:42:06.000000000 +0200
@@ -37,19 +37,28 @@
 /* userspace doesn't need the nbd_device structure */
 #ifdef __KERNEL__
 
+#include wait.h>
+#include mutex.h>
+
 /* values for flags field */
 #define NBD_READ_ONLY 0x0001
 #define NBD_WRITE_NOCHK 0x0002
 
+struct request;
+
 struct nbd_device  
 	int flags;
 	int harderror;		/* Code of hard error			*/
 	struct socket * sock;
 	struct file * file; 	/* If == NULL, device is not ready, yet	*/
 	int magic;
+
 	spinlock_t queue_lock;
 	struct list_head queue_head;/* Requests are added here...	*/
-	struct semaphore tx_lock;
+	struct request *active_req;
+	wait_queue_head_t active_wq;
+
+	struct mutex tx_lock;
 	struct gendisk *disk;
 	int blksize;
 	u64 bytesize;
@@ -68,11 +77,11 @@
  * server. All data are in network byte order.
  */
 struct nbd_request  
-	u32 magic;
-	u32 type;	/* == READ   == WRITE 	*/
+	__be32 magic;
+	__be32 type;	/* == READ   == WRITE 	*/
 	char handle[8];
-	u64 from;
-	u32 len;
+	__be64 from;
+	__be32 len;
  
 #ifdef __GNUC__
 	__attribute__ ((packed))
@@ -84,8 +93,8 @@
  * it has completed an I/O request (or an error occurs).
  */
 struct nbd_reply  
-	u32 magic;
-	u32 error;		/* 0 = ok, else error	*/
+	__be32 magic;
+	__be32 error;		/* 0 = ok, else error	*/
 	char handle[8];		/* handle you got from request	*/
  ;
 #endif
Which meant that the userland NBD utilities would not build against that anymore. The Debian packages are unaffected (they ship their own nbd.h since they need to build on non-Linux ports, too), but that doesn't mean we can leave it like that. The first hunk is unimportant, as it's enclosed within an #ifdef __KERNEL__. The others represent an interface change: rather than having u32 and u64, they come with __be32 and __be64. Nothing that can't be fixed with a few #define lines, but still something that had to happen. So today I released nbd versions 2.7.8 (from the outdated 2.7-branch), 2.8.7 (from the current stable and supported 2.8-branch), and 2.9.0-test3 (from the current development branch) to sourceforge, and released version 1:2.8.7-1 to Debian unstable. I'll probably also release 1:2.9.0-test3-1 to Debian experimental "some time soon", but not just yet. Apart from the obvious #define lines, the 2.9.0-test3 release also fixes some issues (in contrast to -test2 which was a bit of a crashing horror, -test3 actually works) and has revamped multi-file support. Most of the changes in -test3 (in fact, most likely all of them apart from the #define lines) were done by Phillip Hellewell, whom I owe a beer if I ever see him. Occasionally, the 2.9 line has some extra code and features that aren't available in 2.8, such as configuration file support and the ability to serve multiple block devices from one nbd-server parent process. Check it out if you have a chance and/or are interested. On top of that, the 1:2.8.7-1 release also contains some fixes in the debconf stuff, that close 3 bugs. Am I cool or what? Nah.

Martin F. Krafft: Digging the iAudio

A little while ago, I finally gave in and bought myself a music player. Now I find it hard to imagine how I coped all these years without one -- I did not have a music player since my MiniDisk player from about seven or eight years ago. I bought the iAudio X5L with 30Gb of space as part of a fall special sale, and even though it's still a bit on the expensive side, I am glad I did go with the X5L as opposed to the X5 or models by other manufacturers. Here's my analysis, which isn't all positive:
  • The iAudio players can play more formats than any other player I've seen, including, of course, Ogg Vorbis and Flac.
  • The casing is sturdy and smooth; the player is a little heavy but not too heavy. The display is gorgeous, although I would not watch videos on it even though I could. All in all, it feels and looks great.
  • The software seems archaic at first, but after a little use it's quite enjoyable and intuitive to use. It does not compare to the scroll wheel of the iPod when scrolling large directories, but it does quite alright. I really appreciate being able to browse while listening. Also, the display contains a lot more information than on any other player I've seen.
  • One quickly gets used to the joystick; however, considering that the right direction is the one used the most, it starts to go loose after only a bit of usage. This has not really been an issue so far, though.
  • The X5L has only 30Gb of storage, as opposed to the 60Gb you can get with the X5. However, the L in the product title refers to long-life, and the battery in the X5L lasts about twice as long as the one in the X5. I just took the device for a spin in the alps and after two 5 hour train rides of continuous playing, and another 6 hours of playing at the cottage, the battery was still around 40% full. If I ever run out of space, I could exchange the internal 1.8" harddrive for a bigger one.
  • I can use the device to record from microphone or line-in (using an adapter) directly to MP3, and the microphone's quality is quite fair. This is great!
  • The sound quality is good, but all the sound enhancers, like BBE and Mach3Bass are useless; better leave them off.
  • When connected to a computer, the harddrive appears to the machine as a regular USB storage device, so no software is required to maintain the data on it.
  • I am a little annoyed by the fact that the USB connector on the device can only be used to connect cameras and the like to store data on the X5L's harddrive. In order to dump data onto the device, you have to connect a little dongle and then attach the USB cable there.
  • It does not appear to be charging while connected via USB. I am not sure about this yet though, since the configuration menu offers an option to enable and disable charging via USB.
  • I've been told that firmware upgrades aren't rare and that they're easy to apply.
  • It comes with two years of warranty (as opposed to the default one year in Switzerland).
Altogether, the player isn't perfect, but it does what it should (and more) quite well. I can warmly recommend it. It comes in at a slightly higher price than the iPod, but quite frankly I am happy to support the manufacturer Cowon for its product line and philosophy of supporting open formats and caring for the customer. NP: Porcupine Tree / Tarquin's Seaweed Farm (Side B)

10 October 2006

Matthew Garrett

So it's been pointed out that since I'm no longer terribly involved in Debian, I possibly shouldn't be on Planet Debian nowadays. So unless there's any violent objections I'll ask to be removed at the end of the week - my RSS gunk is at http://mjg59.livejournal.com/data/rss for those who want to read my delightful prose in any case.

Anyway. Some token Debian-related content. Mozilla corp are unhappy with Debian providing a package called "firefox" unless every patch provided has been approved by Mozilla in advance (there's also some stuff about the logo, but that's basically a bizarre corner aspect of the same problem). I'm not going to argue against this on philosophical grounds - it's clear that that isn't going to change anybody's mind. Instead, let's compare this to some other major applications:On the Mozilla side of things, the closest I can really come up with is cdrecord. There's some pretty strong parallels (upstream being unhappy about various patches, requiring a sufficiently different work to have a different name), but the end result in the cdrecord case was that we ended up with an application that was poorly integrated with the rest of the Linux environment for the sake of remaining consistent across different operating systems.

I'm not saying that that's going to happen to Mozilla. But we've seen numerous cases where allowing vendors to distribute derived versions has encouraged development and testing of new ideas, and I think in most cases that's resulted in benefits to the upstream project. The fundamental problem with refusing to allow patches that cause significant deviations from upstream behaviour is that it makes it impossible for anyone to actually get things like UI experiments into the hands of users. With Gnome, if upstream don't like your idea you have the opportunity to prove them wrong and possibly change their mind. With Mozilla, if upstream don't like your idea you're pretty much screwed. Most distributions are going to be unhappy about losing the magic Firefox branding, so you're unlikely to sell them on it. And you're not even allowed to provide binaries or source on your website unless you've renamed it away from Firefox.

I think the Mozilla corporation are missing something here. We shouldn't be prizing cross-platform consistency over integration and innovation, and we certainly shouldn't be doing our utmost to make it difficult for people to experiment with code. There's a reason that cd writing under Linux has been sucky for years, and it's not because people lacked the technical ability to make it better.

[1] Ok, the X.org case is slightly confused by the fact that they are upstream now. But without the ability to fork under the same name, they wouldn't have been.

8 October 2006

Biella Coleman: My Reading

So people may be wondering, How does Biella pass her time in the vast, desolate Canadian north? Thankfully there are many things to do in Edmonton proper, but I have delved quite a bit into reading so I thought I would take a break and give small reviews of the books I have read or am reading as they are all quite good. I am trying to be more systematic about my reading habits so I am back to using citeulike. I am adding anything new I read and then as I go back to I have already read (for articles), I am adding them to the list also. I hope this pays off in the future! I started the reading bash with a book that was recommended to me over a year ago while I was still in Chicago: The Fugitive’s Property: Law and the Poetics of Personhood as it deals with the bread and butter of my own work, intellectual property, liberalism, market capitalism, and American history. I found the introduction enlivening and was sufficiently interested to continue on. I think there is not a lot of innovative work in the field of intellectual property (only because it has been covered very well) and to bring together slavery/the fugitive person and intellectual property under the same analytical lens, seems productive. Best looks at how the legal treatment of the slave and that of IP, hold striking parallels for their highly fugitive (formal) nature, driven and intensified by the legal/market framework that makes personhood into property. There is a lot of good stuff in there (including a fantastic discussion on legal positivism) but in the end, the labor it took to sift through some really obtuse prose was too much for me. I can’t remember the last time I languished under the heavy weight of language that was far too ornate and under sentences that just lacked clarity. This was compounded by the fact that he assumed you knew a fair bit about slave history, which I did not. My drive also escaped me and while I hope to return to it later, I took a break and turned to more readbale material. After such heavy linguistic ornateness, I needed an antidote, QUICK, and I knew exactly where to go: William Sewell and his book I had on my shelf also nearly for a year: The Logics of History. Along with being a first rate historian he is like that black instrument popularized in the 1980s by the likes of Herbie Hancock, and Brian Eno, he is a synthesizer with an amazing ability to write clearly. Being the synthesizer that he is, he is skilled at connecting the dots between various theoretical topics like event, structure, and agency, making the theoretical implications so crystal clear you feel happy to have entered into a field (the social sciences that is) that feels awfully arcane and pointless at times. I left Stehpen Best, which was like leaving a cluttered medieval castle and into a simply decorated room filled nothing with good theoretical feng shui (I think about writing in spatial terms more than ever). He just makes reading fun, even when the topics can be less than enthralling. Many of the essays were published previously and I had read a number of them, such as his famous essay on structure and agency. What I appreciated along with the great writing, was that he takes serious the question of plurality of social life within the net of various social, economic, political determinants. So while he assumes the existence of structure (and turns Marshall Sahlins to establish), he also is quick to show that structure, like a cultural system, can only act as partial (and unexpected determinants of social life) because of the existence and presence of events (which is really Sahlins great masterful point) but more importantly because of the plurality of structures… This was perhaps on the the central motifs in my dissertation; while I placed hacking within the cultural lineage of liberalism, in no way is this the only cultural system that hackers operate through and with; they move through a cultural domain more intrinsic to their own praxis, not to mention other systems of value that reverberate more widely among the digerati… And it is this movement between social positions that allows for forms of reflexivity and social change. I primarily used Bakhtin to make this point but now I got Sewell to add to this mix. Here is a nice passage from the book that makes this point:
I would argue that a multiple conception of structures would make subjects cultural creativity easier to explain. If the cultural structures by which subjectivities are formed are multiple, then so are the subjectivities… Because persons, symbols, and objects of cultural reference overlap between structural realms, structurally generated rules, emotions, categories, and senses of self can potentially be transposed from one situation to another. Indeed, if actors commonly have the experience of negotiating and renegotiating the relationships between noncongruent cultural structures, it follows they should have some intellectual distance on the structural categories themselves, that they should be able to view one set of cultural categories from the point of view of others that are differently organized, to compare and critizise categories and categorical logics, to work out ways of harmonization or odering the seemingly contradictory demands of different cultural schemes. A multiple conception of structure, consequently makes human creativity and reflection an integral element in the theory of history, not a philosophically prior metaphysical assumption. p. 213
And here is a more engaged review that is a little more critical than my very short comments. As part of a reading group organized by my tireless supervisor, I am also reading The Cultural Locations of Disability written by two of the most prolific scholars in the field, Sharon Snyder and David Mitchell. Since I am a novice in field it is hard for me to judge the two chapters we have so far read but it is a total total total treat reading a book slowly with a group of other folks from a vast range of departments. So far I appreciate the larger arguments presented in the introduction. For example, they point to two broad categories—capitalism and modernity/enlightenment– as driving forces in a new wave of obsession with the disabled. So while capitalism’s insistence on measuring the worth of humans through an abstract and actual ability to labor, marginalizes those who cannot offer their constant labor power (and makes them an “odd” cultural object), modernity–in its desire to march forward to the mysterious plane of progress, offers a technological promise to eradicate what it designates as deviant or primitive. As they nicely sum up: In a culture that endlessly assures itself that it is on the verge of conquering Nature once and for all, along with its own primitive instincts and the persistent domains of have-nots, disability is referenced with respect to these idealized visions. As a vector of human variability, disabled bodies both represent a throwback to human prehistory and serve as the barometer of a future without deviancy. p. 31 I, think, however, they should have also included some discussion of liberalism, which in many ways, was the legal and philosophical engine that helped to naturalize capitalism not to mention it also offered a vision of person, in which self-development, expression, and discrete autonomy was deeply cherished. Seen in this liberal light, disability becomes also a type of tragedy that can be resolved though new technological interventions they discuss under the guise of modernity. I have just started Michelle Murphy’s Sick Building Syndrome and the Problem of Uncertainty: Environmental Politics, Technoscience, and Women Workers, which promises to be quite a tour de force into the contentious politics of uncertainty and the play of perceptibility and imperceptibility that surround one of many many syndromes sick building syndrome that now are part and parcel of the medical and patient advocacy field. Along with this I read and finished Andrew Lakoff’s Pharmaceutical Reason: Knowledge and Value in Global Psychiatry, which will make for great teaching, and has one of the nicest discussions on the way in which psychiatry’s insecure status among the other medical science was one of the driving forces toward embracing the new scientism of the 1980s that coincided with new more general neoliberal trends. Another nice move about the ethnography is that he was able to clarify some of the trends and rationalities of American and European psychiatry by examining how it was received and resisted among more psychoanalytical Argentinian therapists. Very classicial anthropological lens in that sesne. Finally I am in the middle of Play Money: Or, How I Quit My Day Job and Made Millions Trading Virtual Loop and I will say more about it when I am done, which should be soon as I am tearing through it evern night. I have been waiting for this book for a long while now because Dibbell is part of that trinity (Steven Levy, Bruce Sterling, Julian Dibbell) that offers some of the best writing on hackers, the internet, and virtual worlds. And this book continues in that tradition of providing a fantastic read, a vivid ethnographic picture of the topic at hand, along with key insights into the nature of economies, money, and plau within (and outside of) virtual landscapes. What I respect about Julian Dibbell is that he took a long time to get this book out. He started the research in 2003 and then spent a few years writing up. I think there is a lot of pressure to get any material or book on “virtual whatever” out there as quick as possible but for the most part I think that is a mistake. You need to let these things brew a long while or else they won’t acquire that taste of a finished product.

Next.

Previous.