Damnit. I want php. That way I can do neat dynamic things that are totally unjustified because nobody comes here. It costs $30/month at pair. But there's no way in hell I'm going elsewhere. Pair rocks. They are far and away the best host I've tried.
Auto-renamer for the Audiogalaxy Satellite so your files will be named however you want. Actually it just needs to be tested with the new UI code.
PHP personal portal. And weblog (to supplant Blogger, once I decide to spend the $$$). And whatever else I want it to be.
An mp3 databasing scheme in partes tres:
Scanning my local disks for mp3s and collecting the ID3 tag information, and then inputing that into a MySQL database. Looks like it will be in C++ with the MySQL++ API and the id3lib ID3 tag manipulation library
Creating a web-interface (in php, of course) to said mp3 database with the ability to search on various terms and download mp3s from the library.
No third one. I just wanted to say partes tres ("Omnia Gallia in tres partes divisa est....").
I want an email client that changes my message settings based on rules. For example, when I post to a newsgroup, I want to make my email address ketan@REMOVEketan.org or something like that. I want to be able to easily switch sig files so I can have one for work and others for personal mail. That way possibly offensive quotes ("Pickup Line #11: Chick do now.") don't get sent to, say, a prospective employer. I think every significant piece of software should have a scripting engine so I can make it do things the way it should have done them in the first place. Python would be a good start. Emacs had the right idea (although they might have considered practicality when picking Lisp as their language of choice).
There's a handy thing you can do on Windows systems. If you're viewing a tree of data (registry entries, file explorer, etc.), hitting '*' will completely open all the branches. The problem is that there is no way of closing it again. That is to say, you can '-' and shrink it, but all that does is close the top; the children are still all open. There's no way to say, close all branches below depth n. Unfun.
I now own hotforjesus.com. There's really no point to it. I just liked how it sounds, and domains for $12 make the impulse buy... well, it was an impulse buy. Still, it sounds pretty cool. Just add musical talent and three like friends and I could have a band. I mean, the name's the hardest part...
Mozilla is surprisingly good. I mean, wow. I expected it to still totally suck. Mind you, don't download the (AOL Time Warner) Netscape version. Not because I have a bias against that media conglomerate (which I do), but because there are irritating things about it that justify why I have a bias against that media conglomerate. For example, in the Netscape-branded version, you cannot disable javascript popups. When you install it, you also get these irritating "Free AOL and Unlimited Internet" shortcuts all over the place. And they demand you get a Netscape user id. So get Mozilla instead: same great taste, a whole hell of a lot less of a pain in the ass.
This weekend I made this recipe:
8 tablespoons (1 stick) unsalted butter, plus more for dish
6 slices good white bread, crusts removed, torn into 1/4- to1/2-inch pieces
I used some bad HEB baguette that I bought to see if La Madeleine baguettes were worth the extra $0.80. They were. So I heated up the baguette in my toaster oven and threw it into my food processor to make many small crispy crumbs instead of the softer, larger pieces specified above. I think you should go my way. Is better.
5 1/2cups milk
I used soy milk. Worked fine.
1/2 cup all-purpose flour
2 teaspoons salt
You'll probably want to put more on after it's done.
1/4 teaspoon freshly grated nutmeg
1/4 teaspoon freshly ground black pepper
1/4 teaspoon cayenne pepper, or to taste
Make that a slightly heaping 1/4 teaspoon. Don't be too approximate with this, though, because that's close to perfect.
4 1/2cups grated sharp white cheddar cheese (about 18 ounces)
I have strong feelings on cheddar. It must be white. Maybe a little yellow. Definitely not orange. That's not natural. The only sharp cheddar I could find was Vermont Cabot block cheese, which I happily grated myself (realizing with a "doh" when I finished that I could have used the food processor).
2cups grated Gruyére cheese (about 8 ounces) or 1 1/4 cups grated Pecorino Romano cheese (about 5 ounces)
I used the Romano cheese. Buy the block in your supermarket's fancy, expensive-as-hell cheese section.
1pound elbow macaroni
Yeah, ok, so let's do this thing.
Heat the oven to 375°. Butter a 3-quart casserole dish; set aside. Place bread in a medium bowl. In a small saucepan over medium heat, melt 2 tablespoons butter. Pour butter into the bowl with bread, and toss. Set bread crumbs aside.
I didn't have enough melted butter, so I put in a couple teaspoons of olive oil. Didn't seem to hurt.
In a medium saucepan set over medium heat, heat milk. Melt remaining 6 tablespoons butter in a high-sided skillet over medium heat. When butter bubbles, add flour. Cook, whisking, 1 minute.
While whisking, slowly pour in hot milk. Continue cooking, whisking constantly, until the mixture bubbles and becomes thick.
Remove pan from heat. Stir in salt, nutmeg, black pepper, cayenne pepper, 3 cups cheddar cheese, and 1 1/2 cups Gruyére or 1 cup Pecorino Romano; set cheese sauce aside.
Fill a large saucepan with water; bring to a boil. Add macaroni; cook 2 to 3 minutes less than manufacturer's directions, until the outside of pasta is cooked and the inside is underdone. (Different brands of macaroni cook at different rates; be sure to read the instructions.) Transfer macaroni to a colander, rinse under cold running water, and drain well. Stir macaroni into the reserved cheese sauce
Pour mixture into prepared dish. Sprinkle remaining 1 1/2 cups cheddar cheese, 1/2 cup Gruyére or 1/4 cup Pecorino Romano, and bread crumbs over top. Bake until browned on top, about 30 minutes. Transfer dish to a wire rack to cool 5 minutes; serve hot.
Ok, so don't do it this way unless you're going to feed like 8 people immediately. This might not sound like a lot, but this is heavy. I've got about 40% of it left after about 5 servings. And you don't want to leave this sitting around because it gets soggy. It's ok if you bake it warm again, but most definitely don't microwave it. Instead, do this: get a 1 quart container and put in a third of the macaroni. Ideally your 1 quart container will be fairly shallow (~2"). That way when you spread the remaining cheeses and breadcrumbs over the top, they get distributed well. I made this in a deep, round dish. It came out well, but it would have been better in a shallower and wider dish of the sort that I do not have. Anyway, refrigerate the remaining 2/3 of the mix. Try to just bake it as necessary. You do all this, and you'll have a macaroni and cheese that tastes so good, you'll call up your state attorney to fine Kraft millions for false advertising. What they make is not macaroni and cheese. I mean, going from the box, you'd think they'd make it with cheese, and not crap. And yet. Theirs sucks. Make this. It's easy. It's better.
This morning I woke up to see my computer in windows setup mode. It had rebooted when my primary hard drive spontaneously self-destructed sometime in the middle of the night. I have spent several hours reinstalling windows and basic applications to restore my basic configuration. Luckily most of my data was on another drive. Most. Because I'd run out of space on my main mp3 drive, I had spilled some overflow onto my main drive. I had put all the best songs there. All the vinyl rips that I had spent hours tracking down, and then listening to up to a dozen versions of each song before finding the one without any glitches, and then naming and tagging them properly. And now it's all gone. I am majorly bummed. And I'm employed now, which means I won't have the time to track them down again. Sad sad sad. To relieve some of my frustration, I am disassembling one of the many extra/broken hard drives I have lying around, as a twisted form of catharsis.
I've been asked several times what it is about FreeBSD that I prefer over, say, Linux. I actually had to think a bit before coming up with solid answers.
Software engineering. The FreeBSD team is just more rigorous. They don't just program their software; they engineer it. They have release schedules, test plans, milestones, and everything else that goes with software engineering. The Linux kernel doesn't have that level of organization. Most Linux distributions do, but generally to lesser degrees. Another way that attitude gets exposed is in how they plan features. They won't just add a new virtual memory management system to a "stable" kernel when they want to. There is process. They test. They debate. They publish papers. They aren't concerned with being the prettiest girl on the block; they make things that work.
Unity. You can do just about anything with FreeBSD without leaving the FreeBSD world and idioms. Just about everything comes through the same source; the kernel, the libraries, and the user applications. Apache is a separate project, but there is a FreeBSD port that puts an easy configuration interface on top of it as well as patches and compilation settings to make it perform optimally on FreeBSD. Not to mention the installation is just a make install away with the ports tree.
Freedom from binary package hell. Yes, there are source-based Linux distributions, but they're not very good at actually managing the applications once they are installed. Upgrading is horrible. They force you to do all the dependency tracking yourself. The binary package systems like rpm and apt are somewhat better, but their dependency tracking isn't solid. In addition, while possible, compiling from source is somewhat more involved. And with binary packages, specifying options for a complex application like php generally requires building your own from a tarball anyway, so you lose the benefits of the package manager when you need it most.
All the cool kids are using it.
Really, though, the thing to do is just try it. If you're looking into installing a UNIX-type operating system, give FreeBSD a shot. It just works better. See if you want to go back after using it for a month. Linux is great for playing with things like ReiserFS or other neat things that don't exist in the FreeBSD world, but when it comes down to actually accomplishing something, the FreeBSD way is easier, simpler, smarter, and more stable.
There are only a couple caveats. Java is stuck on 1.3.1, instead of 1.4, with no visible progress towards that goal. If you have to use 1.4, you'll have to look elsewhere. Also, driver support isn't as extensive as Linux, especially with hardware from companies like ATI that won't release specs for writing drivers (a problem I am struggling with at work right now).
Shuttle SN41G2: $300 (expected). The Nforce2 chipset comes with some nice goodies integrated: Geforce4 MX graphics (not top-of-the-line, but I'm not made out of money, and it's better than my 2.5 year-old Geforce2), Realtek and/or 3com NIC, sound (again, not the best, but good enough). And if I don't like the graphics or sound, I will have an AGP slot and a PCI slot to grow into.
512MB PC2100 DDR SDRAM: $125
Athlon XP 2100+: $90
Some stuff I already have (CD-RW, FDD: $0)
Optional 21"+ CRT: $550
Total: $515 or $1065
industry (development server)
Lots of stuff I already have (motherboard, CPU, RAM, CD-ROM, FDD, NIC): $0
2U rackmount case*: $90
Generic PCI Graphics: $10
Total: $90
monolith (tentative name for file server)
120GB hard drive x 4: $560
2U rackmount case*: $90
More stuff I already have (Motherboard, CPU, RAM, NIC)
Generic PCI Graphics: $10
Total: $660.
Complete upgrade: $1265 or $1815. Not bad, and it can only go down (though not by much). Those are pretty spare systems. The majority of the cost is in replacing my current workstation system (not really justifiable) and the drives for the RAID array (semi-justified, given my drive troubles of late, but a bit over-the-top). At the end of it, I will have a tiny form factor workstation on my desk, and a rackmounted development server and a rackmounted file server with software RAID (provided by vinum in the FreeBSD project) living in my closet. I hope to get some kind of rack on which to mount the servers, but I wouldn't be bothered if I just had to use some el cheapo furniture. Yeah. And then I'd be all geeked out. Those Shuttle SFF systems are so cool. And then the rackmounts are definitely a cut above your average, but they only cost me a bit more than a decent PC case would. I just need the money now. Oh, and I'll have two extra tower cases to unload, which will probably cut my costs by like $40 or so. I should probably rethink the name of massive; in that SFF it will be anything but. Right now it is in a giant tower case, but the new system will merely be the spiritual successor of Massive. I've been thinking of naming machines after electronic songs I like; massive and industry were big in 2001 and 2002, but that was a coincidence. I had cowgirl during my brief period of employment in October, but now that name is dead to me. I don't know of any electronic song called monolith, but I just think the name is appropriate for a big honkin' file server. I'd probably also want a KVM switch to go with the rackmounts, but that's a bit of a luxury item at $50 when it's going to be hooked up to machines living in a closet.
Strictly speaking, I already have the rackmount cases, but I haven't done anything with them, so it's not like I've justified them yet.
I have a theory that Microsoft is trying to make itself agnostic to IA32, IA64/EPIC, and x86-64 architectures in a move to increase the usefulness of its CLR and thus push .NET adoption. If you didn't understand any of that, don't worry about it.
Now that Apple has announced their digital music service, they are closer and closer to having a complete music product line. One glaring hole, however, is the absence of a good automobile music solution. Sure, you can use a cassette adapter, but many cars don't even have cassette decks anymore (mine doesn't). I think Apple should join forces with a company (or companies) that manufactures car stereos to create the iPod Cardock. It would be an ordinary car radio/CD player, but would have a physical dock for an iPod. You would be able to play the songs on the iPod, manage them, and recharge your iPod from this dock. It would be physically integrated so your iPod is securely mounted to the stereo unit. I don't know whether I would prefer a cartridge-like loader or a more external mount. The former would be like a cassette loader; you would push your iPod in horizontally and eject it when done. The stereo would have integrated controls for accessing the iPod music. The latter would mount the iPod vertically outside of the stereo unit, and you would use the iPod's controls to access the music. The loader method has the advantage of integrated controls and a lower profile, while the external mount has the advantage of being less intrusive and requiring less of a design shift for the stereo. Either way, though, this is a logical next step for them to take to make music ubiquitous.
As you might have guessed, I will shortly have an extra Tivo. It's one of the original models, the Philips HDR112. I've had it for 3 years and it's worked like a champ. I've never modded it or done anything to it besides use it regularly. They're selling on eBay for $75 and up. If you're into giving it a shot, I'll sell you mine for $75. Be aware you need to subscribe to the service for it to get guide info, which you kind of need. I probably should have sprung for the lifetime subscription when I first got it (when I was fully employed and moneyed), but I didn't.
By now, if you care, you know that Google has file for an IPO. What you may not know is that according to their S-1 statement (the SEC form for filing for an IPO), they are planning on raising up to $2,718,281,828. That's a funny-looking number. It may even look a little familiar to you. That's because it's e x 10^9, i.e, one billion times the natural logarithm. If you needed any convincing that Google is run by incredible geeks, well, there you go.
After four long years, I finally built a wholly new computer. I prefer to build my own because the major OEMs cut corners and choose cheap parts. Plus, I hate dealing with tech support. Maybe I'm solving a problem I've created myself: I build my own computers, which means no tech support, which means buying more expensive parts, which means building my own computers, so I do more coke. Er. Anyway, I made it out of these parts:
AMD Athlon64 3000+ (Venice core) Socket 939 CPU - If you're building a desktop PC these days, you need a good reason to go with Intel. Intel's better on the laptops (only if you go Pentium M, though), and the Pentium 4 part is better for a few multimedia applications. For most things, though, the AMD chips are faster. They're certainly cheaper and cooler, which matters a lot. The Venice core differs from previous Athlon64 CPUs in that it is manufactured with 90nm traces (vs. 130nm), which means cooler running (among other things). I bought a socket 939 CPU instead of 754 because that will allow me to drop in a dual-core Athlon64 in a year or two. $146
MSI Neo4-F motherboard - Based on the NVidia nForce4 chipset, this is a solid, mid-range motherboard from one of the more reliable motherboard manufacturers. I went nForce4 to have SATA and PCI-E for future-proofing my hard drives and video cards respectively. $84
2x1GB Corsair Value Select PC3200 DDR DRAM - I'm not overclocking, so I bought the value RAM from Corsair, a generally well-regarded memory manufacturer. 2GB was a must, given that I abuse tabs, the Works application is Java, and I use Eclipse for my Java development. $173 (total)
NEC ND-3540 DVD burner - Recommended by Anandtech as a decent, inexpensive DVD burner. Supports DVD+R, DVD-R, DVD+RW, and DVD-RW, which is great, since I have no clue what the real difference is between + and -. Also supports dual layer recording, for double the space (once the DL media is at a reasonable price). $44
Seagate Barracuda 7200.8 250GB SATA hard drive - Seagate has a 5 year warranty compared to 3 year warranties from the other guys. It's also generally said to be a little quieter than the others. Besides that, all the mainstream manufacturers are roughly equivalent for these drives. I bought the SATA version because it only cost $5 more, as the motherboard has 4 SATA connectors but only 2 IDE, and the SATA cables are much smaller and easier to route. $116
Sapphire PCI Radeon 7000 64MB - The cheapest PCI-E video cards are about $55 and up. I just wanted a decent video card that could handle basic 3-D for Civilization 4 this winter. There are no motherboards with both AGP and PCI-E, so I went with PCI-E for future-proofing. Maybe when Quake4 comes out, I'll upgrade, but for now, I don't need the pixel power. $31
Antec SLK2650 - Last, but certainly not least is the case. Antec makes a quality case, I tell you what. That matters when you're fiddling with the insides, but it also matters with noise. They also make quality power supplies, which is important for stability. Buying the two components together is gentler on the wallet. $69
Shipping added another $32 or so, for a grand total of $695. Everything came from Newegg, which has a goofy name and stupid slogan, but excellent service and good prices. I had my parts picked out months ago, but I was making myself wait until they dropped below $700. For a couple weeks, the total was in the $705-$715 range, but I made myself wait as an exercise in discipline.
Of course, now I have to find something to do with the old parts. Let me know if you want something. All the parts listed here are in good working order. A couple have minor defects that do not affect their functionality (noted below):
$30 : MSI K7T Turbo Limited with VIA KT-133 Chipset for AMD Socket-A processors
$30 : Abit KT7E with VIA KT-133E Chipset for AMD Socket-A processors
$20 : 2x Micron 128MB PC100 DIMM
$15 : AMD Athlon 900MHz (Thunderbird AFFA) w/ Cooler Master Heatsink/Fan
$15 : AMD Duron 900MHz (Spitfire ANCA) w/ Cooler Master Heatsink/Fan
$25 : Western Digital WD600 hard drive 7200rpm ATA-100 2MB cache
manufactured 22 Apr 2002
$15 : Western Digital WD400 hard drive 7200rpm ATA-100 2MB cache
manufactured 19 Nov 2002 (refurbished)
$5 : IBM Deskstar DTTA-351010 5400rpm 10GB hard drive manufactured Feb 1999
$20 : Creative Labs 3D Blaster GeForce2 GTS (Model GB0010) AGP - fan broken, but
works fine anyway
$5 : Trident T9680 PCI Video card
$10 : USDrives 24DT internal 24x CD-ROM drive manufactured Apr 1998
$20 : Plextor PX-W1210TA 12/10/32 ATAPI CD-RW drive manufactured Apr 2001
$15 : Yamaha CRW4416E-NB 4/4/16 ATAPI CD-RW drive manufactured May 1999
$30 : ATX Full tower case In-Win 500 with power supply. Very large. Good
condition except where I drilled holes into the plastic cover. Looks
ugly; works fine. Beige.
$20 : ATX Mid tower case with power supply. Beige
$60 : 2x 2U ATX rackmount server cases with power supplies. Black.
Free: 1.44 floppy drive: generic
Assorted IDE cables to go with drives as necessary
At some point in the next couple of years, we're going to replace Jessica's venerable eMac. Odds are it will be a laptop, so I've been watching developments in Apple's product line. On a lark, I priced the new MacBook, the Intel-ified iBook. The middle one is $1300, while the top one is $1500 (without the Bank of America discount). The only differences that I could find are that the former has an 60 GB hard drive versus the latter's 80 GB, and the latter is black as opposed to the iBook/MacBook standard white. All the other standard hardware is the same, as are the optional upgrades. Upgrading to the 80 GB drive on the middle option is only $50, though, so you can have the equivalent of the top end MacBook for $1350. Are there that many people who are willing to pay $150 just to get their MacBook in black?