Search Results: "ana"

22 June 2006

Andreas Barth: Python-central

There are lots of conspiracy theories flying around about python-central. However, the fact is that python-central is an original Debian tool. I'm really very unhappy to see Matthias hard work always being refused as "Ubuntu foo". In reality, he puts lots of time and energy into Debian, and we thank him very little for that. Even more, the major drawback of the competiting python-support is that it refuses to handle the real issues. Of course, reality is complex. But it is way worse if one writes a tool that just breaks if a package earlier in the dependency chain decides to change from python scripts to extensions (i.e. c-code linked with python). Furthermore, the maintainer of python-support first agreed on some common solution for both tools (i.e. the new python policy), and now suddenly removed his approval, and creates another competiting way. I'm all for competition between software, but I'm not too happy with competition of policies - because policies describe how different packages work together, that means, it is an interface description. In the end, my summary is that I recommend to use python-central. And I'm thankful that Matthias did a careful and good analysis how this implementation is done. Update: I learned that in python-support 0.3 the bug is fixed that changes in the dependency chain can cause breakage (as the tool adjusted partly to the results of the discussion in Mexico); this is not yet true for the version in testing (but that's only transitionary, so I don't mind so much).

21 June 2006

Clint Adams: To serve, protect, and be FRIENDS with

I think the Sherriff's Department is looking at my myspace page, he said.

Jonathan McDowell: Stupid birds

I've just had a pigeon (I think) fly into my study window, making a rather large bang, and then fly off again. It's the first time I've notice this large a bird do it, but there have been several instances of something sparrow like doing the same. At first I thought it was some kids throwing something at it, until I managed to actually see the bird flying off again afterwards. Are their magnetic direction sensors adversely affected by all the technology in this room perhaps? :)

Josselin Mouette: python-support 0.3

Yesterday, a new version of python-support has been uploaded. It now supports extensions in a way compatible with the stupid idea of building them for several versions at once (which is now, unfortunately, the policy). Furthermore, it allows to do it without cluttering the control file with incomprehensible (and unparseable) XC-Foo-Bar fields. You just need to set up a debian/pyversions file containing the list of supported versions, and, if you want to use dh_python for dependency generation, a debian/pycompat. Thanks a lot to Rapha l Hertzog for finding elegant solutions and introducing them in dh_python.

Joey Hess is complaining about the way things are handled in debhelper, and from his point of view this is perfectly understandable. We've all sucked on this matter, and we could uselessly argue about who is responsible for the mess, but the harm is already done. dh_python has become even more complicated than it already was, and now requires a supplementary helper script depending on the packaging tool. Fortunately we've managed to make it not too complicated for package maintainers, and Marc Dequ nes' work on cdbs will do a lot in that matter.

Update: I removed any references about Andreas Barth's complaints on Planet Debian. Anyone encountering issues with python-support is welcome to report them in the BTS, which is the right place to track them.

Jos Parrella: Flying MEX

Yesterday I booked a flight with TACA from Caracas to MEX, via SJO. I’m flying on May 12th. (so hopefully I can arrive for Debian Day) and returning on May 25th., in the same flight. The flight is gonna take 6 hours from Caracas. Ana (from Debian Venezuela) will be flying with me in the return flight.Nos vemos en Mexico!

Jos Parrella: Shame, shame

