Search Results: "nate"

3 July 2008

Wouter Verhelst: Review: Samsung YP-T10

About a month ago, I bought me a Samsung YP-T10 media player. I didn't want a device for which the Linux and/or Ogg Vorbis support was against the explicit wishes of the device's manufacturer, such as in the case of the iPod; because the more devices such manufacturers sell, the more they're encouraged to keep their systems closed. Definately not something I'd like to see. In that regard, the YP-T10 is pretty okayish. It supports Ogg Vorbis out of the box, and it has a reasonable set of features for a portable media player. It's not perfect, but it goes a long way. The set of features on the device is simply astonishing; apart from the obvious music playback stuff, it sports an FM radio, a text file reader, a voice recorder, a picture viewer, and a movie player. Given the size and clarity of the screen, this is actually a useful way to view a movie clip, too, although not a very comfortable one. Apart from the obvious USB cable, the device also has bluetooth connectivity which can be used to send and receive files, or to connect a bluetooth headset—especially interesting if you consider the modern stereo headphones that sound just like 'normal' headphones. Once you upgrade the firmware, the device gains the ability to play a few games, and to store vCard files. Very impressive, for such a small device. Unfortunately, not all is well. There's an RSS reader thingy on the device, which could be interesting; but it only works in companion with a Windows program, which obviously doesn't run on my (powerpc) laptop. There's only one way to charge the battery, and that's by connecting the device to a USB port. Unfortunately, that also means you cannot use the device while it's charging, since it switches to the MTP mode in which to receive files. That also goes for bluetooth, BTW -- if you're playing something, and the device receives bluetooth data, the playback is paused until receiving that data is finished. The USB cable is a nonstandard one. Given my track record of losing cables and stuff, I'm sure I'll get in trouble at some point. Hopefully Samsung will still sell those at that point. If not, well, I guess I'll see what happens then. Another point of this cable is that it's impossible to remove it from the device while the headphones are connected; you have to push a button which is physically placed in the direction of the headphone connector, about a millimeter away from it—not very interesting if I just want to connect the device to store one or two media files on there... The headphones that came with the device were not too bad, but the protective sleeves that came with it were too loose; after about a week or so, I'd lost both of them and had to buy me a new set of headphones. Luckily, that involves a simple standard headphone connector, so no problem there. All these are just minor annoyances, however. I don't really need an RSS reader, anyway. What really is a problem is the lack of tag support in Ogg files; while I can at least play them, the display will show 'Unknown' for artist, album, or title for any Ogg file—which is a real PITA. Altogether, however, I don't think the disadvantages of the device outweigh the advantages, and I've had quite some fun with it already. Having said that, given the lack of tag support in Ogg files, I don't feel I can really recommend it, at least not if you want to use it to play your Ogg Vorbis collection.

Craig Sanders: Introduction to Linux Signals 101

or ^C doesn’t kill processes, SIGINT does On the LUV mailing list recently, the perils of tty handling when booting with “init=/bin/bash” came up, and somebody asked why running ‘ping’ (without remembering to run stty or openvt first) will result in you having to reboot. i.e. “why doesn’t ^C work in emergency mode”? I wrote a fairly detailed, but comprehensible to a novice, answer and a friend suggested i should have written it as a blog post - which was the point of me setting up a blog in the first place. So here’s a slightly edited version of it: > Couldn’t you just open another console, run “top” and find the PID for
> ping and kill it? Or ps aux grep ping and kill it? Is a reboot the
> only way to kill a ping where ^C is not available? there’s nothing special about ^C except that by long convention it is mapped to the interrupt signal aka intr aka SIGINT. So, ^C itself doesn’t kill a program, the fact that it generates an interrupt signal does. If you’ve rebooted for emergency maintenance (e.g. “init=/bin/bash” on the LILO or GRUB command line) then all you get is ONE instance of /bin/bash. Nothing else is running and nothing else has been run (because you’ve overriden the usual init with /bin/bash). No setup has been done on the terminal, and no other virtual terminals have been opened. The emergency environment is minimal (and deliberately so - you asked for it, you got it). It’s up to you to do whatever is needed to set up the environment so that you can do the required maintenance/repair work. So if you run ping *before* remembering to set up the terminal (’stty sane’) then ^C doesn’t work because ^C doesn’t generate SIGINT so there’s no way of telling ping to quit, and if you haven’t opened another virtual terminal with openvt (aka “open” - it got renamed some time ago) then there is no other shell available to run top or ps or kill. BTW, it’s not just ping. You’ll see the same problem in the same environment with ANY program that runs continuously until it gets a signal to terminate it. ping’s just the most obvious and common example. Most programs, especially simple programs like ping, don’t have a ^C handler. They don’t need one. They have a signal handler which, amongst other things, handles SIGINT however it’s generated - it can be generated by pressing ^C in a normal tty environment, or by sending the program a SIGINT (e.g. “kill -2″). That, BTW, is a core difference between a SIGTERM (just plain ‘kill’ or ‘kill -15′) and SIGKILL (’kill -9′). SIGTERM is usually handled by the program by setting up a signal handler for it, and it voluntarily terminates when it receives the signal (usually cleaning up, closing files, etc before it does so). If the program hasn’t set up a handler for SIGTERM then the default action is to just terminate. A program can set up a handler which does nothing on SIGTERM, which effectively just ignores the signal. SIGKILL is handled by the kernel and it just kills the process immediately - it can not be blocked or intercepted by the program. (By common convention, SIGHUP or ‘kill -1′ tells a long running daemon process to just reload it’s config files. It’s also generated when the tty that the program is running on is terminated - e.g. you log out or the modem hangs up or the ssh session dies, hence the name “HUP” aka “HANGUP”. That’s why you need to use something like nohup or screen if you want a program to continue running after you log out) In a way, ‘kill’ is a bit of a misnomer. It’s actually a generic tool for sending signals to running processes, but the default action for most of those signals is to terminate the program. Here’s a list of the signals which can be sent.
$ kill -l
 1) SIGHUP	 2) SIGINT	 3) SIGQUIT	 4) SIGILL
 5) SIGTRAP	 6) SIGABRT	 7) SIGBUS	 8) SIGFPE
 9) SIGKILL	10) SIGUSR1	11) SIGSEGV	12) SIGUSR2
13) SIGPIPE	14) SIGALRM	15) SIGTERM	16) SIGSTKFLT
17) SIGCHLD	18) SIGCONT	19) SIGSTOP	20) SIGTSTP
21) SIGTTIN	22) SIGTTOU	23) SIGURG	24) SIGXCPU
25) SIGXFSZ	26) SIGVTALRM	27) SIGPROF	28) SIGWINCH
29) SIGIO	30) SIGPWR	31) SIGSYS	34) SIGRTMIN
35) SIGRTMIN+1	36) SIGRTMIN+2	37) SIGRTMIN+3	38) SIGRTMIN+4
39) SIGRTMIN+5	40) SIGRTMIN+6	41) SIGRTMIN+7	42) SIGRTMIN+8
43) SIGRTMIN+9	44) SIGRTMIN+10	45) SIGRTMIN+11	46) SIGRTMIN+12
47) SIGRTMIN+13	48) SIGRTMIN+14	49) SIGRTMIN+15	50) SIGRTMAX-14
51) SIGRTMAX-13	52) SIGRTMAX-12	53) SIGRTMAX-11	54) SIGRTMAX-10
55) SIGRTMAX-9	56) SIGRTMAX-8	57) SIGRTMAX-7	58) SIGRTMAX-6
59) SIGRTMAX-5	60) SIGRTMAX-4	61) SIGRTMAX-3	62) SIGRTMAX-2
63) SIGRTMAX-1	64) SIGRTMAX
See the man pages for init(8), kill(1), and especially signal(7) for more info on this topic. Syndicated from Craig Sanders' Errata: Tech Notes and Miscellaneous Thoughts Introduction to Linux Signals 101

