Search Results: "cas"

26 March 2006

Wouter Verhelst: Dear lazyweb,

I'm looking for a calendaring application with the following features:
  1. Must have a (limited) command line interface. I want to be able to view my appointments of the day in plain text format, so that I can put that in my .profile; it'd be nice if it allows me to view my appointments on any random date, but that isn't required. Moreover, when someone sends me a meeting invitation, I want to be able to pipe the ical file into something which puts it in my calendar, with optionally also sending an email to the person who sent me the invitation that I'm accepting it (optionally, as in, it must have the feature, and it should allow me to decide whether to send the mail on a case-by-case basis, not as in it would be nice if the feature existed.)
    More command line features are nice, but not necessary.
  2. Must have the ability to export ical files to a text file on my local hard disk; must not require me to set up a server with some weird login scheme and ditto protocol so that I can please put my webcalendar somewhere—and no, I won't sign up for one of those "free" webcalendar services. I'll put it online myself, thank you very much.
    This requirement rules out evolution, unless I missed some plugin somewhere (I don't think so).
  3. Must have basic calendaring functionality. I.e., I should somehow be able to get an overview of my appointments of any given day, to get a weekly, monthly or yearly overview, to print out things, etc.
  4. Must not require ages to start up. This, definately, rules out evolution. When I have a phone call, I want to be able to see within a few seconds whether I'm available at any given time.
  5. The ability to synchronize my calendar with my cellphone somehow would be nice, but isn't absolutely required. I'm willing to jump through a number of hoops here. Note that gnokii supports my cellphone.
Suggestions are welcome.

Jos Parrella: FLISOL Caracas: Ending

The Latin American Infest finally ended yesterday. In Caracas, it was a week of hard work with people of the Science and Technology Department and the IT Office (government offices) but the event in Caracas ended succesfully. It was a world-class event featuring renowned keynote speakers who spoke about Web Development using Frameworks (featuring TurboGears, Rails and Catalyst) and software development paradigms migration from privative platforms to GNU/Linux (Gambas and Mono). Other talks included basic security in Debian GNU/Linux and a speak about electronic signature security by an officer of the Venezuelan Government CA. We had a speak about Clusters, hosted by a female member of the Venezuelan Free Software Community and Debian User, and a speak about Free Software in the Venezuelan Education, by a 16-year-old Venezuelan GNU/Linux user and a willing Debian Maintainer. Of course, the Installation Festival took place in the Knowledge Square, in the Auditorium Building Lobby, with the extraordinary support of the Venezuelan Free Software Users Community. Debian GNU/Linux Sarge netinst and CD1 was distributed (several hundreds) as well as Knoppix and Ubuntu Hoary. Ernesto Hern ndez-Novich (maintainer) and me wore Debian T-Shirts on Saturday, and he made a great speech about the Project, named “Debian is inexorable“. We had demonstrations of Linux on a Mac Mini, using XGl and presenting several applications, as well as Debian running Enlightenment on an old Presario 1246 laptop. I would like to thank all the speakers and the attendees for making of FLISOL Caracas a great event. More information about FLISOL Caracas is in my blog and the homepage (spanish). Pics are here.

Bernhard R. Link: compiler arguments

Please do not hide the arguments given to the compiler from me.

It's hard to realize something is going wrong if you do not see what is happening. If the argument list is too long, do something against that instead of hiding it.

Make sure you follow policy when packaging software

Debian packages should be compiled with -Wall -g, but more and more do not. Please check you do, but check at the correct place. Do not look into the debian/rules file, but in the build log. If the Makefile sets a default with a single equal sign ("="), running 'CFLAGS="-Wall -g -O2" make' will not suffice. Try 'make CFLAGS="-Wall -g -O2"' instead. (Actually, there is no good reason to put them before the command. Always try to put things as arguments first, both with make or with ./configure)

It really makes everyone's live easier if those options are set.

Keep the argument list tidy.

Many argument lists are longer than necessary. If there is some -I/ in the argument list on a Debian system, there is something fishy. (It's not the universial collection of different stuff all going whereever it wants, after all). Common cases are:

- buggy scripts to add -I/usr/include

Better fix those scripts. Also make sure they do not cause other problems, like linking your program against libraries your program does not use directly. (Possibly causing funny segfaults when those libs link against other versions of those libraries)

- -I/usr/X11R6/include

For upstream packages this might perhaps be useful to support older operating systems and people unable to give it to CFLAGS themselves. But for FHS systems, this is not needed at all, as it mandates this handy /usr/include/X11 -> /usr/X11R6/include/X11 symlink. And newer X directly puts the headers in the correct place.

- packages working around upstreams breaking compatibility

Life would be too easy if upstream would not break APIs. But if they make a new incompatible version, and even change the library name for that, would it have been that difficult to also change what programs written/ported for that new incompatible API have to place in their #include line?

- plainly broken upstreams

putting stuff in $ PREFIX /include/subdir/ and #include'ing other files from that subdirectory without the subdir deserves application of some large LART.

- oversight

often it is just not necessary, and everything gets much more readable and easier if left away.

Other things makeing things unreadable are large armounts of -Ds generated by ./configure. AM_CONFIG_HEADER can help here a lot with non-path stuff. Stuff containing paths is suprisingly often not used at all.

25 March 2006

Martin Michlmayr: Compiling the whole Debian archive on MIPS with GCC 4.1

Over the last 2.5 weeks I have built the complete Debian archive on a quad-core MIPS machine donated by Broadcom using the recently released version 4.1 of GCC. In parallel, I have done the same on an EM64T box donated to Debian by Intel. The purpose of this exercise was three-fold: Executive summary GCC 4.1 itself appears to be very stable, both on MIPS and AMD64. There are, however, a large number of packages using code (especially C++) which GCC 4.1 treats as errors. Fortunately, most of them are trivial to fix. By compiling about 6200 packages, over 500 new bugs have been discovered and submitted, 280 of which are specific to the increased strictness of GCC 4.1. Patches for 2/3 of those GCC 4.1 specific bugs have been submitted. Based on my findings, Ben Hutchings has prepared a summary of the most common C++ syntax errors (that weren't treated as errors before G++ 4.1). Most common programming errors Basically, it all boils down to broken C++ code. There were a few bugs in C code, but the majority was in C++. The most common errors I found are: I've posted a detailed report to debian-devel. Acknowledgements (abridged)

24 March 2006

Anand Kumria: Some random odds and sods as well as some ACID

Horms, why not use gworldclock? Martin, I think you are after tra. Andrew, you do realise that you could do that with yum – which has been in Debian for a while now. You'd have probably heard about it earlier if Mako could be bothered to get Atom 1.0 support working on Planet Debian. Rodney, Nokia phones generally use Netfront as their default. If you want to use Opera you have to specify it. I'd be highly skepticle of KHTML being used anywhere memory footprint mattered. It looks like it might be WebCore (dervied from KHTML) instead. But that is only on very recent phones (first half of 2006). Oh, and that is likely to be Yahoo merchant crawler. Yahoo probably thinks you are a corporate whore or something ;-). Finally is it just me or does it strike anyone else as odd that the Mozilla Corporation, with all of its' money, is not able to get a crack group of hackers together so that Firefox 2.0 can render ACID2? At least two of the competitors can already so, what's the go, Joe? (or in this case Mitchell).

Uwe Hermann: Linux 2.6.16 Upgrade [Update]

I have upgraded my kernel to Linux 2.6.16 today with some consequences: Update 2006-03-24: The loop-aes v3.1c patches apply just fine. I almost forgot to mention the NVIDIA changes...

23 March 2006

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!

21 March 2006

Joey Hess: replacing stuff with busybox

Martin- ric Racine: You asked about embedding Debian with busybox.
Would anybody happen to have more details about exactly which packages Busybox can replace while still providing just enough functionality to boot a Debian-based system up to an X display manager?
This is in general an impossible question to answer since any given Debian package may or may not work with any given utility from busybox. What we do at work to shoehorn a X-capable embedded Debian-based arm system into 32 mb or so of flash, is to install our set of packages, then tweak things until busybox diverts nearly every utility it supports. Then we snapshot the files used for a shutdown, boot, and the specific use of the system we want to support, and copy just those files over to our image, which ranges from 4 to 32 mb. For the busybox related parts of this, we use a program I wrote called busybox-links to set busybox up to divert everything cleanly and (semi-)reversably using dpkg-divert (and in some cases update-alternatives). busybox-links also tweaks a number of init scripts to work with busybox, stuff like editing /etc/init.d/hwclockfirst.sh to run hwclock without the --noadjfile parameter, which busybox lacks, and a dozen or so other such changes. Happily busybox readlink now supports -f, so the main set of things that had to be patches doen't anymore. This set of tweaks likely won't be sufficient for your system, but you can add more in a like vein. busybox-links is contained in our ads-additions package. As for reducing the tweaked Debian system down to just the files needed to run, we use the adsrootbuilder, which is still quite specific to our systems, but which I hope to eventually make less so. Both these packages can be downloaded from our apt repository:
deb-src http://www.applieddata.net/developers/linux/debian ads main contrib non-free
Of course, that's just one of many ways to do it. Part of the problem of embedding Debian right now is that there are as many ways to do it as there are people doing it, and no agreement on the right way, and so little progress in some areas. In the future, I for one would like to see a broad agreement in Debian that making init scripts and the like compatable with busybox is worth doing if it doesn't make them significantly slower or uglier. Then I could send all these tweaks in as patches, which would be a better use of my time than maintaining them going forward, and would make Debian an overall more flexible and more useful system for embedding. (PS, RE what debootstrap installs; it's based on whatever is > standard priority. If you have improvements, might I suggest talking to its maintainer, not blogging?)

MJ Ray: Go Charles Go

Mutual respect between faiths needs to be restored so as to overcome the distrust that poisons so many people's lives, Charles said. "This, of course, is made infinitely more difficult by the stereotypes and absurdities propagated by certain sections of the media," he said. -- Reuters
Please, remember social issues when you cast your DPL vote and Rank NOTA High rather than approve candidates you're unhappy with. In reply to Riku Voipio's criticism of the UDHR, with apologies to Ross Burton for the title.

Andrew Pollock: [life/americania] Spring has sprung?

So it seems that at least in North America, the seasons don't map directly to the inverse of Australia. Case in point, spring started today, on March 20, when if you were to invert autumn, should have started on the first of the month. In fact, my research seems to suggest that the seasons change around the 20th to the 22nd of the month, but it's all based on on Equinoxes and Solstices, so it wouldn't surprise me if it moves around slightly year to year, like Easter does. That said, the source of all knowledge is trying to tell me that summer in the southern hemisphere begins on November 6, which is news to me. In fact, further research tends to suggest that the northern hemisphere hasn't got a fucking clue when the seasons start, and are all over the place like a dog's breakfast. I'm feeling very seasonally confused.

20 March 2006

Matthew Palmer: The Curse of the Podcast

Over the past week or so, I've decided to get around to listening to some of the "amateur" (in the same way that Open Source software is "amateur") podcasts that I've collected in the past couple of months (primarily so I can either archive them, or delete them and free up a bit of HDD space). As a great fan of radio, I've been pretty disappointed at the quality of the podcasts I've listened to. While I hadn't expected the BBC world service, there are a number of quite common mistakes I've noticed across several of the podcasts I've listened to. In the spirit of kaizen, I've noted down the really bad things that I've noticed, in the hope that someone who does a podcast, or is considering doing a podcast, might keep these simple mistakes in the back of their mind and avoid them. No podcast I've listened to so far has exhibited all of these symptoms (there's no way I would have gotten to the end of that hypothetical nightmare audio file) but most have exhibited at least one of these flaws. For a better general idea of how a good podcast might sound, listen to professional radio for a bit -- a lot of good shows are podcast themselves these days -- and get an idea of what a good show looks like. I'm also prepared to go further than just bitching about podcasts. If you do a podcast, and would like my (unprofessional but oh-so-opinionated) assessment of your podcast, please e-mail me at mpalmer@hezmatt.org with a link to your podcast, and I'll try to give it a listen and honest critique.

19 March 2006

Raphaël Hertzog: My favorite candidates

So the DPL vote just started and I crafted my ballot. So it’s my turn to give you my opinion on the various candidates. Here’s my top 3 by order of preference:
  1. Jeroen van Wolffelaar
    I had the occasion to work with Jeroen due to our common involvement in Debian-QA and his work on the PTS. He’s only Debian Developer since 2004 but he’s the proof that you can get involved in core teams if you’re willing to work. His commitment to Debian is impressive. He’s also a strong proponent of the DPL team concept, and he managed to gather a well-balanced team. With some changes to the DPL team concept, this can make a big difference this year. Yes, I hope to be able to serve the project as a member of his team.
  2. Steve McIntyre
    I worked with Steve on numerous occasions due to our common involvement in debian-cd. He’s very moderate, appreciated by many people and could be very effective in mediating internal conflicts since he’s not involved in any core team. I look forward working with him, his platform is very attractive.
  3. Anthony Towns
    Anthony has been doing a great job for a long time, and I really appreciate his efforts to communicate what he does. I like his idea to bring momentum to the project… and he proposed the last general resolution to bring us to a conclusion on the GFDL problem. That’s the kind of initiative that I’m also expecting from a leader. His strong opinions do not suit everybody but at least he’s trying new ideas.
All the other candidates are well-intentionned (except one) but they do no match all my (fuzzy) criterion for a good DPL.

Uwe Hermann: Help: How do I boot Debian on a Sun Sparc Ultra 10?

Dear Lazyweb, I was trying to boot Debian on a Sun Sparc Ultra 10 box yesterday, without success. I got myself this Sparc box from eBay many months ago, but until yesterday it was merely standing around here and taking up valuable space (just like the other dozen or so computers standing around in my room). So I thought I should really make some use of it, finally... I booted it up and noticed that it came with SunOS 5.8 pre-installed. It boots quite fine into the graphical login prompt, but I don't have the root password (or the password for any other account). So my first task was to reset the root password. But I failed so far. Out of curiosity I connected the machine to my laptop and ran nmap on it. It has several ports open (e.g. ntp, ssh, X11, nfs, ...), so I could probably try to find a remote root exploit (or run an ssh brute-force attack) and crack it open that way ;) While I might try that later just for the fun of it, I wanted to simply boot a Debian first and change the root password manually. That sounded simpler at first... Anyways, here's what I tried so far: Boot into single-user mode As I had no experience whatsoever with Sparcs, it took me some time to read up all the stuff I needed... After a bit of googling, I found out that I need to press STOP+A to get into the boot prompt (the box has OpenBoot 3.19). There, I can type boot -s to boot into single user mode. Unfortunately, you still need the root password to boot into single-user mode. Argh! Boot from CD-ROM Next, I found out how to boot from CD-ROM. Typing boot cdrom in the boot prompt should do the trick. So I downloaded and burned a the current Debian "businesscard" image for Sparc:

wget http://cdimage.debian.org/debian-cd/3.1_r1/sparc/iso-cd/debian-31r1a-sparc-businesscard.iso
cdrecord -eject -v speed=2 dev=/dev/hdc -data -pad debian-31r1a-sparc-businesscard.iso
Booting seems to work partially. SILO seems to start fine, and I get to the "boot:" prompt. When I press Enter I get to the point where it says "Loading Linux..." but then the screen turns black and nothing happens anymore (hangup). The same happens when I type "linux" or "rescue" on the "boot:" prompt. The monitor works fine, SunOS 5.8 can display graphics etc., so it's probably not a hardware problem. Netboot After that, I tried to perform a network boot. This was fun and I learned a lot about RARP and TFTP, as I have never played with this stuff before. While the netboot part itself worked, it didn't solve my real problem, unfortunately... First, I installed rarpd and tftpd on my laptop:

apt-get install rarpd tftpd
In /etc/ethers I added a line which tells rarpd which MAC address should be assigned to which IP address. I looked up the MAC address of the Sparc box (it's displayed when you boot) and then added "xx:xx:xx:xx:xx:xx 192.168.0.20" to /etc/ethers. I configured my laptop to have the IP address 192.168.0.19: ifconfig eth0 192.168.0.19 broadcast 192.168.0.255 netmask 255.255.255.0. Of course, I plugged an ethernet cable in the Sparc box and in my laptop so they can talk to each other. Then, I created /etc/xinetd.d/foobar which contained:

service tftp

disable = no
socket_type = dgram
protocol = udp
user = nobody
wait = no
server = /usr/sbin/in.tftpd
# server_args = /tftp

This should tell tftpd to serve the Debian netinst boot image from /tftp, but that didn't work for me. So I commented out the "server_args = /tftp" and let tftpd fall back to the default location /tftpboot. You need to reload xinetd after any change: /etc/init.d/xinetd reload. Also, tftpd is compiled with TCP wrapper support, so you have to temporarily allow the respective connections, e.g. by adding "ALL: 192.168.0.20" to /etc/hosts.allow. Don't forget to remove that line again later on! Now I downloaded the Debian netinst boot image for Sparc (hopefully the correct one):

wget http://http.us.debian.org/debian/dists/stable/main/installer-sparc/current/images/sparc64/netboot/boot.img
mkdir /tftpboot
mv boot.img /tftpboot/XXXXXXX
You need to place that image into /tftpboot using the name under which the Sparc box requests it. I found that name by net-booting the Sparc machine and watching the network traffic with Ethereal on my laptop... The final steps: boot the Sparc box, type STOP+A, type boot net. The Sparc machine gets the boot image from my laptop just fine (it seems), and I get to the "Loading Linux..." part again. But then I have the same problem as with the CD-ROM boot: the screen turns black, nothing happens anymore... Help?

Daniel Burrows: Memcheck good; Fry's not so good

So, after finding a CD that had memcheck on it, I ran a memory test on the new system I had assembled but couldn't get working. Unsurprisingly, it produced a bunch of errors, especially in test 8. I tested the memory modules one at a time, and confirmed that one of them reliably failed test 8 with, while the other survived multiple passes of memcheck's whole arsenal of tests without skipping a beat.

OK, no biggie; I got a bad RAM chip, I'll return it. So we take it back to Fry's, I explain that I ran a memory checker on one of the chips and it came up bad (I even helpfully gave them a note indicating which of the two seemed to be the problem), and asked to exchange it for a new chip. The customer service guy vanishes, then comes back a while later with a different chip in a box. As we're preparing to leave, Kate notices that the "new" box is opened. "Why's that?" she asks. "Oh, testing," the customer service guy says.

Testing. That's good, right? So we shop a little, take the chips back, and I plug them in. I figure, hey, never hurts to be too careful, and boot up memcheck. BAM! Within half a second the screen turns red with errors. In comparison, with the first set of chips I had to run the tester for up to fifteen minutes before I got a test failure. Trying the chips individually, I discover that 300MB on one is just (as far as I could tell) gone. It fails every single test. The other one survives the first few checks, but fails test 8 just like the other bad chip I had. [UPDATE: it's actually not that bad; it does seem to have problems, but it doesn't fail on every single run of test 8, and it was able to run the Kororaa live CD]

Now, as I see it, we have the following possibilities:

(a) My luck sucks and I just got three bad chips in a row.

Possible, but I've bought at least a half dozen memory chips in the past (not counting ones that came in preassembled systems) and I'm pretty sure this is the first, maybe second time I've seen a bad one. Three in a row? That's ridiculous.

(b) I screwed up and blew out the chips while installing them.

Unlikely for the same reason as (a). I may be shaky on some hardware stuff, but I know how to install DIMM chips. Killing one might be in the realm of possibility; killing three out of four? Don't think so.

(c) The chips aren't compatible with my motherboard.

The chips are listed as being DDR400, which ought to be perfectly compatible with the motherboard. They are installed in the proper configuration (according to the motherboard's manual); besides, one memory chip worked just fine.


Assume that (b) and (c) are indeed false: the chips are really bad and I didn't destroy them. This, combined with the fact that Fry's "testing" didn't catch the blatantly obvious problems with one of the new chips, make me wonder if

(d) Fry's decided to save costs by handing me a pair (maybe even two pairs) of chips that another customer had returned, on the theory that returns are on average spurious.

The main problem with this theory is that I don't see why they wouldn't have resealed the package; maybe they just suck at testing memory or didn't bother to. On the other hand, I have seen a number of complaints online about Fry's and other big retailers engaging in this practice. (e.g., Google for "Fry's restock")

Either way, whether it's deceptive practices or just plain incompetence, I'm afraid this hasn't left a particularly good taste in my mouth about Fry's, and I'll probably just try to get a refund and buy the memory elsewhere. The only downside is that "elsewhere" more or less means "online", which means no instant gratification. However, since "instant gratification" in this case has been more like "instant non-gratification", I'm willing to live with that.

Jordi Mallach: London

I'm miraculously on my way back from London, after spending a week with daf, mvo and two guests, abel and thep, from Hong Kong and Thailand, working on improving some l10n aspects of the upcoming Ubuntu release, dapper. The most visible result of the stuff that we've been doing is that if all goes well, users of the Chinese, Japanese, Thai, Bengali, Lao or Korean languages will get their required input methods, fonts and dictionaries Just Working as soon as their drives spit their dapper install CDs. We've learned quite a bit about the state of many of the Asian languages in the Free Software world today. Daf and I can certainly tell when an app renders Bengali or Thai correctly and when it doesn't, after closely comparing how different browsers do the job on various websites and font test pages. We've learned more than we probably like about fontconfig, and thanks to mvo, there is now a mechanism to get custom fonts.conf snippets depending on the default language of the system set by language-selector, so users get the right fonts installed and used by default. Thep's and Abel's help to get this straight is invaluable. On Friday, daf and I went to the ExCel Novotel where the Launchpad team is having a sprint, in order to lend a hand with the dapper translation import that is going on right now, but for a series of reasons we ended up working on l10n sprint stuff. At least I got to see the team again, and specially kiko, who greeted me with a "Qu pasa, hijo de puta!" The real life side of this sprint has been less exciting than on other occasions, as due to being few in number and being quite tired, we haven't gone out of Earl's Court area until today. Still, our exploring around the hotel has yield some nice discoveries. On Sunday, mvo and I were looking for a place to have dinner, and stumbled uppon the Troubadour a place which can either be a pub, a restaurant, a social club or a theatre, depending on your mood. The food was excellent, and the staff was really friendly. I found a Dictionary of Slang in one of the book shelves, and learned a few funny phrases. Other days we've been to good Italian, Indian or Chinese restaurants, but we couldn't resist to go back to Trobadour again. On our last night, Mark took us to a place in the South Kesington area, with again was very good. Abel left just after dinner as his flight was at 5AM from Stansted, and we hope he made it OK to the Netherlands, as at 00:30 or so he phoned us and seemed to be pretty lost somewhere. mvo left early in the morning, so daf, thep and I went to visit some bits of the city. My plane was at 16:45GMT, and we calculated that I should be leaving the K&K at 15:00 to be well on track for my flight. We went to Monument to see the tower, went up and enjoyed both the great views over London and the Thames river, as well as the really cold wind which made me swear once again about the %*@!# lack of Spring in the UK. It was getting quite late for me, so we went to China Town for lunch. Despite the restaurant people being really quick, I only managed to leave the place at 14:50, but given my travel plan was pretty conservative, I was supposed to be safe still. Daf left me at the tube station entrance, and there I started my way too stressful journey back to Val ncia. If on our way to London Carlos and were quite close to find our flight closed, this time, I think I hit the limits. I really don't know how daf and I arrived to the conclusion that leaving Earl's Court at 15:20 was acceptable to get in Heathrow on time. I ran up and down the tube stations, grabbed by luggage, and rushed back to the station, but I had just missed a train to Heathrow and that made me lose some precious 10 minutes. As stations passed by, it became clearer that we had fucked up somewhere when deciding at what time I needed to leave. At 15:35 I was still in the Hammersmith station, with half of the Picadilly line ahead before arriving to the aiport. I sent a message to daf, so he started to get prepared about me staying to sleep somewhere in London. As soon as the train's doors opened, a number of people rushed out. Someone ahead of me fell when climbing the automatic staircase and I somehow managed to jump over him, with luggage and all. After a run that seemed like half an hour, I arrived at the Iberia desk and, panting, I could only articulate "Tarde para Val ncia?". The guy at the counter looked at me, and with a "this can't be true" expression in his face, he picked up a phone and asked "Is it already closed? [...] Can you open it for one more piece of luggage? Thanks." In the meanwhile, I had been busy removing a 500 ml yoghourt from my bag, fearing having all my clothes smelling like strawberry back in Val ncia. The guy handed me a boarding pass, and gave me instructions about the "Iberia Room" near my gate. I asked him what that was about, and he says "oh, of course, you're in Business Class". For a second, I was reminded of stargirl's tricks to get free upgrades when flying, and immediately I was reminded that I was still in a hurry, and I should rush to my gate. And so I did, forgetting to thank the guy for being so kind. I left my yoghourt there though, so at least he could get some food if he was hungry. The long line before the security check was exasperating, and when I finally went past it, I had to run all over terminal two to my gate, where everyone appeared to be waiting just for me. The doors closed as soon as I entered the aircraft, and I sat in the first row, got a free newspaper and a free meal. I couldn't believe my luck. As I write this, we've gone over the Pyrenees, which are not as snowy as a month ago, but they still look beautiful from up here. I'm glad to be back in Val ncia.

Martin F. Krafft: Yes, but...

Mako, I see and agree with your point. I guess I failed to make mine: Planet is not what I would call "public discourse", or is it? Instead, I think it is often used as a platform to be heard without the risk of someone arguing against one's point (on purpose or not, and I am not trying to plead not guilty here). I find abbreviated summaries with clearly biased views -- humorous, sarcastic, or otherwise subjective -- disturbing because I believe that they will have some subtle influence on the decisions cast by those who don't have the time to completely make up their own mind for lack of time to follow all the discussion leading up to the debate. That was all. By all means, I like Debian in (large) part because of the public discourse.

18 March 2006

Wouter Verhelst: Explaining Debian

Josh, I don't find such situations at all awkward. If people see me running around with a Debian T-Shirt and ask what that is all about, my answer is just Debian is a free operating system for your computer that is made by a couple of thousand volunteers worldwide, of which I am one. That is enough to quickly explain the thing; if they're further interested, they'l ask. Occasionally, people wonder what an Operating System is. I answer that with You have a computer? Does it run Windows? Well, then Windows is your Operating System. If you would want that, you could replace it with Debian. The point in such conversations is to make it clear how Debian is relevant to the people you're talking to. Don't start by saying stuff like Debian is a Linux distribution made by volunteers; because then you oblige yourself to explaining what a distribution is, and what Linux has to do with everything. And about that Linux bit, I wouldn't worry too much. If the people you're talking to are business people, and they've never heard of Linux before, just get yourself a strange look on your face, and say something like you've never heard of Linux before?!? because frankly, if a business person in these days doesn't even have a vague clue as to what Linux is, they're not worth half their pay check.

Daniel Burrows: Windows stupidities

As I've had to use Windows on a daily basis, I've found that I am no longer able to maintain my air of detached tolerance for the foibles of the system. In fact, I'm starting to get really infuriated with the utter boneheadedness of so many facets of it. Not so much things that are broken, as things that are done badly, and done so in the face of widespread examples of how to do it right.

Here are two simple examples that are emblematic of what Windows users have to suffer through.

(a) Mandatory file locks.

On Windows, every access to a file, by default, acquires a mandatory lock on it. Want to recompile the program you're working on? Sorry, you have to track down and kill all its running instances. Want to read that file on the network server? Sorry, you'll have to run around the office and ask all the people using it to close it.

Last week I got an email asking me to unlock a directory on our local fileserver so it could be renamed. It turned out that I was running an acroread process to view a PDF file...and that locked the directory from being renamed. Because, of course, the universe would implode if someone were to rename a file I had already loaded into memory. This is, however, better than how shared libraries are treated; trying to register a new version of a shared library with the system (the Windows version of ldconfig) will silently fail if programs have the old version mapped into memory. WTF? No, really, WTF?

Windows users get around this by having tools to find out which processes have a file open so they can terminate them with extreme prejudice. This is considered normal and acceptable behavior for a computer in the Windows universe. After all, in the real world two people can't use the same document at once, so why should they be able to do so on a computer?

(b) C# events.

They've been invented many times. Signals, events, hooks, whatever you want to call them, they're collections of function objects that are invoked when some particular condition occurs. It's a great way to make it easy to connect together objects that don't know about each other, they're simple enough that your average CS sophomore could implement them in a half hour, and the concept is so obvious (besides having dozens of examples of working and deployed implementations) that there's no way to screw it up, right?

Wrong.

Now, C# is generally a somewhat clunky language, but this is nothing to do with that (I am not, for instance, surprised that it's cumbersome to bind extra parameters to an event in a language that has little support for higher-order programming anyway). No, this is one of those utter idiocies that just make you scratch your head and go what the *@&# were they on when they did that? You see, when you call an event with no attached listeners, C# throws an exception. Just, you know, as a friendly way of letting you know that you didn't connect to that event.

But wait! It gets better! In order to test whether the event has any connected delegates (the Microsoft term for a function object), you ... compare it to the null pointer. Yes, that's right. Every time you call an event, you have to do this:

if(Event != null)
    Event();


...because, of course, an empty collection of events is clearly the same thing as a nonexistant object.

I really wish I could be a fly on the wall at the meeting where this was decided. My imagination supplies a scene along these lines:


Scene: A smoke-free office somewhere deep in the sterile labyrinth of the Microsoft campus

Programmer 1: "...and we call this bold new innovation 'events'! It's a way for you to perform method calls without knowing which method you're calling. We've found that it's amazingly useful when doing UI programming. I'm sure that introducing this new idea to the world will be yet another chapter in the Microsoft story of advancing technology!"

Programmer 2: "Have you checked the corner cases? What happens if there is no method available to call?"

Programmer 1: "Oh, of course! In that case, the list of methods is null, so we throw a NullPointerException. We thought about adding an IsEmpty property, but who would want to look up properties on the null pointer? Besides, hardly anyone will ever want to create an event that might not get connected to."

Programmer 2: "Uhhh, sure, that makes sense to me."


...!!!?!?!?!

Daniel Burrows: So close, yet so far away...

So, thanks to Marc's helpful advice yesterday, I took another look at my power supply, and lo and behold, there was a second four-pin power cord that I hadn't seen!

Allow me to explain. In my previous post, I mentioned that I had been doing something "wrong" with the power cable. You see, the case we picked out (an Antec Sonata) has a 24-pin power cable of which 4 pins can detach for older systems. At first, I misread the manual and thought this was for newer systems, so I detached it and plugged it into the handy 4-pin plug next to the CPU. Doh. Having corrected that (without the extra 4 pins in the main plug, not even the fans turned on), I was under the further mistaken impression that the 4-pin plug on the motherboard was the backwards-compatibility plug. I did actually check for an extra 4-pin PSU connector, but I must have overlooked the one that existed.

In my defense, here's what the manual states about the power connector:


This motherboard provides two power connectors to connect ATX12V power supplier.

NOTE: This 24-pin power connector "ATXPWR1" is compliant to the former 20-pin type. Pay attention to the orientation when attaching the power cord. (Pin-11, 12, 23, and 24 should be left un-connected).

Note: It is recommended to connect to a power with 350W, 20A +5VDC capacity at least for heavily loaded system, and a 2A +5VSB capacity for supporting wake-up features.


Not exactly crystal-clear on what needs to be connected under what circumstances. The case manual is at least correct if you follow along carefully, and they even found someone who can speak the language. Unfortunately, this section is phrased in a way that's highly prone to misunderstandings, particularly if you have an incorrect idea lodged in your head to start with:

Connect the 24-pin Main Power Connector and the 4-pin +12V connector to your motherboard as needed. If your motherboard uses a 20-pin connector, detach the 4-pin attachment on the 24-pin power connector.


You have to read that quite closely to realize that there are two 4-pin connectors involved!


Anyway, so I can actually get the machine to post and boot. Unfortunately, it's highly unstable once it does boot. It runs for up to several minutes, but then exhibits various sorts of erratic behavior: freezing, spontaneous reboots, random error messages, that sort of thing. I've made sure all the cords are plugged in tightly and reseated a couple components (particularly the memory); about the only thing I haven't checked is the CPU+heatsink mess, which would be a real pain to disassemble and re-assemble.

Still, it's nice to make some progress. Maybe tomorrow I'll discover some other cable I forgot to plug in that will make everything work (hey, I can dream).

17 March 2006

Meike Reichle: Moving, again

Another move, another new address, another new phone number, another (snail) mail forwarding form, another city, another flat. Packing boxes and bags again ... I am once more on the move. (And slowly getting good at it ;)) This is my last day in Leipzig. *sigh* My internship here is over. Can't say much on how the internship was, since I signed a whole pile of NDAs, but I guess I can say that is has been a very educational experience and I learned a lot. Leipzig itself is still awsome and I'll miss it badly! It is such a great place to live at and I hope I'll return here one day. But for now I am returning to Hildesheim to finish my studies and write my thesis. No idea yet what will come after that. A few vague plans, but nothing ripe for decision. So, no prognoses yet. Nothing endures but change ... :) I'll probably be offline for the next few days, since the phone/net connection isn't there yet. I'll occasionally check mail/irc at the uni but please allow for a little lag until I have settled in properly. For now, a last good bye from Leipzig. Be back soon.

Next.

Previous.