I was at a client today when I remembered that David was due to arrive to Caracas circa 1430, so I called him to his brand-new-venezuelan-GSM-cellphone and I found out that he was in problems. In big, dark, awful problems. As I told in previous posts, he went to San Crist bal (near the border with Colombia) to visit his girl and know the city. He departed from Caracas in a bus on Friday night and arrived on Saturday morning. He spent the whole weekend there, and in Monday he was due to leave San Crist bal through the Mayor Buenaventura Vivas Military Airbase, in a civilian airplane. He arrived just on time for his flight, rushing to take the plane on time, and he was stopped by two so-called Inmigration Officials who demanded to see his passport. He recently got a new one from the Passport Office in Mexico City, so he had a brand new passport with the Venezuelan Entry Stamp (Mexicans don’t need a visa to enter Venezuela)
ONIDEX, the National Office for Inmigration. Praised for lots of people for fighting against Passport Corruption, kidnaps people in San Cristobal. The Officials told him that his passport was a fake, and they told him that, from this time on, he was under arrest. They made him leave the Airport quickly and took him in a civilian vehicle with no identifications. They started the trip to San Crist bal City (1 hour away from the Airport in a very scary road) and they kept telling him that his passport was fake (they claimed that the Passport didn’t have the watermarks, and stuff) Soon their position changed and a common practice in Venezuelan officials started: extorsion. They told him that there were “several ways to fix the problem”, and asked him what was in his backpack (which had a laptop, but he denied it): they were demanding money, and David wasn’t prone to do that.
National Guard. Doesn’t have a /proc/clue about anything. They drove David to the Inmigration Office in San Crist bal and told him that they “made” some tests to the passport and they determined that the passport was fake. They told David that their “Commander” told they that he should be deported into Colombia, since he was a “very important member of a Cartel that they were willing to capture”
DISIP: the Venezuelan Political Police. They were helpful in this episode, but they’re not angels. Finally, hours after that charade of Officials telling him funny laws, stupid suppositions and wanting him to give them money, they left David in the Bus Terminal in San Crist bal, where he was able to talk to Ana, from Debian Venezuela, which picked him up and went back to the Airport. The two “Officials” weren’t there anymore, and he had a last problem with the National Guard which had stupid suppositions about his trip, and stuff (this is common, but at least it’s not illegal) before he was able to get into the plane. Being in Caracas, I was really worried. Between Ana, my mother and me we were able to move several people to check David status in the Airport (my mother called four members of the Venezuelan FAA, I called the Venezuelan CIA and Ana called the Vicechancellor) and this probably saved David’s life and money, since the “Officials” might have been scared by the movement of people caring about David. He’s safe now, back in Caracas, in home. He has all his stuff and his health is OK (yet he was scared when he arrived, which I fully understand) Why am I writing this post? I’m really concerned about what happened to David, and I want to make a public statement on this. Somehow, we venezuelans got used to this kind of practices in our Country. Probably 40 years of pseudo-democracy with messy governors helped, maybe it’s a matter of education and culture. I don’t really care about this, but I do care about what they’re doing with the people in my Country. Today, President Chavez declared that a dance against corruption was going to start. I think it’s the fourth time he’s making something about corruption, and he’s failing. There’s a gang of people in San Cristobal, Mr. President, who tries to rob and scare the visitors. They should be in jail. They arrested somebody illegally. It’s forbidden in our Constitution to arrest somebody without having proofs to do it (we have one of the best Constitutions in the World, experts say, but we don’t have people who obey it). If you’re going to arrest an alien, you need to have a Public Prosecutor in place, writing down a legal document and guaranteeing the safety of the detained. This people should be in jail.
Stop Corruption! Though, as my mother later said to David, two awful Venezuelan people kidnapped David, but probably twenty Venezuelan people quickly acted to find out what was happening. We might be a Third World Country, but we use to be able to get out of our problems by our own. And, hell it’s rewarding. I want to apologize in the name of all venezuelans to David and to make a clear statement against corruption: we venezuelan won’t tolerate more corruption. We’ve grown between that, buying places in a line to get our National ID Card, paying one million bolivares to get a Passport appointment. We’re sick of this. This is not the great Venezuela we live in. Please, losers, shoot yourselves. Or eat rat poison, whichever makes less stains.

20 June 2006

Martin F. Krafft: GPG keys expire

Today is 2006-06-20, and five years ago I created the GnuPG key pair that I have been using ever since. Possibly due to ignorance, I chose a key validity of one year and consequently stuck with that policy. Thus, every year on 20 June, I have to renew my master (signing) key and generate a new encryption key. And every year, on the days following 20 June, I will get several dozens (if not hundreds) of emails telling me that my key has expired, written by those who write emails faster than it takes to check for availability of the new key. Finally, my key now has hundreds of expired signatures, because it's GPG's default to expire signatures along with the master key. This year, I took a step back and reassessed the choice. The result is that I am not expiring my master key anymore, but I will continue to provide a new encryption key every year, which will be valid for just a little more than a year. Here are the reasons I found why you'd ever expire the master key:
  • the key is intended to be used only for a limited amount of time. This is not the case for me.
  • in case of loss of control and lack of revocation certificate, the key will eventually become unusable. First, I have a revocation certificate, and second, if I lose control over the key it should mean that someone figured out my passphrase, so could just extend the livetime of the key anyway.