2 July 2008

Russell Coker: LUV Meeting July 2008

At the last two meetings of LUV [1] I’ve given away old hardware. This month I gave away a bunch of old PCI and AGP video cards, a heap of PC power cables, and some magnets (which I received for free because they were in defective toys that could seriously injure or kill children). One new member was particularly happy that at the first meeting he attended he received some free hardware (I hope it works - most of that stuff hasn’t been tested for over a year and I expect that some would fail). Also there was another guy giving away hardware, so I might have started a trend of giving away unused hardware at meetings (he was giving away some new stuff in the original boxes, mostly USB and firewire cables). For a long time (many years) at LUV meetings there have been free text books given away. One member reviews books and then gives them away after he has read them. At the meeting Ralph Becket gave a presentation on the Mercury functional language. It was interesting to note that Mercury can give performance that is close to C (within 80%) on LZW compression (which is apparently used as a benchmark for comparing languages). Given the number of reasonably popular languages which don’t give nearly that level of performance I think that this is quite a good result. After the meeting Richard Keech demonstrated his electric car. It’s a Hyundai Getz which has had the engine replaced by an electric motor but which still uses the manual gearbox. Richard did a bit of driving around with various LUV members as passengers to demonstrate what the car can do. Unfortunately I didn’t get a chance to be involved in that, so I’ll have to do so next time I meet him. One thing to note is that Richard’s car was not built that way by Hyundai, it was a custom conversion job. The down-side to this of course is that it would have cost significantly more than a vehicle with the same technology that was manufactured. One design trade-off is that Richard had batteries installed in the place for a spare tire. Last year the RACV magazine published a letter I wrote suggesting that small cars should be designed without a spare tire and that owners of such cars should rely on the RACV to support them if they get a flat tire [2], my option has not changed in the last year, I still think that cars which are driven in urban areas don’t really need spare tires so I don’t think that Richard is losing anything in this regard. The motor driving Richard’s car runs on three-phase AC and a solid-state inverter is used to convert 185V DC to about the same voltage at three phase AC (I didn’t write notes so I’m running from memory). Apparently on long drives the inverter gets cooler rather than hotter - I had expected that there would be enough inefficiency in the process of converting DC to AC that it would get hot. In a previous conversation Richard told me that he can drive his car 75Km on one charge and that it takes him 8 hours to charge when using an Australian mains (240V) plug rated at 10A. When designing such a vehicle it would be trivial to make it use a 20A plug for a 4 hour charge or even a two-phase plug for even shorter charging (I’m sure that Richard could have requested these options if he wanted them). But an 8 hour charge allows the vehicle to be completely charged during a working day and the use of the most common type of plug (the type used in every home and office) means that it can be charged almost anywhere (the standard mains circuit used in Australia is rated at 15A so special wiring is needed for a 20A socket). There is such a power point mounted on the outside of my house not too far from where a visitor could park their car. I anticipate that in a few years time it will not be uncommon for people who visit me to charge their car during their visit. Richard’s ratio of an hour of charge to almost 10Km of driving means that someone who visits for dinner could get enough charge into their car to allow for 30Km of driving before they leave. 30Km is about the driving distance to go from my house to a location on the other side of the city that is just outside the main urban area, so probably at least half of Melbourne’s population lives within a 30Km driving distance from my house. Not that I expect friends to arrive at my house with their car battery almost flat, but it does make it easier to plan a journey if you know that at point A you will be able to get enough charge to get you to point B. I think it’s a good thing to have members of LUGs give things away to other people and to demonstrate technology that is of wide interest. I hope to see more of it.

Paul van Tilburg: Preparing for GUADEC

I am in the process of packing my stuff for my holidays. Tomorrow, I will fly to Istanbul to attend GUADEC 2008. Because GUADEC does not start before the 7th, it will give me some time to roam around Istanbul itself and do some sightseeing, probably with some of the Collabora guys. I’m flying on July 3 at 12:00 (+0200) from Schiphol with KLM (flight KL 1615) and arrive at Istanbul Atat rk International Airport at 16:20 (+0300). I’ll return on July 13 at 17:15 (+0300), again with KLM (flight KL 1616), and land on Schiphol at 19:55 (+0200). In Istanbul I will be staying in the Saint Sophia Hotel in Sultanahmet. I’m looking forward to it, although it doesn’t feel like holidays to me yet. I should have an Internet connection over there, and probably Jaiku via cell phone will work fine too. So I will keep you up-to-date. It is also clear that I will be skipping DebConf this year. This is unfortunate, because I wanted to work with the Debian/Ruby team to advance some of our goals. However, I’m happy to catch at least one free software conference.

1 July 2008

Stefano Zacchiroli: python-debian w dependency parsing

New python-debian feature: Dependency Parsing Since my merge commit of this afternoon python-debian has grown dependency parsing support. (But first things first: you know about python-debian, don't you? If you don't, and you always wanted to program with Debian-related files with Python, then shame on you!) Thus far, playing with Packages-like files using dictionary-like objects was already as simple as (quoting from /usr/share/doc/python-debian/examples/deb822/grep-maintainer):
for pkg in deb822.Packages.iter_paragraphs(file('/var/lib/dpkg/status')):
    if pkg.has_key('Maintainer') and maint_RE.search(pkg['maintainer']):
        print pkg['package']

However, it was a bit unfortunate that Depends-like fields were only returned as strings. Now each package (as iterated upon in the above snippet) is equipped with a .relations property returning a dictionary of inter-package relationship fields. Looking up keys like "depends" you will get back a conjunctive normal form (CNF) representation of dependencies, together with parsed constraints on version or architectures, if any. A simple example is shipped as /usr/share/doc/python-debian/examples/deb822/depgraph, which outputs a labeled Graphviz script of all inter-package dependencies extracted from a Packages file. Here is its most relevant snippet:
name = pkg['package']
rels = pkg.relations
for deps in rels['depends']:
    if len(deps) == 1:
        emit_arc(name, deps[0]['name'])
    else:   # output an OR node
        or_node = get_id()
        emit_arc(name, or_node)
        emit_node(or_node, 'OR')
        for dep in deps:
            emit_arc(or_node, dep['name'].lower())

The appropriate sub-classes of Deb822 have been customized with the knowledge of which inter-package relationship fields are supported in their stanzas (e.g. Build-Depends are supported by Sources, but not by Packages; the other way around for Recommends). Testing from the git repo is more than welcome.

Edd Dumbill: OSCON: what are your must-see talks?

