I really hate it when someone asks “HOW DO I SECURE MY
inb4 mod_security2/suhosin/hardened-php because those are all more-or-less bullshit hacks that have nothing to do with application code.
Mostly I just didn’t fucking want to use a Python (through Twisted) or Java-based stack even though the Twisted one is the most mature (Omegle is based on the Twisted stack, for example). Fucking slow-ass scheme-killing snake >:(
PS: my dog died RIP
PPS: I finally figured out how to build *just* the NetBSD kernel and now have a working wireless device. Huzzah.1 comment
So, I’m addicted to buying computer hardware. I’ve literally got piles of motherboards stacked beside my bed, sitting on top of both loaded and disassembled cases, memory sticks and cooling devices littering my nightstand, network hardware accumulating on my shelves. Hell, I’ve even got an old Dell Poweredge server with double-redundant power supplies (that I’ve since dived for parts).
Most of my stuff is PC100/133 Pentium 3-based, which means it’s old enough to be ridiculously cheap, but not old enough to be completely useless. I’ve had it in my mind for a while to put together a nice cluster of these machines (running FreeBSD, of course) to tinker around with. It would be fun, for example, to run a bunch of Erlang VM nodes across a cluster and be able to drastically demonstrate some of the more awesome features the language provides.
Anyway, right now everything is completely haphazard. With the exception of a single machine (and my laptop), everything lies in some state of partial-disassembly. Most of the boards don’t have a chassis, power supplies are jerry-rigged, and I’ve only got 1 working harddrive left to boot off of (I’ve got a box of bootrom NICs loaded with PXE, but I haven’t gotten bloody NFS to work straight yet). Once I get netboot working, I’ll need a way to physically structure the hardware.
So, I ended up buying two of these shiny Intel 1U cases, planning on each housing an old Tyan 2515 dual P3 board. Eventually I want to strip out those boards and swap in some Intel 7501 chipset-based boards (dual Xeons, 400/533 FSB) since the processors are really cheap, but those boards cost ~$40/each and the PC2100 RAM is tricky to get (most of the stuff I’ve found is unbuffered, which is useless).
The trick is, those chassis are 1U rack-mountable, and I might be able to convince some people at school to let me house them in some of the half-empty racks they leave lying around unlocked. I thought about just secretly stashing my stuff in there (since the combined cost of each machine is only around ~$50 anyway), but I figured I might get in more trouble than just hardware confiscation for fsking around with their stuff.
Anyway, hopefully I’ll eventually have something to show for all this time and money spent on this project. At the very least, I’d like a nice multi-machine platform to run my happy little Erlang programs on <3
Okay, so there’s a shitton of stuff I need to plan out for a MUD. MUDs are XBOX HUEG things, I realized. It’s the technology behind them that’s typically less than other projects.
So far, I’ve written a simple non-persistent talker throwaway prototype to become acquainted with the gen_tcp module. It works, but it isn’t good enough to use for anything but the most basic of references. The source can be found here.
In addition to better working out the overall program structure, there’s a couple more things I need to be better acquainted with, like Mnesia, the Erlang distributed database backend.
I think my next project is to write another prototype, adding additional features like:
- Persistent player state.
- Emotes and player-defined emotes.
- Rooms (ugh, you’ll hear more about rooms).
And I think one of my routers just crashed. Motherfucker.
Anyway, that’s probably enough for me to bite off for now, and should provide both some experience working with Mnesia and have some reference example to work on future prototypes.