And here are the reasons for the encryption keys:
  • if you do lose control over your key, all's lost anyway.
  • if an attacker manages to crack one key, s/he can only read communication of the year during which I used the key, but no past or future communication.
As always, I'd love to hear your input, and I'll post relevant follow-ups. In the mean time, please make sure you refresh my key:
gpg --keyserver subkeys.pgp.net --recv-key 330c4a75
wget -qO- http://people.debian.org/~madduck/gpg/330c4a75.asc.gz \
    zcat   gpg --import
(Note: you can always get my latest key from the above URL) You may also want to consider running gpg --refresh-keys from cron. I suggest doing so on a ghost copy of your keyring though and then to merge from there, or else you'll experience locking problems when trying to use the keyring at the same time.

Andreas Barth: Python-central

There are lots of conspiracy theories flying around about python-central. However, the fact is that python-central is an original Debian tool. I'm really very unhappy to see Matthias hard work always being refused as "Ubuntu foo". In reality, he puts lots of time and energy into Debian, and we thank him very little for that. Even more, the major drawback of the competiting python-support is that it refuses to handle the real issues. Of course, reality is complex. But it is way worse if one writes a tool that just breaks if a package earlier in the dependency chain decides to change from python scripts to extensions (i.e. c-code linked with python). Furthermore, the maintainer of python-support first agreed on some common solution for both tools (i.e. the new python policy), and now suddenly removed his approval, and creates another competiting way. I'm all for competition between software, but I'm not too happy with competition of policies - because policies describe how different packages work together, that means, it is an interface description. In the end, my summary is that I recommend to use python-central. And I'm thankful that Matthias did a careful and good analysis how this implementation is done.

18 June 2006

David Pashley: Markable InputStreams

Java has a nice IO subsystem. In particular, it has been designed such that input streams can optionally support a feature where a programmer can mark a position in the stream and at a later stage return to that point to read the data again. Programmers can check for this support by calling InputStream.markSupported(). Unfortunately I've had the need for this support, but I haven't managed to find a stream which supports this. Not even ByteArrayInputStream sees to support it. Fortunately it's fairly trivial to wrap an InputStream in another class which will add this support. Here is my quick adaptor, which seems to work for most cases.
import java.io.IOException;
import java.io.InputStream;
import java.util.ArrayList;
public class MarkableInputStream extends InputStream  
    private InputStream inputstream;
    private int maxpos = 0;
    private int curpos = 0;
    private int mark = 0;
    private ArrayList<Integer> buffer = new ArrayList<Integer>();
    public MarkableInputStream(InputStream is)  
        inputstream = is;
     
    @Override
    public int read() throws IOException  
        int data;
        if(curpos == maxpos)  
            data = inputstream.read();
            buffer.add(data); maxpos++;curpos++;
          else  
            data = buffer.get(curpos++);
         
        return data;
     
    @Override
    public synchronized void mark(int readlimit)  
        mark = curpos;
     
    @Override
    public boolean markSupported()  
        return true;
     
    @Override
    public synchronized void reset() throws IOException  
        curpos = mark;
     
 
You can use it like:
if (!istream.markSupported())  
   istream = new MarkableInputStream(istream);
 
This could probably be improved on, most notably by not using an ArrayList. I'm not sure what performance penalty that adds. It should be possible to use a normal array as the readlimit parameter to mark() says how many bytes the stream should record before throwing old data away in favour of new input. The class above will record all data from the start of the stream, so could result in a significant amount of memory usage. Hope you find it useful.

Daniel Burrows: Unsubscribing from most Debian lists.

After six (seven?) years of being almost continuously subscribed, I have decided to finally remove myself from most Debian mailing lists. While I don't intend to actually unsubscribe, I even doubt I will continue reading -private. No, strike that. I especially doubt I will continue reading debian-private.