We've switched on personal schedule sharing on the OSCON web site. When you've put together your desired schedule by starring sessions of interest, just hand out the "public view" link to let others know what you want to see. Here's my personal schedule. In it you'll find all the plenary sessions (as co-chair I simply cannot miss these, and neither should you, however late the party!) Also there's a fair smattering of my pet topics such as open web technologies, virtualization and dynamic languages, and a bunch of things I want to hear more about: Prophet, female participation in open source, Clutter, and of course Erlang. I'm fascinated to find out what other people have got planned, so please publish your schedules too and let's compare notes.Join the conversation about this post

30 June 2008

Russell Coker: The History of MS

Jeff Bailey writes about the last 26 years of Microsoft [1]. He gives Microsoft credit for “saving us from the TRS 80″, however CP/M-86 was also an option for the OS on the IBM PC [2]. If MS hadn’t produced MS-DOS for a lower price then CP/M would have been used (in those days CP/M and MS-DOS had the same features and essentially the same design). He notes the use of the Terminate and Stay Resident (TSR) [3] programs. As far as I recall the TSR operation was undocumented and was discovered by disassembling DOS (something that the modern MS EULAs forbid). Intel designed the 8086 and 80286 CPUs to permit code written for an 8086 to run unchanged in “protected mode” on an 80286 (as noted in the Wikipedia page about the 80286 [4]). Basically all that you needed to do to write a DOS program with the potential of being run directly in protected mode (or easily ported) was to allocate memory by requesting it from the OS (not just assuming that every address above your heap was available to write on) and by addressing memory only by the segment register returned from the OS when allocating memory (IE not assuming that incrementing a segment register is equivalent to adding 16 to the offset). There were some programs written in such a manner which could run on both DOS and text-mode OS/2 (both 1.x and 2.x), I believe that such programs were linked differently. The term Fat Binary [5] is often used to refer to an executable which has binary code for multiple CPUs (EG PPC and M68K CPUs on the Macintosh), I believe that a similar concept was used for DOS / OS/2 programs but the main code of the application was shared. Also compilers which produce object code which doesn’t do nasty things could have their object code linked to run in protected mode. Some people produced a set of libraries that allowed linking Borland Turbo Pascal code to run as OS/2 16bit text-mode applications. The fact that OS/2 (the protected-mode preemptively multi-tasking DOS) didn’t succeed in the market was largely due to MS. I never used Windows/386 (a version of Windows 2.x) but used Windows 3.0 a lot. Windows 3.0 ran in three modes, “Real Mode” (8086), “Standard Mode” (80286), and “Enhanced Mode” (80386). Real Mode was used for 8086 and 8088 CPUs, for 80286 systems if you needed to run one DOS program (there was no memory for running more than one), and for creating or adjusting the swap-file size for an 80386 system (if your 80386 system didn’t have enough swap you had to shut everything down, start Real Mode, adjust the swap file, and then start it again in Enhanced Mode). Standard Mode was the best mode for running Windows programs (apart from the badly written ones which only ran on Real Mode), but due to the bad practices implemented by almost everyone who wrote DOS programs MS didn’t even try to run DOS programs in 286 protected mode and thus Standard Mode didn’t support DOS programs. Enhanced Mode allowed multitasking DOS programs but as hardly anyone had an 80386 class system at that time it didn’t get much use. It was just before the release of Windows 3.1 that I decided to never again use Windows unless I was paid to do so. I was at a MS presentation about Windows 3.1 and after the marketing stuff they had a technical Q/A session. The questions were generally about how to work around bugs in MS software (mainly Windows 3.0) and the MS people had a very detailed list of work-arounds. Someone asked “why don’t you just fix those bugs” and we were told “it’s easier to teach you how to work around them than to fix them“. I left the presentation before it finished, went straight home and deleted Windows from my computer. I am not going to use software written by people with such a poor attitude if given a choice. After that I ran the DOS multi-tasker DesqView [6] until OS/2 2.0 was released. Desqview allowed multitasking well written DOS programs in real mode, Quarterdeck was the first company to discover that almost 64K of address space could be used above the 1MB boundary from real-mode on a 80286 (a significant benefit when you were limited to 640K of RAM), as well as multitasking less well behaved DOS programs with more memory use on an 80386 or better CPU. OS/2 [7] 2.x was described as “A Better DOS than DOS, a Better Windows than Windows”. That claim seemed accurate to me. I could run DOS VM86 sessions under OS/2 which could do things that even Desqview couldn’t manage (such as having a non-graphical DOS session with 716K of base memory in one window and a graphical DOS session in another). I could also run combinations of Windows programs that could not run under MS Windows (such as badly written windows programs that needed Real Mode as well as programs that needed the amount of memory that only Standard or Enhanced mode could provide). Back to Bill Gates, I recently read a blog post Eight Years of Wrongness [5] which described how Steve Ballmer has failed MS stockholders by his poor management. It seems that he paid more attention to fighting Linux, implementing Digital Restrictions Management (DRM), and generally trying to avoid compatibility with other software than to actually making money. While this could be seen as a tribute to Bill Gates (Steve Ballmer couldn’t do the job as well), I think that Bill would have made the same mistakes for the same reasons. MS has always had a history of treating it’s customers as the enemy. Jeff suggests that we should learn from MS that the freedom to tinker is important as is access to our data. These are good points but another important point is that we need to develop software that does what users want and acts primarily in the best interests of the users. Overall I think that free software is quite well written in regard to acting on behalf of the users. The issue we have is in determining who the “user” is, whether it’s a developer, sys-admin, or someone who wants to just play games and do some word-processing.

Theodore Ts'o: Ext4 is now the primary filesystem on my laptop

Over the weekend, I converted my laptop to use the ext4 filesystem. So far so good! So far I’ve found one bug as a result of my using ext4 in production (if delayed allocation is enabled, i_blocks doesn’t get updated until the block allocation takes place, so files can appear to have 0k blocksize right after they are created, which is confusing/unfortunate), but nothing super serious yet. I will be doing backups a bit more frequently until I’m absolutely sure things are rock solid, though! I am using the latest ext4 patches and the tip of the e2fsprogs git repository. Hopefully when we get the bulk of the patches merged into the mainline kernel after the 2.6.26 ships and the 2.6.27 merge window opens, and after I ship out e2fsprogs 1.41 (I have one work-in-progress pre-release, with another coming soon), it’ll be ready for much more wide-spread testing. In addition to the excellent crew of ext4 developers, I’d like to call out for special thanks Gary Howco and Holger Kiehl, two early users/benchmarkers of ext4 who tried our latest code, and reported bugs that had previously escaped attention by developers (who had been mostly testing the code via the same old test suites); their additional workloads and benchmarks flushed out a few additional bugs. Thanks, guys!! Hopefully after a few weeks of my using ext4 for real-live work, I’ll find a few last few bugs to be fixed, and/or feel much more confident it’s ready for me to recommend to others for their production data.

Marc 'Zugschlus' Haber: Serial Console Server for the Poor III

