Log in

No account? Create an account
return toLJ(); - The Desian Universe
Links Home / GitHub January 2017
Tue, Dec. 28th, 2004 12:34 am
return toLJ();

[OK, sorry, the subject line is a really bad half-pun. ;P But it amuses me.]

I have a headache. But it's raining, and probably will be for the whole week. :D

I know I promised updates ... and then promptly disappeared for a week ... but see, there was this "Christmas" thing that sorta got in the way. So now I get to do a crapload of writing to get caught up again. heh.

>>> MetaFS

MetaFS is coming along quite nicely. I'm thinking of using that for my senior project instead of Dryice, because it's a bit smaller and more feasible.

I put out a 0.1 proof-of-concept release last week, and so far a grand total of 7 people have downloaded it. There are very few features in it, though, so I'm not particularly concerned. I have quite a lot of work to do before it will be remotely useful. However, that work is much easier to design and break up into pieces, which means it will take less time and has a higher probability of, well, working.

I'm basing it off of FUSE, which is a way to implement filesystems in userspace (instead of having to write a kernel module). I have a love-hate relationship with FUSE ... I love FUSE because it makes MetaFS possible (by hooking into the Linux VFS, I can handle every single change/access that occurs in a MetaFS mount), but I hate it because its client library is overly simplistic and downright stupid in some cases. The author of FUSE made some really annoying design decisions that cause problems in certain odd situations (e.g. when a file that is still open is unlink()ed). This makes typical FUSE filesystems totally unusable for storing home directories for KDE users (because KDE apparently does this in its startup process a fair amount).

I haven't tried talking to the FUSE author about this (yet), but it's really a design issue. I also don't like the way he handles directories (this can be worked around, but still ...). So chances are I will probably end up writing my own FUSE client library in C++. I am trying to design MetaFS to take this into consideration, but I don't really know what the new client library will look like, so I'm having trouble with this. We'll see ...

>>> Various Boy/Girl Encounters

I forgot to write about these before, so I'll do so now, because they are worthy of being recorded. ;P

First: On my way up to the bay area (what, two weeks ago now), there was a car full of girls in the right lane on the freeway in Paso Robles. As I passed them, they all started screaming and waving at me. For some reason this greatly amuses me. ;P

Second: My brother and I were christmas shopping at the mall, and we went into this one video store (Suncoast, if you must know). You could just tell that one of the people working there was ... y'know. ;) This boy had dyed blonde hair, earrings, rainbow belt, rainbow elastic bracelet thingy ... yeah. My little brother was looking at Star Trek DVDs, so we were sitting on the floor near the cash registers [I almost typed "cache register", ha], and I was staring at the Suncoast boy and generally making him uncomfortable the whole time. So much so that he came over once and asked if we needed help, and I was just like "No, we're fine ..." and he wandered off.

Third: My grandma and I had gone to the hardware store to pick up some things for her house (since she doesn't drive, I had to take her). As we were walking back to the car, this guy comes out of the store who might've been gay, but you couldn't really tell ... (he had earrings, anyway). He walks out the sliding door, catches sight of me, comes to a complete stop, stares at me and says "...Hi" in that "omg I'm like nervous" tone of voice. I just murmur "Hello" quietly back, and he resumes walking -- right in front of my grandma's cart, with which he almost collides. The amusing thing about this is, my grandma was talking to me the whole time, totally oblivious to the fact that I was making eye contact with a cute-ish boy and that he nearly ran into her cart ... *giggles*

These things amuse me. I think it's my hair. No, really ... since I started growing it out, people have been staring at me. ;P

So, now we're updated to just-before-christmas ... then tomorrow we'll see if I can cover some of Christmas itself. Probably in multiple posts.

-- Des

Current Mood: flirty flirty
Current Music: the rain


Ryan Joseph
Tue, Dec. 28th, 2004 10:39 am (UTC)

You might want to think about just dropping FUSE altogether, grabbing one of the kernel books and trying to implement the whole thing in kernel space. It's not really all that difficult (well, if you are a programmer with some actual skill, and you definitely fall into that category) and I just get the feeling that FUSE only creates one more layer of problems and slow-downs for you to deal with. I honestly don't really know jack shit about FUSE save for what you've said here and a few blurbs I've read around the net, but it just seems to me that trying to implement an actual, usable file system in user space has "bad idea" written all over it. As always, my $0.02, hope you had (are having) a great holiday!

Tue, Dec. 28th, 2004 07:07 pm (UTC)

heh ... no, a lot of it really needs to be done in userspace. People need to be able to write plugins for it (e.g. for things like indexing MP3/Ogg tags), and it has to do a lot of indexing and searching (including parsing queries, etc). Most of that is better done in userspace, because (a) it makes plugins easier to write, and (b) it means people who write plugins can use whatever libraries they need (e.g. BerkeleyDB or SQLite for storing/querying indexes).

I agree, though, there are a huge number of potential issues with a filesystem in userspace (performance-related issues, what happens if the daemon crashes, that sort of thing) ... but I think at least most of those can be worked around. Performance-wise, for instance, FUSE supports multithreading (thus allowing more than one operation at a time on the filesystem). The kernel module handles crashes relatively gracefully (returns an error instead of hanging or anything like that), although a crash still means you lose access to everything in MetaFS until you unmount/remount it.

You should never lose any real file data from a crash though (because it's all stored on a "real" filesystem). The worst that could happen is your indexes getting out of sync (in which case you rebuild them with something like ls -lR in your MetaFS root), or losing some extended attributes.

But thanks for the input, hope your holidays went well. :)

ReplyThread Parent
Elocin Oco
Tue, Dec. 28th, 2004 03:58 pm (UTC)

YAY! Des updates! I missed seeing you around, babe. Sorry I've been AWOL on chat, but sheesh, life has been so hectic! I came on last night, but you had an away message up, so I didn't buzz in. Maybe I'll catch you soon! Now, about Christmas??? You will share, now. *Waves hand subtly, using the Force*

Tue, Dec. 28th, 2004 07:17 pm (UTC)

Maybe I'll catch you soon! Now, about Christmas??? You will share, now. *Waves hand subtly, using the Force*

Can I at least take my shower first? ;P

ReplyThread Parent
Elocin Oco
Tue, Dec. 28th, 2004 07:51 pm (UTC)

Do I have a choice? I know! I could just join you in the shower and you could tell me all about your holiday! Or not....raaaaaaawr.

ReplyThread Parent
Tue, Dec. 28th, 2004 10:12 pm (UTC)

I think you should shower and update ... simultaneously ... via PhonePost ... and I think elocinoco will back me up on this. Right right? =p

ReplyThread Parent
Kevin Kress
Wed, Dec. 29th, 2004 12:47 am (UTC)

Long haired Des? How come we haven't seen pix?

Wed, Dec. 29th, 2004 02:16 am (UTC)

It's only marginally longer. I'm thinking I want to grow it out to my shoulders, but we'll see ... it's just an ongoing experiment right now. ;P Anyway, you'll see it in person soon enough. :)

ReplyThread Parent