This is not a decision that I wanted to make or took lightly, but two ongoing problems, combined with my own lack of free time, have convinced me that it is the best route:


(a) Virtually all the traffic on the lists is useless. I don't think this was the case when I subscribed, but it certainly is now. The few interesting technical or procedural tidbits that I can find are buried under (and within) piles of messages that are useless flames, off-topic discussions, kooky threads, or mails that combine two or more of the above.


(b) The tone and content of the lists is increasingly hostile, personal, and aggressive. Based on what I see on the lists, Debian is not a friendly project these days. I'm sad to say it, but being able to block the rest of the Project (except bug reports, of course :) ) out will not only increase the time I have for Debian, it will increase my motivation to work on it. A lot.



The straw that broke the camel's back here was that after finally getting my Internet access back a couple weeks ago, I decided to catch up on Debian list mail this weekend. After spending a significant fraction of my free time just wading through the sludge and reading the most useful and interesting-looking of the mail that people had spewed onto the lists, I realized that I would have been far better off doing something more useful, enjoyable, and productive with my time ... like, say, picking lint out of my carpet by hand, or committing Postal Service regulations to memory.


I'm still of two minds about the whole issue: while I blamed the lists above, there are plenty of major contributors to Debian who have full-time jobs and still manage to not just read all the garbage on the lists, but actually reply to a lot of it. So I can't help feeling this is partly due to my own inadequacy or advancing decrepitude (I turn 26 in just a few months; isn't that about when your brain atrophies? ;-) ) -- but regardless, I think that I personally can't justify the "expense" of staying on the lists in terms of the benefits I get from doing so.

Matt Brown: SQLite Support for dbconfig-common

Over the past few weeks I’ve been working on extending the dbconfig-common packages to support the SQLite database format. My primary motivation for this is so that I can start using dbconfig-common to manage the database(s) for the PHPwiki packages which currently only support SQLite out of the box. The main changes that were required were to separate out the debconf questions that are only relevant for remote and authenticated database types. These changes were committed yesterday. I plan to make the remaining changes required to bring the SQLite support up to scratch over the next few days, so hopefully dbconfig-common 1.8.18 with SQLite support will be uploaded before too long. NM Application
In other news, Alexander Wirt finished off my NM Report, so now I’m waiting for the front desk to review it and send me on to the DAM. It’s great to be making progress and a big thank you to Alexander for taking me through the process, testing my knowledge and sponsoring my packages.

Clint Adams: Altitude

Where's the nearest liquor store? she asked. You're asking a homeless guy where the liquor store is? he gasped incredulously. Come on, I'll show you!

Steve Kemp: What we re dealing with here is a total lack of respect for the law

Right it is 23:43 and I’m just back from a dodgy metal night - picture the winners of the Eurovision song contest but with a lesser budget. Normally this would be described upon my real blog which contains adult language, and a mixture of random trivia, sadism, and geekyness in more detail than is displayed here. (You might think this is a hard mix, but I’ll tell you it isn’t suprising if you’ve ever programmed Gtk 2.x in raw C ;) ) Anyway the reason I went to the gig in the first place was that last year one of my partners was a bass-player, and she was often playing gigs in different locations. Unfortunately for the duration of our relationship I managed to never actually hear her play. Not deliberately - it was just the way things worked out. We kinda tailed off seeing each other because I was sleepy and she lived in a different city. Actually this is a common theme with me. I once lived with a concert chello player and for the entire 2.5. years of our relationship I managed to never hear her play, or practise (and we lived together!). Again not deliberate, it was just the way things worked out. (Even now I don’t think she’s ever heard me play the guitar.) Later I had a relationship with a Swedish dentist and for the duration of our relationship I refused to let her look inside my mouth [mostly ;) ]. It was only after we’d ceased being .. close .. that I let her extract some wisdom teeth of mine. Of course she was Swedish, living abroad, and all her friends were Swedish too - so I had a lot of Swedish “friends” around that time. Maybe one day I’ll even meet a genuine blonde Swede. (I can say “hello”, “goodbye”, “I love you”, “marry me”, and “you’re cute” in Swedish!) (I’m not a slut; I just know what I like.) Anyway .. enough side-tracking. The only reason this is coming up at all is because I think context is important when writing about people that aren’t known - I hate seeing people in blogs write about “J”, or “C”, with no hint of the nature of the relationship, or why we should know/care about their actions - people are important, and if you’re going to bring them up you should explain who they are, and why they are relavent. The fact that I’ve drunk 5 bottles of cider now is also helping extend this entry If it helps I almost promise not to mention these people again. So, to recap, I’m at this metal gig, and damn they were a fantastic band. Miranda (the woman I was “with”, previosuly if not recently) was a total camera-slut, and she was technically extremely competant. I guess I shouldn’t have been suprised but I was. So, why do I mention any of this? Well I was standing outside before the band started as it is illegal to smoke in public enclosed places in Scotland (since Marche this year) and this obviously rules out smoking in a pub in the basement bar. (The bar was unstaffed since the bands playing tonight were “too loud”. Sucky having to walk upstairs to find beer.) So .. stood outside, totally under-dressed for the occasion. Almost everybody else in the (very sweaty) basement bar was dressed in monochrome and I had shiny white shoes and colourful t-shirt. Still I was one of the tattoo’d + pierced people so all was good. “Excuse me, you look like Steve Kemp”. For the first time ever somebody recognised me from my planet debian hackergotchie. Neat huh? And now it is 23:58 and I’m going to listen to some nice Rammstein and go sleep. Tomorrow I must do some Debian work, and tidy a friends flat - since they just moved out and want their deposit back. In the future I will try to keep the entries here more on-topic, unless people actually care about this kind of entry …