This is the third installment of my article about the Serial Console Server for the Poor. First installment here, Second installment here. The first part of the article having covered the hardware and the udev part creating the device nodes, and the second part explaining how to solve the software part using ser2net, this part explains why ser2net was ditched in favor of cereal and how the console server operates with cereal now. Cereal (which I was pointed to on IRC as a reaction to article II) is a nifty combination of runit’s runsv and screen. One of the less-known features of screen is that screen can also connect to a serial port instead of a “real” console. cereal makes use of this feature, putting up with the fact that screen can only set a baud rate. I have not seen a serial application with other parameters than 8n1 (8 data bits, no parity, 1 stop bit) in a decade, so I cannot comment whether this is a real disadvantage. I guess that it might be possible to set the serial port to the desired set of parameters before starting up screen, but I didn’t actually try it since I do not need it. Cereal uses a set of configuration parameters and processes called a “session” to associate a serial port with a baud rate and a set of user/group settings to control who is able to start, stop, attach or detach a session. It doesn’t have a “real” configuration file. Instead, it has an admin program, cereal_admin, which takes the parameters associated with a session and writes them to an (intentionally? undocumented?) set of config files in /var/lib/cereal. Only a single user is able to attach to a session read/write, while an entire group can attach to a session read-only and can thus access the logs. A session is automatically started when the sysem boots and can be stopped and started using cereal_admin as well. Once a session is running, a specially configured screen process runs attached to the serial port, and users simply attach and detach to and from it as one would to a normally running screen. That way, one can scroll back and examine what was shown on the serial port while nobody was attached. This is quite handy when the device connected to the port prints out warnings, errors and status information to its serial port. The screen configuration that is used is rather sophisticated. So, a permanent log file is written, which is also used for read-only access to the serial session. Also, a very informative status line is configured. Unfortunately, one of screen’s biggest disadvantages applies here as well: User X cannot attach to a session started by User Y unless Y has access privileges for X’s pty (or vice versa, I never can remember), which can be a security risk. Additionally, it is not possible to su or sudo to X and then to attach to the session - one needs to have the original pty opened by the correct user, which usually means that one needs to do a “real” log in with the correct account (via /bin/login or sshing in to the box). If one has the privileges necessary, one can use the cereal executeable to attach to the screen (which gives read-write access) or to tail -F the log file (giving timestamped read-only access). That way, one never knows that one is actually working with an appropriately configured screen that is kept running by runit. The restrictions coming with cereal suggest a setup similiar to what I did with ser2net previously: Each session has its own user account, which forces an attach to the appropriately named cereal shell on login:
my-device-name:x:1801:1801:my-device-name,,,:/home/my-device-name:/usr/local/sbin/cerealshell
$ cat /usr/local/sbin/cerealshell
#!/bin/bash
set -eu
cereal attach $(id --user --name)
$
You can see that I decided to name the sessions after the actual device name, allowing the unterlying ttyUSB device name to change without change in the user interface. The actual users and sessions were created with a small shell script:
#!/bin/bash
createconsole()  
  NAME=“$1”
  PORT=“$2”
  BAUD=“$3”
  MUID=“$ PORT/USBserial/180 ”
  echo sudo addgroup --force-badname --gid $MUID $NAME
  echo sudo adduser --force-badname --gecos “$NAME,,,” --ingroup $NAME --uid $MUID --disabled-password
$NAME
  echo sudo adduser $NAME dialout
  echo sudo mkdir -p /home/$NAME/.ssh
  echo sudo chmod 755 /home/$NAME/.ssh
  echo sudo touch /home/$NAME/.ssh/authorized_keys
  echo sudo chmod 644 /home/$NAME/.ssh/authorized_keys
  echo sudo chown $NAME:$NAME /home/$NAME/.ssh /home/$NAME/.ssh/authorized_keys
  echo sudo cereal-admin create $1 /dev/$2 $3 $1 $1
  echo sleep 2
    echo sudo cereal-admin start $1
  echo echo -----
 
createconsole my-device-1 USBserial1 9600
createconsole my-device-2 USBserial3 115200
Note that the script also uses a hardcoded UID range which might need adaption to your local needs (and breaks for more than ten serial ports), and that it also takes care of creating an empty authorized_keys file with correct permissions. That way one can simply ssh to my-devlce-1@consoleserver and find oneself immediately connected to the serial console, seeing the last things that happened on the serial port, and immediately being able to work with the device. That’s fine, comfortable and useable. I actually like that better than what I built with ser2net previously.

Russ Allbery: General update

It's been a while since I've posted anything except reviews and I'm overdue for a general update. With the Kerberos upgrade project finished last month, I'm currently in the wonderful situation of not having any large active projects at work and being given time to generally catch up. With luck, I'll have a couple more months of that before things really heat up. I only have to consult on a few projects and otherwise can deal with all the operational issues that I'd been putting off. A lot of my time lately has been spent on Puppet configuration cleanup and improvements, and there's at least another solid week of that to go, as well as a pile of overdue documentation to write. On the Debian side, Lintian has moved to a new Git repository and Adam D. Barratt has started committing directly. Frank has also had time to do a lot of work, which means that Lintian development is proceeding quite well without a lot of active attention on my part. That's been wonderful and has given me time to focus on other things. Most of my Debian effort of late has gone into the new Shibboleth packaging team and review of Shibboleth 2.0 packages, the last of which was uploaded last week and is sitting in NEW. Thanks to Ferenc W gner for the fine work! All the packages are now in Git and migrated to Alioth and there's a wiki page for the packaging team. Scott Cantor, the primary upstream developer, has joined the mailing list and has been extremely helpful and responsive. Sam Hartman has also migrated the krb5 packaging repository to Git and Alioth, and last Friday I finally finished migrating the openafs repository. Both are unfortunately rather huge since they contain all the historic upstream tarballs (extracting that would have been hideously complicated to do as part of the migration), but they shouldn't grow nearly as much now that we can use pristine-tar. This is the heart of the Kerberos and AFS packaging; there's now just kerberos-configs and my two PAM modules to move (more on the complexities of the PAM module Git migration in a later post). On the personal front, I've been travelling a lot lately, but that will now calm down for a while. I have some company next month, though, and hopefully will be up for it by then (right now, I just want to hole up in my apartment and do my own thing and not interact for a bit). I've been reading George Orwell: An Age Like This (1920-1940), the first of a four-volume collection of his letters, essays, and reviews. I was inspired to buy the first volume after reading one of his essays on-line after a Usenet discussion some time back, and I'm delighted I did. It took me a bit to get into it, but now I'm finding it absolutely fascinating. Orwell has a talent for concise and accurate descriptions of life (primarily of the poor) that capture the emotional tone as well as the surface details. That's mixed with interesting book reviews (I love reading book reviews), intriguing tidbits on his writing process and how he viewed being a writer, and snippets of the day-to-day of his life that have survived in letters. It's rather like reading a blog, and Orwell is a good enough writer that even his unparagraphed, abbreviated commentary in letters is full of memorable turns of phrase or observations. If you like that sort of thing, I recommend it highly. I'm going to buy the remaining three volumes and read the whole collection, plus quite likely pick up Orwell's other books besides 1984 and Animal Farm.

28 June 2008

John Goerzen: A response to "7 Ways Religion is Detrimental to Science"

I read 7 Ways Religion is Detrimental to Science, and thought it would be an interesting read. It was, but I don't think it really made sense. Let's look at the 7 ways they highlighted:

1. Faith and the Scientific Method are Opposites

The article states:

Faith is a belief in an idea regardless of the evidence for or against it.


