Archive for January, 2008
So I got around to tinkering with my new HDDs yesterday Setting up netboot for like the 9000th time was fun; it’s interesting to see how many mistakes and inaccuracies are in that old post of mine. I should update it one of these days…
So after much tinkering, it looks like everything is working, for the most part: the new IDE controller supports 48-bit LBA, so I can write to the entire disk. At least, it hasn’t crashed yet, and I’ve been dumping my entire (local) anime collection to it. Given that I’ve got a 10bT internal subnet set up, it’ll be awhile before enough shit’s dumped that I’ll be completely confident that it’s correct.
When I said “everything is working”, I was lying a little bit. One of the brand new 500GB Seagate drives is a squeaker. A loud squeaker. I’m going to declare it “DEAD” and send it back for a replacement (look forward to upcoming posts on dealing with such a case!), because my god. There’s no way in hell I can trust such a broken-sounding drive.
The other problem is that fsck_ufs still breaks the thing. Well, it doesn’t lock up the entire machine anymore, it just locks up it’s own process during the biord state. Which kinda makes sense, since the machine is netbooted, it doesn’t need to touch the drive like ever.
Now, I did some light digging and biord is just a random undocumented part in the code where the process enters a sleep state. You’re supposed to be able to find it by grep‘ing the source tree, but I haven’t gotten around to doing that.
The thing is, biord looks suspiciously close to “BIOS Read”, like, dumping a part of the disk from the BIOS. Which, if this is the case, is why the damn thing is locking up the drive: the BIOS doesn’t support 48-bit LBA, despite the IDE controller supporting it. Going to take some more investigation, but I wouldn’t be surprised if this is the case. I mean, how many other people are running huge drives on ancient hacked together hardware?
From my experiences with it thus far, I doubt there are many others. For good reason. lol ;P
So all my shit finally came in, etc, and I haven’t tested it all out yet because I’ve been blowing off my schoolwork for the past week or so and am finally trying (barely) to catch up. Instead I find myself browsing the internets and making images like the left, “Konaharuseki”. Sad.
I did get around to trying out my new Q6600 machine. I slapped the 20->24 pin PSU converter in it and booted it up, worked fine, etc. I was in the middle of installing windows on it however (now I have two problems etc) when the installer froze up. So I powered down the machine, swapped out random things, and at the the very least the PSU is dead – it won’t power on another board I had laying around (which powers up with another PSU with a lower rating).
Really fucking annoying, I hope the fucking PSU didn’t take anything else with it. I have a feeling it’s just old and burned out and isn’t able to supply enough juice to the CPU (which is, in itself, dangerous). I dunno.
Going to (hopefully) get around to testing the new IDE controller I have which I have plugged into a 64-bit PCI riser card (new!) which also needs to be tested. Hopefully this fucker supports 48-bit LBA which I’ll need to run the TB of storage space off the machine.
Testing basically entails setting up a netboot environment, which should be a cakewalk since I’ve done it like three times already. The only catch this time is that the host machine only has a 4GB HDD (lol tiny cheap old SCSI drives), so I’m gonna see how far down I can crunch the fuckers so that they’re all basically sharing the same core filesystem :D
So I just got back from a “watch girls wrestle half-naked in a pool filled with jello” party, and it was fairly entertaining. Got to see tits, grabbing, etc while drinking free (as in free beer) beer and enjoying the company.
Anyway, now that I got that bit of bragging off my shoulders. As I was walking home I was thinking about Dennou Coil (since I’m modelling my Erlang MUD’s world around it, a bit). The best parts of Dennou Coil revolve around fight scenes, where the characters battle each other (and the constructs in the system) with programs manifested within objects. These programs are forged from items called “metabugs”, which aren’t really explained well, but are rare and sought-after glitches which occur in the digital space.
The thing is, the characters need metabugs to produce the programs they use (really, they barter with other people who can use the metabugs and refine them into things). This was always a bit curious to me, since a program is just data. And data can easily be replicated, so why can’t they just make a couple copies of that powerful metatag they only have 2 more of?
Well, durr, security. They’re interacting with a large system, and any such a system is going to have restrictions on what kind of code it’s going to execute, so some random user can’t just execute any arbitrary code. I mean, stuff like this is already done today, shadow memory and shit where you pad all the data in the machine with extra attribute bits to mark executability or taint or whatever the hell you want.
And then you introduce the Imago and encodings and it fucks up my entire hypothesis, lol.
But I was thinking, if I were to build this MUD, I’d have to have a fairly good idea of how everything “works” in the make-believe system, so that it all makes sense and shit. I think you’d be able to collect metabugs, but each bug actually is represented as a block of data. The actual data is essentially random (garbage data), and as garbage data is affected by the environment which spawned it.
The characteristics of the metabug would be gleaned from the value of the garbage data; things like color, shape, size, images and sounds perceived within, etc, in addition to what you could turn it into would all be dependent on this data, such that you can just supply any random string of garbage data and it would always describe a unique metabug.
Essentially procedural metabugs.
This, of course, has all the drawbacks of procedural generation: there’s a good chance it could generate dull, boring and expansive possibilities. Which isn’t good.
I dunno. Need to think moar I guess.
If you remember back, an assignment I’m working on is to implement a topological sort in 5 specific languages (no external libraries etc). My Python version turned out to be a mild functional brainfuck (it could have been made a lot worse, I’ve seen what some madmen can do).
I think I’ve managed to trump it with my work-in-progress C implementation though…
HAI BTW GET TEH INPUTS I HAS A TASKLIST IZ A BUCKET IM IN UR LOOP I HAS A TASK IZ GIMMEH YARN TASK, O RLY? YA RLY, GTFO OIC I HAS A DEP IZ GIMMEH YARN DEP, O RLY? YA RLY, GTFO OIC I HAS A THING IZ A BUCKET PUT TASK IN MAH THING PUT DEP IN MAH THING PUT THING IN MAH TASKLIST IM OUTTA UR LOOP BTW FLATTEN TEH INPUTS I HAS A DEPTREE IZ A BUCKET I HAS A BOOT IZ 0 BTW CAREFUL IZ NUMBAR IM IN UR LOOP UPPIN UR BOOT I HAS A SOCK IZ GIMMEH BOOT OUTTA TASKLIST BTW SOCK IZ A SUMTHIN ELSE BTW OUTTA TASKLIST RETURNS NUTHIN ELSE IN TEH SUMTHIN ELSE SOCK, O RLY? NO WAI, GTFO BTW YA RLY UNNEEDED OIC BTW SOCK IZ A [TASK, DEPT] I HAS A TASK IZ GIMMEH 0 OUTTA SOCK I HAS A DEPT IZ GIMMEH 1 OUTTA SOCK I HAS A SHOE IZ 0 BTW GUM IS ELSE TOGGLE FOR LOOP I HAS A GUM IZ 0 BTW ADD DEPT IN IM IN UR LOOP UPPIN UR SHOE BTW LOOPIN THROUGH DEPTREE BTW DEPTREE = [task,[dep,...]] I HAS A TMP IZ GIMMEH SHOE OUTTA DEPTREE TMP, O RLY? NO WAI, GTFO OIC I HAS A TMP2 IZ GIMMEH 0 OUTTA TMP BOTH SAEM TMP2 AN DEPT, O RLY? YA RLY, GUM IZ 1 IM OUTTA UR LOOP I HAS A PANTS IZ A BUCKET I HAS A PANTSU IZ A BUCKET PUT DEPT IN MAH PANTS PUT PANTSU IN MAH PANTS BOTH SAEM GUM AN 1, O RLY? YA RLY, PUT PANTS IN MAH DEPTREE OIC GUM IZ 0 I HAS A JAWBREAKER IS 0 BTW FIND THE TASK SHOE IZ 0 IM IN UR LOOP UPPIN UR SHOE I HAS A TMP IZ GIMMEH SHOE OUTTA DEPTREE TMP, O RLY? NO WAI, GTFO OIC I HAS A TMP2 IZ GIMMEH 0 OUTTA TMP BOTH SAEM TMP2 AN TASK, O RLY? YA RLY GUM IZ 1 JAWBREAKER IS SHOE GTFO OIC IM OUTTA UR LOOP BOTH SAEM GUM AN 1, O RLY? YA RLY I HAS A TMP IZ GIMMEH JAWBREAKER OUTTA DEPTREE I HAS A TMP2 IZ GIMMEH 2 OUTTA TMP BTW TMP2 IZ STILL SUMTHIN ELSE PUT DEPT IN MAH TMP2 OIC IM OUTTA UR LOOP OBTW DEPTREE IZ [[Task,[Dept,...]],...] NEED 2 GO UNTIL IZ EMPTY AND DO STUF TLDR I HAS A CYCLE IZ 0 I HAS A ORDEREDLIST IZ A BUCKET IM IN UR LOOP DEPTREE, O RLY? NO WAI, GTFO OIC BTW MAEK LIST OF ZERO DEP I HAS A SHOE IZ 0 I HAS A STUF IZ A BUCKET IM IN UR LOOP UPPIN UR SHOE I HAS A ELEM IZ GIMME SHOE OUTTA DEPTREE ELEM, O RLY? NO WAI, GTFO OIC BTW ELEM IZ [task,[dep,...]] I HAS A DLST IZ GIMME 1 OUTTA ELEM DLST, O RLY? NO WAI, PUT ELEM IN MAH STUF OIC IM OUTTA UR LOOP BTW STUF IS NODEP LIST STUF, O RLY? NO WAI CYCLE IZ 1 GTFO OIC BTW IM NOT GUNNA MAEK SORT N LULZCODE K STUF IS MAEK STUF KEWL BTW THIS IS BUILT-IN LIST SORT KTHX I HAS A CHO IZ GIMMEH 0 OUTTA STUF PUT CHO IN MAH ORDEREDLIST BTW NEED TO REMOVE FROM DEPENDANCIES SHOE IZ 0 IM IN UR LOOP UPPIN UR SHOE I HAS A ELEM IZ GIMME SHOE OUTTA DEPTREE BTW ELEM IS SUMTHIN ELSE ELEM, O RLY? NO WAI, GTFO OIC I HAS A DLST IZ GIMMEH 1 OUTTA ELEM TAKE CHO OUTTA DLST IM OUTTA UR LOOP IM OUTTA UR LOOP BTW CYCLE OR ORDEREDLIST CYCLE, O RLY? YA RLY, VISIBLE "cycle" NO WAI IM IN UR LOOP UPPIN UR CYCLE BTW RECYCLE VARS I HAS A ELEM IZ GIMME CYCLE OUTTA ORDEREDLIST ELEM, O RLY? NO WAI, GTFO OIC VISIBLE ELEM IM OUTTA UR LOOP OIC KTHXBAI
Yep, that’s not LOLCODE, it’s LULZCODE. A corruption of LOLCODE, because I couldn’t be arsed to conform to their overly loose shitty standards.
Now all that’s left is to write the interpreter for it, lol. Fucking brutal.