17 June 2006

Enrico Zini: DB-ALLe released!

DB-ALLe has been released! After more than a year of (paid) work, DB-ALLe has been released!
DB-All.e is a fast, temporary, on-disk database where meteorological data can be stored, searched, retrieved and updated. To make computation easier, data is stored as physical data, that is, as measures of a variable in a specific point of space and time, rather than as a sequence of report.
These are the main characteristics of DB-ALLe:
  • it is temporary, to be used for a limited time and then be deleted.
  • does not need backup, since it only contains replicated or derived data.
  • write access is enabled for its users.
  • it is fast for both read and for write access.
  • it is based on physical principles, that is, the data it contains are defined in terms of omogeneous and consistent physical data. For example, it is impossible for two incompatible values to exist in the same point in space and time.
  • it can manage fixed station and moving stations such as airplanes or ships.
  • it can manage both observational and forecast data.
  • it can manage data along all three dimensions in space, such as data from soundings and airplanes.
  • it can work based on physical parameters or on report types.
DB-ALLe has been written by me on behalf of ARPA-SIM a public agency which realises that being funded with public money also means letting the public access the result of what they do:
Copyright (C) 2005,2006 ARPA-SIM <urpsim@smr.arpa.emr.it> This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License
Oh, and they make an outstanding weather forecast, the best you can find for my region. It's so good that people even started to trust them! :)

Edd Dumbill: In search of agile infrastructure for web applications