Actually, that's not true at all, at least for traditional Christianity. (Note that traditional Christianity is not the same as fundamentalism). Marcus J. Borg describes faith in four ways:

Fiducia -- trusting in God. Borg says, "Faith . . . [means] we trust in God as the one upon whom we rely, as our support and foundation and ground, as our safe place."

Fidelitas -- loyalty, or "the comment of the self at its deepest level, the commitment of the 'heart'. Faith as fidelitas does not mean faithfulness to statements about God. . . Fidelitas refers to a radical centering in God."

Visio -- a way of seeing -- "a way of seeing the whole, a way of seeing 'what is'. . . the ability to love and to be present to the moment. It generates a 'willingness to spend and be spent' for the sake of a vision that goes beyond ourselves."

Assensus -- perhaps the closest to what the author meant, is "faith as belief." Borg goes on to add:

The notion that Christian faith is primarily . . . about belief, about a "head" matter, is recent. . . For many, Christian faith began to mean believing questionable things to be true. . . this is the most widespread contemporary understanding of "belief".

This is very different from what faith as assensus meant. . . A deep but humble (and therefore imprecise) understanding of Christian faith as assensus, as involving affirmation of the centrality of God as known in the Bible and Jesus, is very close to faith as vision. It is a way of seeing reality.


As a Christian, I do not find the scientific method to be a problem. I find it to be enlightening in all sorts of matters, including even the history of religion in some instances. Christian faith is not about believing in certain ideas (such as the world being created in 6 literal 24-hour days), though there are those that distort it to be so. Rather, Christian faith is about living your life a certain way, about the meaning of life, about our duties to make the world a better place.

2. People Vote Base on Religious Ideas

The author says that "Stem Cells weren t the first time a body of research didn t get proper funding because some religious wack-jobs." Well, I agree that that was a problem. Non-religious people can vote in odd ways too. I argue that the rejection of stem-cell research goes against Christian teaching; after all, we are to help the least among us, and do not people with Alzheimer's qualify?

I think the author's point should have been "exremists have odd views." Extremists can be atheist, Christian, Muslim, Buddhist, or other religions. Religion does not have a monopoly on them.

3. Religion Removes the Need For Science

The author says:

When people are content to believe in something that explains why they are here, even if it is wrong, they become less interested in other ideas. Religion often leads people to believe that they have all the answers. Science is self-correcting in that nobody assumes they are absolutely correct.


That is incorrect on several levels. First, science cannot explain why we are here. It can explain some of the mechanics. As an example, let us take for granted that modern scientific thought on the origin of humanity is correct: that there was a Big Bang, that single-celled creatures evolved on earth, and that human life eventually evolved through a complex process of evolution and natural selection. Fine; this does not contradict religion in any way. Science and religion answer different questions. Science answers "how". Religion answers "why". Science cannot answer the question "Why was there a big bang?" or "Did the evolution of humanity serve a larger purpose?"

Moreover, religion should not assume that they have all the answers, either. The canonical Christian Bible was mostly fixed within a few centuries AD. Life in 200AD was a lot different from life today. Part of the reason there are many different groups of Christians is the complexity of applying the stories in the Bible to modern life. The ideas in any given denomination evolve over time, too. I think it would be the height of hubris for anyone, religious or not, to claim that he or she had all the answers. Again, I know that some religious people act that way, but then so do some atheists or agnostics.

4. People Lean on Religion, When They Could Benefit From Science

The author of "7 Ways" cites the quite rare case where a child dies of a curable disease while his/her parents pray, refusing medical care. This is an extreme position that is not shared by the vast majority of religious people. Most religious people are perfectly content to use the latest medical care.

Meditation or prayer does not replace medical care; it supplements it. Scientific studies have even demonstrated its effectiveness.

5. The Church Takes Up Natural Resources

The original author states that "The land that churches take up around the world could be used to build schools, homes, recreational buildings and commercial operations." This is perhaps the most frivolous of arguments. Putting aside the fact that many churches operate schools, churches are often one of the few ways that modern city dwellers have to form a sense of community. They are not just places to engage in religion. They are places to meditate, to get away from it all, to meet your neighbors, to vote.

6. The Church Takes Up Monetary Resources

The original author says "if people donated to scientific advancement like they did to the church, imagine where we would be today." It's not a pleasant picture. Religion, and institutions supported primarily because of the teaching of religion, are the people that feed the hungry after natural disasters, that operate food pantries (our church operates the only one in our community, and it's open to anyone without any questions or talk about religion), that operate schools in disadvantaged areas, that have spread the whole idea of fair trade for third-world artisans, etc.

It is true that acts of evil have been committed in the name of the church, too. It is also unquestionably true that some church groups spend money more carefully than others. As with any donation, people should be careful where they give. Government-operated research studies are not necessarily a good use of money, either.

7. Religion is A Strong Meme

The author of the original story seems to be responding to a particular brand of Christianity: what Borg calls "literal-factual" religion. There are quite a few people that take that stand. They are sometimes inaccurately referred to as "evangelicals" or the "religious right"; while there is some overlap between the groups, they are not one and the same. The people with the literal-factual view are not representative of the whole.

More interestingly, Borg points out that the literal-factual view was actually a response to the development of the scientific method during the Enlightenment. As the modern idea of truth moved to literal, factual, provable truth, some Christians grew defensive about their faith, and started to look for "scientific" ways to prove that the world was created in 6 days, etc. in an attempt to show the world that Christianity fit their new notion of truth.

That makes a compelling argument that the scientific method is the stronger meme in today's Western world -- so strong that the author of the rant against religion has apparently forgotten the more prevalant -- both throughout history and today -- view of Christianity that is "more than" Science, not at odds with science.

Jeff Bailey: A retrospective on 26 years of Microsoft in my life

It's interesting to think about Bill Gates retiring. When I think back to how much Microsoft has brought us over the years, both happiness and grief, it's a bit of a happy/sad end to an era for me.

Microsoft is what saved us from the TRS-80, and brought us into a world where clone hardware drove prices down to where everyone could afford them. MS-DOS may have been a bad rip off of CP/M and Unix, but to business operations brought us the ability to bring computing power right down to the desk and generally got out of the way. Dos had the neat ability to have TSRs that could deliver waiting applications at a keystroke (remember Sidekick?) Windows 386 and 3.0 brought us preemptive multitasking for DOS apps that weren't written for that in mind, and brought us the first environment the mass market had seen where any manufacturer could write drivers to a known programming interface and bring their hardware to the world. They brought us a world where hardware innovation was bringing crazy new things to us that had only been possible in Sci-Fi movies before. My first voice-recognition system on the computer was in 1990. =)

Windows 95 pushed that even further. No longer were drivers crazy TSRs, but actually loaded into the control panel with standard was of using them for established services such as Networking and Sound. For everything else, the model was extensible so that if you had a neat idea, you could bring it out to the world. I remember installing TwinBridge at work so that people could type in double-wide Chinese characters, despite the OS not being intended for that in the slightest.

Windows 98 brought us games that were better than we were seeing in DOS. DirectX and DirectSound were finally providing a good enough abstraction on top of the hardware that it was easier for authors to code to that than to code right to your Adlib card and whatever display adapter you had (were we using S3s yet, then?)

