Apr. 24th, 2007
I'm mainly dropping this somewhere so other people can find it, I recently did a kernel update and when I rebooted I got:
mkrootdev expected fs options mount: missing mount point setuproot: moving /dev/failed no such file or directory setuproot: error mounting /proc setuproot: error mounting /sys switchroot: mount failed No such file or directory kernel panic
...it turns out this was because I'd somehow got two / entries in /etc/fstab, as I found from this posting. The only thing you need to be aware of is that you also have a copy of /etc/fstab in the initrd, so after fixing /etc/fstab you'll want to re-run the postinstall scriptlet (rpm -q --scripts kernel), Ie. /sbin/new-kernel-pkg --package kernel --mkinitrd --depmod --install <kernel version>
Nov. 14th, 2006
10:01 pm - lighttpd's "AIO sendfile"
I keep track of a couple of the other web servers out there, even though I don't think much of them ... for various reasons. But when I saw that lighttpd was advertising AIO sendfile for their 1.5.x I was pretty impressed, while I hadn't been following it closely I didn't think the Linux AIO sendfile code had gone in yet (I'd been planning on trying to use the splice() API with IO helpers to do the same thing ... but I keep not getting around to it).
Alas. looking deeper into it, the release note is very misleading. They are actually doing AIO reads into allocated memory, and then using non-AIO sendfile() on the fd associated with the memory. Of course, this means:
- It copies the entire file into memory (in sections of half a MB).
- It requires copying an entire file section before anything is sent.
- There is no sharing! So if you have 10,000 connections requesting the same 2MB file you get 5GB of memory used.
- The real page cache readahead is going to have to be that much more intelligent to do the right thing.
- There is no guarantee that the memory isn't swapped! So you can still have all the blocking artifacts of normal non-AIO sendfile().
...basically this is a lot of work to reimplement the page cache, badly.
I also seriously question whether the same "improvement" could have been got by just over allocating on the process to CPU mapping (something that I understand lighttpd can do as well as and-httpd). It also implies that posix_fadvise() should be doing more work (it is supposed to solve this exact problem), but maybe sprinkling explicit readhead() calls would also work around the problem (without screwing everyone else on the box).
Also why lighttpd uses sendfile() instead of just write() for the last piece, I'm not sure ... it's like doing a mmap() and then calling sendfile() on the mmap'd fd.
Oct. 21st, 2006
As you might guess, it's still JS only and they almost seem proud of it. Like they get more Web-2.0 juice or something. Hello 1995 called to let you know links are possible without JS. They even have "buttons" that you can attach to your site, so people can vote up/down your content easily ... but the "button" is just a script tag. Yeh, so not only do I apparently want to leave all my non-JS enabled agents out in the cold ... I want to actively mix-in JS from a third party? It's like the blind being led by the retards.
I could almost understand, the "JS is almost everywhere" so we'll just ignore everyone who wants security/stability/speed kind of argument for reddit.com ... if the rest of their usage of HTTP/HTML didn't seem like it was written by a 13yr old. For instance http://reddit.com/static/reddit.js is their "main" blob of imported JS functions. Now, given it says static in the URL, you might imagine that this library code would be heavily optimized with all the latest HTTP bits possible (in fact I was surprised there wasn't a version/date in the URL). But no, there's no Expires/Cache-Control headers. At least it has an ETag and does Content-Encoding (although lighttpd is broken and ignores it for HEAD requests).
But, reddit.com is still somewhat easy to dismiss as crack smokin' 13yr olds who still need a few years to grow up. After all it's not a real business, and probably doesn't make worthwhile amounts of money. But, then, newegg.com does ... and there almost everything works without JS, the notable exception being actually doing the sale. Sure, let me look at stuff and even do searches with a secure browser ... but when I need to type in my credit card, that's the time to rely on JS to do 1998 style forms.
Unsurprisingly amazon.com, as the largest online retailer, have consistently had the best UI for non-JS user-agents. And even though tags, as their latest tweak, started off as JS only then moved to working perfectly without JS within a couple of weeks. But, I guess maybe it's got less 2.0 juice now.
Feb. 7th, 2006
10:46 pm - HTTP for desktop applications
So to continue the HTTP theme, Miguel's idea that desktop applications communicate via. HTTP seems completely insane. I can only presume Miguel was not involved at all in the Mono HTTP API implementations. As part of writing my webserver, I've already written about how terrible the HTTP spec. is ... hell apache-httpd blatantly ignores significant parts of it.( Read more...Collapse )
10:23 pm - Design by committee
Today Dan Winship wrote a wonderful mail about the perils of designing software by community process.
So, I have to wonder, does Nat/Dan/Miguel think that Apache-httpd is "bad"? My feeling is that it's a brilliant example of how committee designed software is terrible, hell the fact the config. parser let's each module parse it's own syntax seems like letting each gedit plugin have it's own GUI theme. And the way the module stuff is done reaks of "vision by committee", in that everyone just does their thing in their module so they don't have to speak to everyone else.
I also think this is somewhat interesting, as it also supports something I've believed for a long time ... Ie. design/security/quality isn't all it's espoused to be. It's nice, and everyone is happy to say so but very few are willing to pay for it (either with money, or even in time/work to move from something else). Compatability, speed and dancing monkeys all pay a greater roll.
And to bring the argument back to the desktop, I even feel the same way ... I don't care how much quality design they've put into GNOME, it's all (and more) canceled out when they break focus follows mouse or infinite space on my panel buttons.
Sep. 22nd, 2005
12:59 pm - And-httpd and security
Well after using, what is now, And-httpd personally for many months, I've finally released an official version, seperate from Vstr. I've also backed it up with a $500 "security guarantee", and I'm not sure if that's stupid or "insightful", I guess time will tell. There are scarily huge amount of web servers at freshmeat ... which makes me wonder why apache-httpd is still so popular, but I guess quality is different from quantity ... and most Linux distributions are reluctant to ship more than one of anything, and given you have to ship apache-httpd that kind of settles it. *sigh*.
Anyway, after releasing promises of money in return for security bugs (which I'm assuming I won't have to pay, but then I think professional poker players assume they'll win too) I'm going for a long weekend away from a computer. So don't feel too depsondent when I don't respond to messages that I'm stupid, and almost certainly $500 poorer :).
Jun. 30th, 2005
08:59 am - Dear religious nutjobs
Dear Religious Nutjobs,
"I contend that we are both atheists. I just believe in one fewer god than you do. When you understand why you dismiss all the other possible gods, you will understand why I dismiss yours." -- Stephen Roberts.
Aug. 30th, 2004
Well, I've finally done it. Vstr has 100% code coverage, even though bugs in GCC makes it say it's 3 lines off. It took a lot more time than I expected at the beginning and less time than I'd feared a few months ago. And it certainly found a bunch of bugs over and above just coverage testing for all the functions and flags.
I still imagine there's this huge bug that's so obvious and frequently used by everyone else, but just isn't triggered in any of the code paths I use. But, in practice, I know that if something goes wrong with code that uses Vstr, "it's not a bug in the library", which is nice.( Read more...Collapse )
Feb. 16th, 2004
This is a comment I've posted in reply to Dana Epp's weblog article about "auditing" and OSS. It's not perfect, but it's better than the original article and it's long enough to want to keep around somewhere...( Read more...Collapse )
Jan. 13th, 2004
11:40 pm - A rainbow of colours
Interesting look at how rainbows are generated.
Rainbow of colors. Rainbow of colours. Rainbow of colors. Rainbow of colours. Rainbow of colors. Rainbow of colours.