Many advances have been made in agile software development. Frameworks such as Ruby on Rails embody agile principles by making software easy to write, easy to test, and above all, easy to change.If only we could say the same for the infrastructure on which we develop and deploy web applications. Not every application can be a Rails one, especially where it's been up and running for years. The systems we deploy on often rely on configuration files scattered all over the filesystem, and can be complex results of years of change.By extension, the systems we develop on often don't exactly mirror where we deploy. If we're lucky and careful, then we have a staging server which mirrors the live environment, but that's not too much of an advantage. Among other things, we need ways to evolve and refactor the live environment, and have our development environments easily track that.I'd like to call such an environment "agile infrastructure". Infrastructure that doesn't hamper developers, and allows live configurations to change and evolve. Infrastructure that allows new things to be tried with minimum cost, and can provide the best information possible to help future planning.Tools enable techniques, of course. It's a lot easier to be agile if you're programming in Rails rather than plain old PHP. So what are the tools enabling agile infrastructure?
Techniques I've found usefulWhile there's a long way to go, I'd like to describe some of the techniques I've been using to help create a flexible environment for developing a sizeable PHP/MySQL application.Operating systemAn operating system must be easy to bring into a known state with minimum interference. For this, I've found Ubuntu or Debian to be an ideal choice. Two of the main reasons include the constancy of stable releases and the fact that it's rare you need to stray outside the distribution's servers to get the software you need.DeploymentDeploying an application shouldn't break the cleanliness of your OS build. I prefer to package deployed applications into .deb files. This enables me to build on several advantages of the package management system:Source controlThe case for source control, thankfully, doesn't need making these days. Yet not every source control system is created equal. Developers shouldn't be constrained by source control, it should be cheap and easy to try new ideas and merge these in later.Not only cheap branching, but also easy merging, is required to keep development agile while still retaining the benefits of source control. Many people flock to Subversion these days, predominantly because it fixes some of CVS' more egregious misfeatures. However, merging can still be pretty difficult in Subversion.I prefer to use a system allowing easy merging, such as svk or bazaar. Because so many of us use laptops these days, disconnected operation is also a huge boon. Bazaar-NG offers both repository-oriented and completely decentralized operation, giving the best of both worlds. It also wins the competition for least setup overhead.VirtualizationPreviously a high-powered technology, cheap virtualization is now with us. Many identical virtual machines can be quickly created to enable testing and experimentation. Deployment to virtual machines can enable hardware independence for applications, reducing another big headache.Large organisations have it within their reach to bring new hardware online easily, and have invested much in management systems for it. Virtualization brings this in reach of small and one-man development teams.Desktop-based virtualizationSystems such as VMWare and Parallels untether developers from their desks. I use the OS X desktop daily for its productivity software, but an Ubuntu virtual machine for a large proportion of development work. A simple keypress lets me flick between the two. The advantages of multiple desktops to hand for web development are well known. (In fact, thanks to WINE and IES4Linux I can run Internet Explorer cheaply too from the same virtual machine).
Xen virtualizationAfter the initial novelty wears off, one of the most tedious tasks in the world is bringing new machines online. Combined with the tendency development environments have to get crufty as new ideas and tools are tried out, this makes for increasing disparity between the development and deployment environments.Wouldn't it be nice just to take a clean machine off the shelf, check out the source, and pick up again? Using Xen for Linux, this cheap virtualization is possible.Sadly, Xen isn't yet a packaged part of Ubuntu, but getting it up and running on Ubuntu Dapper isn't too hard. Warning: here's where things get pretty deep. Skip this bit if you're not interested in the nitty-gritty.I followed these steps:Getting over the DNS mountainIf you want it to be easy to bring new virtual machines up and down, you need to adopt a different approach to managing your DNS. You need to know how to predictably connect to a virtual machine. Yet it's going to get very boring and error prone to manage the IP address space manually in your DNS, or even to map the MAC addresses of your virtual machines in your DHCP configuration.
Help is at hand in the form of mDNS (also known as Rendezvous / Bonjour / ZeroConf). In the host machine, and in each virtual machine, I ensured the avahi-daemon and avahi-utils packages were installed, providing mDNS services. (You should also check that mdns is present in the hosts entry of /etc/nsswitch.conf).What all this does is allow the machines (virtual or otherwise) on the network to resolve names using mDNS. So if I create 3 VMs, alpha, beta and gamma, I can access these right away using the hostnames alpha.local, beta.local and gamma.local.Hey presto! Easily make machines appear and disappear without any need for sysadmin involvement. All the extra steps to add avahi installation can be easily scripted with xen-tools, to reduce the number of commands needed to birth a new machine to one.With this ease of creating new machines, it's much more straightforward to experiment with server topology and conduct experiments on server environments.ConclusionAgile development is necessarily constrained by the infrastructure on which it is conducted. The infrastructure itself is constrained by the tools and platforms of choice.By appropriate tool choice we can reduce the commitment and overhead of infrastructure. This enables developers to get on with the job they do best, and makes experimentation and evolution of infrastructure much simpler.When programming, it's dangerous to fall in love with your code, as the best solution may often involve throwing half of it away. The same hazard exists with infrastructure, with bizarre and awkward effects propagating back into code and operations. Get yourself a low commitment, agile environment, and you'll be able to keep up with the pace. 

Steve Kemp: If i m careful I won t hate you