But that seems to have been the top point of their reign. At this point, as a user I was now so far from the guts of the machine, I no longer could easily tinker. I'd once coded in Z80 asm and 8086 asm to write little hacks, but Windows 98 was getting to the opinionated software stage: There were things you just couldn't do, for no reason other than the designers at Microsoft didn't think it was important.

I realise I'm not the usual mass-market type, but now the system that had been such a source of inspiration was now becoming a barrier to trying new ideas.

I had started playing with Linux in 1995, but 1998 had started to use it as my main machine at home. I had a roommate who had a dumb cheap machine that was slaved off of my main machine so that he could play Medievia all day and night. Setting up this networking, and the on-demand ISDN dialing was trivial to do under Linux, and nearly impossible under the Windows systems of the time.

The only thing one could say for FVWM95 at the time was that it was better than twm. We suffered through Enlightenment, said hello to wine, and joined an online community of people who'd all come together from various places in order to be free to play with the systems we had.

Microsoft became steadily less relevant to my day to day computing. My girlfriend (now wife) suffered through early incarnations of MS Word for windows 2.0 under Wine because it was still easier than teaching her emacs. And steadily, the system got better until we could honestly look at our family members and tell them that if they wanted to run Windows that was fine, but please don't call me about it.

We need to both say thank-you to Microsoft and learn from it. Microsoft made a business model of bringing us the technology we craved as geeks, and that society wanted to play with and integrated into our lives. Microsoft also taught us what it means to be the dominant player. For most of us, I suspect it was our only view into the world where a single player dominates and strives to cut down its competition. It's easy to romanticise the small business owner, and just as easy to forget that just about every small business owner wants to be a millionaire and a large business owner.

We need to remember that the pretty fancy interfaces can be as much about helping people do things as keeping them from doing things. We need to demand the freedom to tinker with our software and our devices, even if we choose to never do so. And after all that, we need to be able to take our data from a device, and take it to somewhere else. I think ultimately, this is what Microsoft has taught us. As we look for new companies to deliver us greater and shinier technology, this is a lesson we need to keep close at hand.

Martin F. Krafft: Shortcomings of the Nokia E51

I put the Nokia E51, which I had previously acquired, onto Ebay last night, and it sold within minutes. Even though I made a 50 loss on the whole affair, this made me very happy! The phone is crap in so many ways that it made me quite angry. I now consider those 50 the investment I had to make to bring you this post: First of all, the reason why I bought the phone was because it sports wireless LAN as well as Voice-over-IP. Since I ve recently gotten into VoIP, I was looking for reasonable VoIP phones and even though the Siemens C450IP DECT phone works very well, it only does so at home, or where I find a switch port for it. So my theory was to get this Wifi+VoIP phone and be able to use my VoIP infrastructure from anywhere around the world. Penny has the Nokia E65 and loves it, so I went for the E51, a newer model that promised to address some of the issues she had with hers. All of the following is based on the E51 with the 100.34.20 firmware dated 29 September 2007, which runs the (crippled) Symbian S60r3 operating system.

Good things Let s start with the few good things up front: the E51 comes with a regular USB jack, allowing you to plug it into any computer and use it as mass storage device without the need for any Nokia-specific cables. I also liked the remote lock functionality: in the event of a stolen phone, you could send it a pre-defined passphrase that would cause the phone to lock itself. Also, the phone could be configured to lock itself (like a screensaver) after a given amount of idle time. Other than that, I could not find anything outstanding, so let s turn to the downsides, of which there are many more:

VoIP/SIP shortcomings I had previously dismissed the E series phones for good reasons, but both the E65 and the E51 improved their SIP clients a fair bit, and with the SIP VoIP settings utility, it was even possible to configure STUN. But unfortunately, the SIP client, while a nice toy, ended up being unusable in production. Here are some of the reasons: I got VoIP working at home and in some other places, but definitely not everywhere. It may be that some of those networks blocked the SIP port (5060/udp), or that the phone didn t feel well on the day, but in the majority of cases, I could not get the SIP client to connect. And there was no way to find out what was going on, as the client would just claim that registration failed without any additional information. It was also hard to retry, often requiring the phone to be restarted. Whenever if failed, the client would helpfully tell me that it could not establish a connection to the connection network . To get the phone to log on to the SIP server automatically, I had to define a home network for the SIP profile. Changing the access point for that network required a phone reboot to get SIP working again. It was possible to define multiple SIP profiles with different access points and add them all to the one, global VoIP profile, and theoretically get auto-login to work across multiple Wifi networks; unfortunately, I cannot say that this worked, there were always some problems requiring me to change defaults and shift things around. Also, after I had defined a few of those profiles and needed to make a change to the SIP settings (move the SIP port to 53/udp), I had to modify all profiles in turn; it was not possible to share settings. On the other hand, NAT traversal settings and timeouts, which can only be configured with the aforementioned SIP VoIP settings utility, applied to a VoIP profile and thus to all SIP profiles, without exception. I found it mildly annoying that I couldn t use # and * as part of the number/SIP address to call, nor was it possible to dial single-digit extensions the phone will ask you to associate a quick dial number with the key, even if quick dial has been explicitly disabled). I could also not dial a SIP address ad-hoc if I wanted to call sip:someone@sip.somewhere.org, I had to define a contact and add the Internet phone address. One can define Internet calls to be the default call type, thus routing all calls via VoIP if available. Unfortunately, once I dialed a number, the event was hardwired to the call type: I could not redial a number used previously for a VoIP call when all I had available was GSM coverage.

Gripes with the IMAP client The IMAP client, while an interesting addition to my day, turned out to be pretty unusable. The first mistake I made was to tell it to synchronise all messages in some of my larger mailboxes, which caused the phone to take tens of seconds until it switched a folder, and a few seconds just to scroll to the next screen in any given folder. I found that once any mailbox accumulates more than 100 messages, the client turns useless (Nokia s default is to synchronise 30 messages). I could tell the client to synchronise every hour, but only if I locked it to an access point, the home network . If I roamed to a different Wifi network, I could no longer connect to the IMAP server, as this access point would not be found. The phone would not let me use a different access point unless I changed the home access point, but changing that turned off the automatic mail sycnhronisation. If I say mail synchronisation, I mean header synchronisation. Even though there is an option for Headers only , it only applies to POP3; it is impossible to have the phone download message bodies automatically, only manually and then only per-message or per-folder, not for all folders at once. The IMAP client could delete messages, but it could not move a message to a different folder, nor create or delete folders. And even though I could turn off the message tone the phone would play when it received new email, it insisted on vibrating nevertheless. The only other IMAP client I found for Symbian phones is ProfiMail, which looked interesting and much more powerful, but which would randomly crash on me while browsing or operating on larger mailboxes.

Connection hickups While the an application was running that was using the network, the Wifi connection stayed open, but I could not make it stay open between sessions. The phone would obtains an IP, do what I asked it to, and then immediately close the connection. From a power management perspective, this makes sense, but not from the usability angle. I could not make the phone connect to a Wifi network that advertised both, WPA and WPA2 and had to disable WPA at home to let it connect. At times, it was not possible to reuse an existing connection. I haven t been able to figure out the details, but it seemed to me that whenever an application like the IMAP client was locked to an access point, it would be unable to make a connection to the IMAP server, even if e.g. the VoIP client was connected to the server by way of exactly the same access point. The phone would just say that a connection was already active and that I should close it and try again . I had a really hard time working with SSL-enabled websites and IMAP servers, because even though the phone presented me with the server certificate and offered the choice of accepting it permanently, it didn t and would ask the question again and again (which made the phone pretty unusable if the IMAP client was running in the background). Only after I had found out how to import the CACert root certificates, did this problem become irrelevant.

