Posted by Daniel Lyons
Sat, 30 Oct 2004 11:05:56 GMT
Revision Control
Thud. To summarize and paraphrase, centralized revision control is better than decentralized because it’s easier to implement and understand, and because it creates and enforces provably better development practices.
I talked to Michael about the Co-op and it looks like everything is going to work out just fine. Tomorrow, when Subversion 1.1 is actually finally installed, I’m going to set up a WebDAV repository using mod_auth_pam for access control and make it all happen. I’ve selected FSFS because BDB sucks major ass, causes locking problem, consistency, and permission problems and seems widely loathed. I’ve selected WebDAV because, even though it is slower and more complex, it will permit more interesting authentication scenarios. I’ve selected mod_auth_pam because, the password going over the network is less of a problem if it’s encrypted and I’d rather not have to maintain several separate password databases if one will do. I’ve selected subversion, because we happen to have a handy centralized server, and because Arch is a pain in the ass and I don’t imagine Monotone is less of one since we’d have to come up with our own way of exchanging the changesets. Plus, BitKeeper probably is better than all the others so we might as well use the best, most sophisticated centralized one, since centralized is better anyhow.
The Grudge
This is the best horror movie ever. Go see it.
Mastodon – Leviathan
This is a really, really good metal CD. I heartily recommend it.
Today
It rocked. I’m tired. See you assholes tomorrow.
no comments | no trackbacks
Posted by Daniel Lyons
Wed, 27 Oct 2004 06:13:26 GMT
A short recap of 49’ers: it was awesome, thanks to everyone I got to see. I had an awesome time and it took me a day to recover. :)
Baird caught me for just a few minutes and we talked about revision control, blogging and DocBook. I told him about my recent troubles and he found for me something called dblatex which apparently lets you deal with DocBook from LaTeX. Then I found out on my own about this thing called ConTeXt, which is a completely different macro package from LaTeX with a different design, but attempting to do many of the same things. I intend to look at it in more detail and see if I like it but it doesn’t look as though there is anything like the LaTeX books for it (yet).
ConTeXt is nice looking for at least a few reasons:
- It has an XML processor built-in, so if you want, you can just define macros for elements and so forth and process your XML directly
- It looks cleaner and more flexible than LaTeX
- It doesn’t break anything in TeX to make it happen (not that I really cared before)
All of the example shit I see made in it looks really elaborate and pretty, especially compared to LaTeX. On the other hand, there isn’t much written about it. I may consider it for my book, or DocBook using it to create the printed version.
Baird wanted to talk about revision control. I basically go with Subversion now, not because Arch and Monotone aren’t cool, but because I’m actually lazy and I find Arch non-aesthetically pleasing. I really should check out Monotone. If anyone has, and has something good to say about it, they should tell me about it, particularly if they’ve used the other two as well. CVS is just nasty.
Anyone who likes metal or opera or awesomeness should go listen to the new Nightwish album “Once.” It rocks pretty hard.
I really should put up a page with projects I aim to work on someday.
no comments | no trackbacks
Posted by Daniel Lyons
Fri, 22 Oct 2004 05:32:18 GMT
Dammit, right after my Mac comes back, the monitor on my box starts going again. Now I’ve got dark horizontal lines wherever something dark is. I’m ready to slay Sylvania, this is the second time this monitor has died on me in three years.
So, here I am thinking about what a fucking disaster networked filesystems are currently, when I get this weird idea.
You see, I just tried to install Coda on FreeBSD. There is apparently a kernel module for Coda, though I’m not sure what version. Coda version 6 builds and installs on FreeBSD, both client and server. Setting it up is such a nightmare, they’ve included a helpful script to get you going with it. You discover during this set up that it wants partitions to hold log files and “RVM” data, that it hates changing any of these configuration parameters after being installed, that it needs about 6 servers to be running, and that it’s very picky about the values in the configuration file. So fuck it.
Then I thought, all I really care about is that people be able to get at certain files in a securely authenticated, encrypted tunnel kind of way. I’d like it to look like it’s in the local filesystem, but I can’t actually say that I care. So maybe what I really want is Subversion. That way, the nimrods get access to the files, they don’t get to write unless I want them to, plus we have all this handy-dandy distribution. I could rig some sort of replication into it, too, have some other damn server just pull the changes every few hours and set up failover to it.
So the question is, can Subversion be the next distributed filesystem? Is it possible that all I really want is some way of “mounting” a Subversion server locally and then notifying the remote server a la COMMIT and ROLLBACK from a database?
It looks like others have had this thought too but nothing seems to have come of it. Plus I don’t really want it backending into shitty WebDAV or messy Coda, if it could backend into (say) FTP or NFS.
This of course brings us up to the state-of-the-art of VMS in the mid-70’s, with a correctly versioning filesystem. Except not, because the transaction concept is still manual. I’d like to be able to copy a file, make a bunch of changes to it (saving between each one) and then say “actually, roll those uncommented commits into a single commented commit with this text.” Of course, the system would preserve the original transactions, but would by default show me the named ones for convenience. Or something.
I think this bears scrutiny. Kerberos is based on the concept of having a single auth server and then a bunch of app servers, with the user being at home on their own box. It doesn’t really fit with this model to have this huge monolithic file service running on a shit-ton of iron in the back room just to serve me my Nethack high scores, not when I could just check out the stuff I intend to modify, work on it, commit it, and then have a transactional, fully versioned FS on top of it. I mean, consider it—99% of the time, when I access a file on the networked server, it’s either some fucking binary, or something that’s just mine. In the cases where it’s some fucking binary, we might as well use goddamn NFS, or just have fucking copies and use rsync to update ‘em. For that matter, if speed were to become an issue with the initial checkout, use rsync to make every client a peer for it’s own files, and then when the original server comes back, synchronize. The beauty of Subversion is all the mystical merging it can do anyway, right?
So what do we wind up needing? Some sort of hierarchical failover for Subversion, and a few scripts to checkout and checkin on login and logout. Kerberos support for Subversion, but we could just as well use subversion over SSH, and have Kerberos auth it to that.
What do yall think?
1 comment | no trackbacks
Posted by Daniel Lyons
Thu, 21 Oct 2004 05:52:47 GMT
The laptop came back yesterday. That was 5 days (over a weekend, no less) out of an anticipated 14-21 days. Go Apple! Next time I’m definitely getting the fucking AppleCare.
I’ve got Kerberos working at home, not quite sure why the fuck I care because it’s not exactly going over the network. I guess it was partly because I want to be using AFS or something similar to it for Project SOULTRAIN. There isn’t much to be done about the fact that files need to be shared, and though I’m happy to implement all of the meta crap in Lisp and Prolog, I just don’t feel like implementing a distributed filesystem in it.
Since my blog tends to have lots of lists, here’s me knocking down all the network filesystems out there:
- AFS or Andrew FileSystem if you feel like being ancient. Works great… assuming you only need a client (ARLA). If you need a server, you get to use OpenAFS, which currently works with OpenBSD, AIX, Windows XP and Linux. Doesn’t that seem like a strange list of supported platforms? Apparently FreeBSD isn’t supported. The reason seems to be, because OpenAFS keeps track of what FS nodes are its, as does FreeBSD, and unless these two mechanisms are identical, you’ll have catastrophic data loss. Everyone using OpenAFS should pay attention to those words: catastrophic data loss. Your NFS is looking at the disk directly going, “Hmm, can I steal that node from the OS without it noticing?”
- GFS, oh wait, that only works on Linux. My bad. (It was ported to Linux from IRIX! You’d think they’d have thought to include a little portability!)
- Coda, which was intended to be sort-of next generation AFS at one point. It had looked abandoned for some time but lately they’re making new releases—though they haven’t had a binary for FreeBSD in 1 major and 8-some-odd minor releases. I’m downloading it now, here’s hoping it at least compiles before shitting all over me, but I don’t see any talk about it or FreeBSD in the past several years, which isn’t a good sign.
- Lustre, oh wait, that only works on Linux. You sense a pattern happening here?
- InterMezzo looks good, but they don’t mention platform support so I’m guessing it’s also… you get the picture. I’ll give it a shot later on though.
Apparently, the concept of a portable, distributed/cluster/network filesystem is just a far-off dream. You can have portable, or you can have distributed/cluster/network filesystem. Oh wait, I just realized, I forgot NFS4, which is like NFS but without the locking issues, with Kerberos authorization, with failover and volume management, and without a single open source implementation. :-P Someone needs to get out there and implement this in a way that’s secure, that scales, that doesn’t suck and maybe works on all free and a few commercial UNIXes. This can’t be that hard.
Some fuck is going to reply saying “Why don’t you just run Linux?” Well, the point isn’t that I hate Linux or won’t use it again. In fact, today I found out at work that I’m going to be in charge of a new hosted server, probably from 1and1, and you just know I’m putting Gentoo on that mofo. The point is, when I have a computer in the back room running some-fuck-platform, and a Mac, and this ancient cube POS I just adore running OS-du-jour, I’m going to want to be getting at my files from any of ‘em. I’m not installing Linux on my Mac to get at my music. So, it’s got to be cross platform. Which means, in all probability, it’s got to be NFS, or Samba, or Netatalk, or some other ridiculous thing that is meant to work (poorly) anywhere.
Code Note: The ./configure didn’t work, but according to README.BSD, I’ve already got Coda in the kernel. Which would be a great alternative to all this sucking, now it’s just a matter of making it work with Kerberos and, I dunno, building the fucking server.
On the job, today I wrote my secondish threaded program. It was a complete disaster, and I don’t think it was my fault (though I’m not sure I can prove it). Basically, I was creating 50ish threads to do DNS resolutions and write them to the database. With a timeout of 5 seconds, we should have seen them all retire within 5 seconds. Instead, they were all retiring for the first time in ~4 minutes, which is consistent with multiplying the numbers together. In short, what I’m afraid may have happened is this: App creates a thread 1, which creates threads 2 through 51. Thread 2, upon waking, resolves some server, resulting in an OS-level block. If the threads were implemented as user-threads, in other words with RB cooperatively tasking all of my Threads in the one “real” OS thread, then I would see this behavior, and the linear behavior we see. If the threads were implemented as OS threads (the right way, we’ll call it) then we should have seen no lag, non-deterministic responses, and it would have been fast.
Well, what we did see was random in a deterministic way. What I mean is, it would do 3, then 10, then 13, then 14, then 15, then 21 etc. The second time around, it would do 3, 10, 13, 14, 15, 21. Not linear, definitely deterministic, but not… correct. Furthermore, it would always go down the list, wrapping once it hit 50 or so.
This smells like shitty threads to me, not really my fault. Tomorrow I’m rewriting it to work with a Ruby script executing 50 of these in parallel. I think I can do this with something gross like this (in sh-like pseudocode, for those not fluent in Ruby):
function next_id() { ... }
function more_ids() { ... }
# start the initial 50
for i in $((seq 50)); do
looker-upper next_id &
done
# start another process everytime one of the 50 dies, until we run out
while more_ids && wait; do
looker-upper next_id
done
# cleanup; wait for our kids to die, or else we'd just slay 'em
# and nobody wants that in software
# (49 because one of 'em already died to get us here, or else I'm thinking
# too hard)
for i in $((seq 49)); do
wait
done
So, yeah, I’m pretty much basically just offended. Fuck.
In better news, I’m looking forward to 49’ers. I’ll probably get drafted to carry or something, which I’ll do a little bit of in a half-assed way, then realize I’m not even a student and fuck it. Should be fun, I haven’t seen any of my friends in the flesh in months. It will be good to get away from the computer for a little while, and go fix Harry’s. :)
no comments | no trackbacks
Posted by Daniel Lyons
Fri, 15 Oct 2004 06:45:03 GMT
Today I took Alex to the doctor. We basically got all of her medical problems dealt with in one day, in about 2 hours, for which I’m completely amazed. So we have prescriptions for Zoloft and her thyroid medicine, and we also dealt with the whole birth control issue. Fortunately, her prescriptions are pretty cheap, and there’s some kind of program where the pharmaceutical companies will pay for your medicine in certain circumstances, and we’re going to try and get in on that action.
When we were getting the prescription filled, I notice an awesome clock in the pharmacy part of Nambe Drugs: instead of numbers for the hours, it had alchemical symbols! Plus, it was this nasty yellow color that made it look at least 40 years old (though I really have no idea). I think next time I go in there I’m going to ask ‘em where they got it or offer to buy it or something.
As for FreeBSD, I must say, I am liking it better than Linux right now. I’m not sure why although it seems to be more stable and solid. Plus, there’s the whole fewer G’s angle. I don’t have to put a “g” in front of every command I type. That’s gotta count for something.
I’m running 6.0-CURRENT, which means basically bleeding edge “don’t use it unless you’re a developer for FreeBSD, it’ll suck, we warned you!” It’s pretty damn slow right now, but I’m making a new kernel for it as I write this, and apparently I had all the debugging conceivable turned on: spinlock debugging, debug mode, debug symbols, built in debugger, etc. So it’s not very snappy yet but it also doesn’t seem as prone to wacky failures like missed mouse clicks or weirdness. I also once again seem to have found a configuration for my monitor in which it fucks up less, here’s hoping tomorrow it still is behaving well.
That’s about it.
no comments | no trackbacks
Posted by Daniel Lyons
Thu, 14 Oct 2004 06:50:00 GMT
So, Bill has now explained that his situation is basically what mine was with Nikki and Kim; he can “date” Erin and still be with Talia. So I guess I have to eat my words again. :-P Fuck you Bill, for making me eat my words. You just can’t win.
I discovered today that KDE isn’t as good as I remember. I’m using 3.3, the newest version. Having basically been using nothing but a Mac for the past six months or so, this sucks. Every app has it’s own weird quirks, there is no UI cohesion, a complete lack of polish. I got Harry to use Firefox, because it’s really good, and he was asking me tonight if he needed to put a disk in to save something, because Firefox says “Save to Disk?” instead of, well, “Save.” I tried to drag an icon off the task bar to get rid of it, and it was like “you want to make a link on the desktop?” The most annoying has been telling Alex how she changes to her login: you hold down control, alt and F10, but they have to be left control and left alt. On the Mac, you go to the upper right corner with the mouse and pick your name
This is annoying me even more, because these little touches are easy to program—trivial, compared to (I don’t know) the browser they’re sitting in. The X-windows switching thing wouldn’t be very hard either, but we don’t implement it. Why not?
I think we aren’t doing it for several reasons:
- We don’t want to copy Mac because it sticks out. If we copy Windows, everyone takes it for granted, and we aren’t seen as cloning anything.
- The nice thing about copying Windows is that if you completely blow it, nobody notices, because there isn’t any consistency in Windows either.
- UI polishing is annoying to write and has less glory in it than networking godhood or security or whatever.
So I’m looking at needing a new computer, potentially very soon but hopefully not for a while, and I’m thinking “Gee, I could build me a sexy mini-ITX form factor computer for like $1000 or spend $3000 on a Mac desktop or notebook.” But I’m starting to see that when you buy a Mac, you aren’t getting “a computer.” You’re getting a computer with no heartache and no headaches, in which actual thought has gone into just about every step of the process. I’m a professional programmer, I have no difficulty using pure Unix. It’s just such a hassle for day-to-day life. Isn’t that why we have these personal computers anyway?
Today there was rain and snow. I hoped it would calm down these fucking Españolan fucksack drivers, but no, they’re quite happy to go 15 over the limit through puddles of water in fog with zero visibility. And you know, I can understand driving that way—to get out of Española, but not to get into Española. How can you be in such a hurry, you don’t care if you survive to get where you’re going? At least in Albuquerque and Socorro, people go ~5 miles over the limit. Up here, people go ~15-20 miles over the limit. Frankly, it’s frightening and exasperating.
So now I’m installing some new fonts so that I can look at my screen and not have my eyes bleed. It looks like it’s going to take a while.
I’m not sure if I mentioned it already or not but the laptop’s logic board is fried. This is considered a known issue, Apple’s sending the box overnight, we should get it tomorrow. We put the computer in the box, get it back in three weeks with the board fixed. I’m glad I don’t have to pay for it, but otherwise, I’m pretty let down about the whole thing. I guess that’s life. Even Apple makes shit from time to time.
1 comment | no trackbacks
Posted by Daniel Lyons
Tue, 12 Oct 2004 03:23:35 GMT
Allan’s back. He’s being tight-lipped about why he went to Austin.
Bill apparently lost the clue he had briefly regained. He’s now officially going out with Erin. Bill, I think I speak for everyone sane when I say: you’re pathetic.
Netflix
Alex and I have been Netflix subscribers for about 3 weeks now, and we decided to upgrade to the 5-at-a-time plan. This apparently made our next set of movies a day early—they’re coming on Friday rather than Saturday. I hope that keeps up.
The Weather
I’ve been meaning to mention this for some time. The weather around here has been fantastic for the past week. There have been interesting, bizarre cloud formations for the past week. Last Monday, there was fog in the morning, and there was that bit of hail that was really only felt in Socorro. It’s been dreary and rainy. Truly beautiful, makes me think of far-off lands where moisture is common, maybe even under-appreciated.
Eric says we’re undergoing a climatological change due to global warming and so forth. He could be right. This is definitely the wettest year I can remember, and no matter what those fucksacks on TV say, NM hasn’t been in a drought these past N years—NM is a fucking desert. And now, it’s moist.
How strange.
no comments | no trackbacks
Posted by Daniel Lyons
Mon, 11 Oct 2004 05:21:02 GMT
This movie gets the big raised eyebrow.
The plot concerns an extended Japanese family who run a small bed & breakfast on the unpopulous side of Mount Fuji. They apparently purchased it run-down, and fixed it up. As the movie opens, they still haven’t had any guests. Under strange circumstances, they have five sets of guests over the course of the movie, of which three sets perish—not killed by the Katakuri’s. To save the guest house, they decide each time to bury the bodies down by the lake, as it would be fiscal suicide for their first guest to die under strange circumstances.
The film uses a variety of techniques that seem cribbed more-or-less outright from Peter Jackson: claymation, disgusting food scenes, and strange musical interludes. Indeed, there were at least four moments when suddenly, the movie presents you with musical theatrics replete with singing, dancing, and (in one case) a sing-a-long.
If you like strange movies, you should check it out. I’m not sure what I think of it.
2 comments | no trackbacks
Posted by Daniel Lyons
Mon, 11 Oct 2004 05:08:51 GMT
We actually watched this movie last week. It was in the horror genre on Netflix, but Alex and I agree that it really wasn’t scary. The only other genre it might belong in would be mythology, if that were a film genre.
The film is set up as four short ghost stories. The first was predictable, the last was sort of a directionless Lovecraft rip with too much silly combat. However, the middle two make it one of the better Japanese movies I’ve seen lately. The second story concerned The Snow Maiden, and was both effectively creepy and romantic. “It was beautiful, that’s what it was” says Alex. The third story was an excellent restless spirit tale.
The movie overall gets recommended for the excellent sets, colors, tone and mood. I intend to own it someday, because it was captivating and immersive in a way that few movies are. I’d give it 4 stars. Alex wasn’t all that impressed however.
no comments | no trackbacks
Posted by Daniel Lyons
Mon, 11 Oct 2004 04:37:53 GMT
Apparently, Allan went outside for a breath of fresh air, decided there wasn’t enough air in Socorro, and went to Texas.
I patiently await the full story.
no comments | no trackbacks