Good News My parents were in town for the day and I got to meet them for lunch. After that we went shopping to a garden center, since they happened to mention they needed some trays for holding plants. I bought a couple of new plants for my house - including a nice looking Dragon Plant: Dracaena bicolor Bad News *plonk* I’m suprised Mutt doesn’t have integrated killfile support, but managed to add it via a couple of additions to my ~/.procmailrc file - one for senders, and one for message references to catch threads of disinterest.

Carlos Villegas: Benchmarking other distrubutions (SoC2006)

Hi, for the debian boot process project, the last days I looked at the SUSE, Mandriva and Fedora distributions to analyse their boot process. The most interesting so far was SUSE being LSB compliant and having insserv/startpar to set and ajust the dependencies for parallalel booting. The insserv/chkconfig combinations seems to do the same as FreeBSD's rcorder although rcorder checks dependencies in two stages: with root filesystem and with all mounted filesystems.

Fedora looks like a regular sysvinit process although it contains LSB information in the initscripts that is read by chkconfig to set dependencies in the /etc/rc.d directories. Nevertheless, the dependencies don't adjust to added/substracted scripts.

Finally Mandriva 2006 doesn't seem to have pinit/prcsys in their default configuration so it seems to have a standard sysvinit.

BTW, the first deliverable is being written in latex (with pdf and html versions generated together) and available here.

Martin F. Krafft: Parsing arguments in a shell script

Since shell is a rather unpredictable programming language, which seems not to allow manipulation of variables in parent processes, parsing arguments has always been a bit cumbersome. For instance, check out lines 74 through 123 of /usr/bin/deb-reversion (package devscripts) for the way I used to do things, which involves a sort of state machine to handle options taking arguments. Just last night, I came up with another means, and while it felt like an incredible hack at the time, I am starting to like it. This method can be combined with getopt, I just use it to parse guessnet test lines in /etc/network/interfaces right now:
eval $(while [ -n "$ 1:- " ]; do
    case "$1" in
      mac) echo MACADDR="'$2'"; shift;;
      essid) echo ESSID="'$2'"; shift;;
      ie) echo IE="'$2'"; shift;;
      *)
        echo "$ME: E: invalid argument: $1" >&2
        exit 1;;
    esac
    shift
  done   exit $?)   exit $?
When this is done, any (or none) of the three variables MACADDR, ESSID, and IE are defined in the shell script's environment. If an argument is required, I can do checks following the loop, or use getopt to parse $@ before looping over its components. Of course, the last line really does make it look like a hack, but it works and it's flexible... If I now look at /usr/share/guessnet/test/test-wireless, I wonder how Thomas Hood managed to get things working, specifically because he sets variables inside a while loop, and then uses them outside of the loop -- exactly the sort of construct that drove me nuts previously. Maybe it has to do with my religious use of set -u, maybe not. In any case, I am simply not willing to investigate.

Clint Adams: The forty-dollar bill didn't matter no more

Wouter, why haven't you ranted about deficiencies in denemo?

16 June 2006

Michael Janssen: Random Technological Stuff

Programming, windows style
I'm now in the thick of a bunch of win32 programming at my Honeywell part-time job. I don't mind it that much, but I continue to be amazed that Microsoft's IDE is still the one used most often. The autocompletion is nice, but that's about the only good thing about it. I am continually annoyed that the IDE doesn't know which definition of a function I want to use, and only seems to pop up it's hints when it decides. Add this to the fact that most win32 libraries aren't apparently setup in a way so you can put their source in the repository, and I have a lot of admin work which I'm not particularly thrilled to do. 10% programming, 90% random crap. I'm beginning to understand why the average lines of code per day is so low. I can't really complain that much though, I knew the tools we'd be using when I accepted the job.

Programming, rails style
I have been working with Ruby on Rails lately, mostly to make some new web applications which aren't released yet. Things which are possibly in the works:

I also have a couple of smaller applications which won't really go anywhere, and an internal application upgrade from php. I really enjoy building web applications in the Rails framework, and I have honed my skills at Ruby enough that I actually use it for small scripts when I get frustrated with bash. I tend to do my Ruby Coding in TextMate and with Locomotive on the iBook, although I may do some on the Debian machine soon.

Next.

Previous.