Other pet-peeves The phone came with a lot of smaller issues that made me ask the question of whether its designed ever had to use it too often. Possibly the most annoying aspect of the phone was its speed. It s a lot faster than the E61, but it still takes on the order of seconds to update screens or display simple text messages. Speaking of text messages, I am a little spoiled by the Sony Ericsson K610i (to which I now return), which would offer the contacts with whom I d recently interacted instead of presenting me with the full list, like the E51 does. I could filter the full list, but only by typing the start of the name substring matching was not implemented. It was impossible to receive text files via bluetooth and have them put onto the filesystem. On receipt, the phone just said text file saved , and it took me a while to figure out that it had stored them into the notepad, from where it could not be exported. To get my SSH identity onto the filesystem for PuTTY to use required me to access the phone via USB. The phone could receive vCards with new contacts, but it only offered to import the first contact, even though the standard allows for an arbitrary number of contacts per file. What s even worse though is that the phone silently failed to import contacts with non-ASCII characters in their name, such as or they just didn t show up even though the phone gave every indication of a successful import; creating such contacts on the phone worked, on the other hand. Each time I started the phone, the Nokia greeting screen would show up, accompanied with the Nokia tune, which could not be disabled. Enough said. The last problem I feel worth mentioning is hardly a Nokia or Symbian problem: battery life. With Wifi turned on, the phone would last about 24 hours on standby, which makes it pretty unusable for roaming Wifi or even VoIP usage.

Summing up I am happy to have sold the phone and look forward to returning to my Sony Ericsson K610i. After checking out the E61/E71 a bit, playing with the E65, and trying the E51 out for several weeks, I can conclude that Nokia has a long way to go before they can offer a usable smartphone with Wifi/VoIP capability. It would be a good step forward if they would open-source the Symbian operating system, but until that s done, I am going to look at the OpenMoko FreeRunner next. The E51 once again made it perfectly clear for me that proprietary software is no alternative for my use case. NP: Fat Freddy s Drop: Live at the Matterhorn

Martin Michlmayr: Debian support for HP mv2120: putting everything together

I managed to get my hands on a HP Media Vault mv2120, a nice ARM based NAS device, a few months ago with the intentions of porting Debian to it. Unfortunately, I have been really busy lately and most of my time was spent on adding support for the QNAP TS-109/TS-209 and TS-409 (which required a lot of generic work to get Marvell Orion support into Debian, a new SoC used in many NAS devices, including the QNAP TS-x09 and HP mv2120). There were a number of things that had to be worked out before Debian would run on the mv2120. The good news is that Marc Singer and Eugene San have done all of the heavy lifting in the last few weeks in figuring out how the mv2120 works and that now it's just a matter of putting everything together for Debian to work. Here are the issues that had to be worked out: Now that these two issues are resolved, I simply need to put everything together and add support for the mv2120 to a number of debian-installer components. We already have Orion kernel images in unstable that support the HP mv2120 (along with a number of other Orion based NAS devices) and the rest shouldn't take too long.

Biella Coleman: On Anthropology, Participant Observation, and Non-Places

When you are in a foreign city, Dakar, Tunis, Tokyo, the spaces and sights are disorienting for they unfamiliar. But there are a few spots (hotels, supermarkets), that bring you back the familiar and these places have been theorized by French Anthropologist Marc Auge as non-spaces. Here is a nice interview with Auge on the difference between ethnology, anthropology, as well as his description of non-places:
I tried to characterize these new emerging spaces by the term non-places which empirically makes note of the extension of these new spaces in our world; spaces of circulation giving us the sense that the earth is small, spaces of communication (possibly virtual spaces), or even of consumption, since a large part of what circulates aims to put products into circulation (and possibly the men who produce them) such that the activity of consumption reproduces society itself. Such spaces of circulation, of communication and consumption, including the technical capabilities that make it possible for them to be visited or concentrated (the airport, the supermarket, the freeway, etc.), are what I have designated by the term non-place .

27 June 2008

Wouter Verhelst: Passports...

Today, I went to the Ekeren district house[1] to get me a passport, in order to be able to fly to Argentina in about a month. As I was queueing at the desk, I realized that I'd forgotten some pictures of myself, so I left the queue, found the closest photo shop, and had them take some pictures of me. When I returned to the district house, gave them my new pictures and my identity card, with the request to furnish me a passport, the lady behind the desk told me that I apparently still had a passport. While no longer valid, I still need to hand that in before I can be given a new passport. Or, alternatively, I could go to the police office, tell them that I cannot find the passport anymore, and use the document they'd give me to get me a new passport. That, too, would work. So that's the option I decided to take. I quickly went to the police office, which is rather close to the district house; luckily nobody was queueing before me there. By the time I got back to the district house, it was about 14:50, while they close at 15:00. So I went ahead and started queueing again. Suddenly, I notice that my pictures were gone. For some reason, the idiots at the photo shop have deviced an "envelope" that does not hold the pictures -- they have three places where they can easily leave the "envelope". And that's exactly what had happened: no more pictures. So I ask the lady behind the desk whether she'd be willing to wait a few more minutes after their official closing time, so that I'd be able to go and look for them. She didn't mind. Unfortunately, I only found one picture. The other five were nowhere to be found... and with only one picture, the district office can't help me; they need two of them. So, now, I've not only lost an hour of my life, but I've also lost 8.00 for pictures that are now no longer useful to me. And I'll have to do all of this again, some time next week. Dammit. [1] although I don't live in Ekeren anymore, officially I do: the apartment where I live does not exist according to the Mechelen city administration. Before I can officially move there, the landlord needs to deal with that, which apparently involves quite some bureaucracy. For one thing, he needs 6—yes, six—copies of the building plans, along with a particular form with a particular number. Probably needs to jump through a number of hoops, too—I wouldn't be surprised.

Russell Coker: The New DNS Mess

The Age has an interesting article about proposed DNS changes [1]. Apparently ICANN is going to sell top level DNS names and a prediction has been made that they will cost more than $100,000 each. A suggestion for a potential use of this would be to have cities as top level names (a .paris TLD was given as an example). The problem with this is that they are not unique. Countries that were colonised in recent times (such as the US and Australia) have many names copied from Europe. It will be interesting to see how they plan to determine which of the cities registers names, for the .paris example I’m sure that the council of Paris Illinois [2] would love to register it. Does the oldest city win an international trademark dispute over a TLD? The current situation is that French law unambiguously determines who gets to register paris.fr and someone who sees the URL will have no confusion as to what it means (providing that they know that fr is the ISO country code for France). As well as city names there are region names which are used for products. Australian vineyards produce a lot of sparkling wine that they like to call Champagne and a lot of fortified wine that they like to call Port. There are ongoing battles about how these names can be used and it seems likely to me that the Australian wine industry will change to other terms. But in the mean-time it would be interesting if .champagne and .port were registered by Australian companies. The fuss that would surely cause would probably give enough free publicity to the Australian wine industry to justify an investment of $200,000 on TLDs. The concern that is cited by business people (including the client who forwarded me the URL and requested my comments) is that of the expense of protecting a brand. Currently if you have a company named “Example” you can register example.com, example.net, and example.org if you are feeling enthusiastic. Then if you have a significant presence in any country you could register your name in the DNS hierarchy for that country (large companies try to register their name in every country - for a multinational registering ~200 domains is not really difficult or expensive). But if anyone can create a new TLD (and therefore if new ones are liable to be created at any time) it becomes much more difficult. For example if a new TLD was created every day then a multi-national corporation would need to assign an employee to work full-time on investigating the new TLDs and deciding which ones to use. A small company that has an international presence (IE an Internet company) would just lose a significant amount of control over their name. I don’t believe that this is as much of a concern as some people (such as my client) do. Currently I could register a phone line with a listed name indicating that it belongs to the Melbourne branch of a multi-national corporation. I don’t expect that Telstra would stop me, but the benefit from doing this would be minimal (probably someone who attempted fraud using such means would not gain much and would get shut down quickly). I don’t think that a DNS name registered under a .melbourne TLD would cause much more harm than a phone number listed in the Melbourne phone book. Incidentally for readers from the US, I’m thinking of Melbourne in Australia not a city of the same name in the US - yet another example of a name conflict. Now I believe that it would be better if small companies didn’t use .com domains. The use of country specific names relevant to where they work are more appropriate and technically easier to implement. I don’t regret registering coker.com.au instead of some name in another country or in the .com hierarchy. Things would probably be working better right now if a .com domain name had always cost $100,000 and there were only a few dozen companies that had registered them. But we have to go with the flow sometimes, so I have registered RussellCoker.com. Now when considering the merit of an idea we should consider who benefits and who (if anyone) loses. Ideally we would choose options that provide benefits for many people and losses for few (or none). In this case it seems that the suggested changes would be a loss for corporations that want to protect their brand, a loss for end-users who just want to find something without confusion, and provide more benefits for domain-squatters than anyone else. Maybe I should register icann.port and icann.champagne if those TLDs are registered in Australia and impersonate ICANN. ;)

Eric Dorland: Technolust unfulfilled

When I first saw the eeePC I thought it was a great idea, but seemed a little too small (particularly the screen) and not great battery life. Now that the 901 has been released it seems like an ideal ultra portable laptop for my needs. Unfortunately there doesn't seem to be anyone selling it here except on eBay. Looks like they won't go on sale here until July 7.

I've also become a ridiculous fanboy of the Wii. Which means I have to get a Wii Fit. And of course, no one has them. I am lucky that here in New York we have the Nintendo World Store that gets a shipment every morning, but so far I haven't been desperate enough to drag my ass out of bed early to get one. We'll see how long it lasts.

I wonder if the rumblings of manufacturers purposely shipping less to the US because of the weak dollar are true.

26 June 2008

Wouter Verhelst: Firefox sucks. No, really!

Warning: big rant ahead. I received some comments on my previous post, as expected. Most of them were helpful; e.g., the oldbar extension is very useful. One of them was silly.
It depends: If your application is "fullscreened", clicking on the link without having the focus could lead to interesting situation like "Hey, It does nothing?"
Just to make a point here, let me reiterate: There is no excuse whatsoever to steal the focus Sorry for the shouting, but seriously. I have the following in my icewm configuration:
ClickToFocus = 0
RaiseOnFocus = 0
FocusOnMap = 0
FocusOnAppRaise = 0
FocusOnMapTransient = 0
FocusOnMapTransientActive = 1
RaiseOnClickClient = 0
What this means is that I don't want anything to either get the focus or get on top of anything else all by itself, unless it happens to be a new dialog box created by an application that already has the focus. I also don't want windows to appear on top of anything else just because they received the focus. I also happen to prefer focus-follows-mouse, which you can get by way of the ClickToFocus thing. The reason I prefer it this way, is that often I have several applications open all at once. For instance, when I read RSS feeds, I have my RSS reader open on one virtual desktop, and read through the articles. Since my laptop's processor is much, much faster in certain things than is my network, I also make use of its multitasking abilities to have it preload links in the background (on another virtual desktop, preferably). Unfortunately, somehow, firefox manages to bypass all that configuration and shows up in front, stealing the focus; and in the process, it completely interferes with the way I work. No doubt they do this in order to help some hypothetical "grandma" or other stupid clueless person who's never used a computer before, but let me tell you something: software should be written for people who actually do use software, not for stupid nitwits who can't even read an error message that tells them "you cannot do A, please go ahead and do B instead". But I guess I'm too stupid or something to understand the usability "experts" who know it all best and say that software should be "intuitive" so that those who are 53 and see a computer for the first time in their live can sit right next to it and start emailing. Hah. As if the above wasn't enough, firefox 3 also is a crashing load of shit. I just spent the better part of an hour to try and make a payment using my bank's excellent online payment software which requires nothing more than javascript, SSL, and a digipass 810 that is provided by the bank as part of the online banking contract. Unfortunately firefox insisted on crashing halfway through entering the required information, for six times in a row. You'd think I'd be filing a bug now, but no, it managed to crash in a different location every time. I'd probably have to start debugging firefox to get this done, which is not something I'll do in this life. You know what the problem is? Webbrowser developers think they're developing the most important application for any computer. They're not. It's just a webbrowser, no more important than an xterm or a mail client: a tool to get a job done. Period. Grunt.

Edd Dumbill: My OSCON 2008 picks

In just under a month, the tenth O'Reilly Open Source Convention will get underway in Portland. Over ten years OSCON has developed—along with the world of open source—into an intense, exciting, informative, diverse and exhausting event. This year I've the privilege of being co-chair, along with Alison Randall. We've packed so much into the show, it's a difficult job even being able to comprehend it as a whole! Fortunately, there's a way to start making sense of things before you arrive there, thanks to the personal scheduler. Just mark the sessions you want to go to with a star, and you'll be able to plan out your time in advance. I wanted to list a few sessions from my own personal schedule that particularly piqued my interest. Then at the bottom of this post I'll share a discount code which can give readers of this blog 15% off OSCON registration. There's bribery for you. Practical Erlang Programming Largely thanks to XMPP enthusiasts and ejabberd, I've been hearing increasing amounts about Erlang, and I'd like to know enough about it to be dangerous. This three hour tutorial looks just the ticket. Open Source Virtualization Hacks This is one of several sessions we have on virtualization, something I'm particularly pleased about. Virtualization may be "done" at the kernel level, but I think we're only just starting out on its application. This session is by my friend and sometime co-author, Niel Bornstein, who works for Novell on just this sort of thing. Using Puppet: Real World Configuration Management Puppet is the piece of open source software that is most exciting to me at the moment. As a developer, it enables me to manage my machines like I'd manage my code libraries. A must-see if you've not used Puppet yet. These are just 3 out of the 300 or so confirmed sessions. Don't forget there's a large number of events and parties happening around OSCON too. And finally, the discount code. Use the code os08pgm when you're registering, and you'll get 15% off the ticket price. See you in Portland!Join the conversation about this post

Next.

Previous.