Doesn't work a lot of very reasonable hardware. Emasculated with DRM. And you can't use the network and the sound card at the same time. If Vista is survivable for Microsoft we'll know for sure we have a monopoly problem. Check out this concrete but insufficient response. "It's only when you receive data". Most desktops mostly receive" so "it's only a problem most of the time" seems to be the answer.
Just a quick little problemsolving exercise I did this afternoon, revolving around the discovery of the ScriptInterpreterSource apache directive.
The setup: I develop on a Windows laptop and deploy my stuff to shared hosting on Linux (specifically Site5, which has good perl support and are happy to install modules). I'm just running small scale stuff, so I just roll out plain CGI. Simpler and faster and works for small values of n. I have shell access and subversion running and that combo Just Works. What was before right now a little annoying was local Win32 test of the scripts without modification, because apache cgi uses the hashbang line to determine the cgi executable - which I also need on the host with a different setting. Thankfully, adding
to the CGI config deals with that. Now Win32 apache looks for the string valueScriptInterpreterSource Registry
in the registry instead of the hashbang and Bob's your uncle.HKEY_CLASSES_ROOT\.pl\Shell\ExecCGI\Command
<DirectoryMatch cgi-bin>directive helpful, regex matching against 10 parallel cgi subdirectories, so I don't have to set each one up separately. And a little gotcha I encountered:
- remember the FollowSymlinks or the ExecCGI is disabled (? or so it seems from error messages)SetHandler cgi-script
Options ExecCGI FollowSymLinks -Indexes
Bryan Cantrill, creator of DTrace, likes to debug, as far as I can tell from this Google Tech Talk. I always loved debugging, the detective work is engaging and the sense of reward when you win is great, but after watching I feel suddenly sad to spend all my time on DTrace-less platforms.
Maybe I should go Nexenta?
Guerilla rules on how to make a proper hacker loft. Heavy on the hacker ethic/hacker lifestyle necessities, but some good ground rules too.
Mike Migurski is doing something quite interesting: Dumping the database engine as a middle man and just storing DB-indexes directly as HTML. Fullest, but preliminary, detail here. Let's let Mike explain
There's a short list of reasons to do this:
- A "database" that offers nothing but static file downloads will likely be more scalable than one that needs to do work internally. This architecture is even more shared-nothing than systems with multiple database slaves.
- Not needing a running process to serve requests makes publishing less of a headache.
- I'm using Amazon Web Services to do the hosting, and their pricing plans make it clear that bandwidth and storage are cheap, while processing is expensive. Indexes served over HTTP optimize for the former and make the latter unnecessary. It's interesting to note that the forthcoming S3 pricing change is geared toward encouraging chunkier blocks of data.
- The particular data involved is well-suited to this method. A lot of current web services are optimized for heavy reads and infrequent writes. Often, they use a MySQL master/slave setup where the occasional write happens on one master database server, and a small army of slaves along with liberal use of caching makes it possible for large numbers of concurrent users to read. Here, we've got infrequently-updated information from a single source, and no user input whatsoever. It makes sense for the expensive processing of uploading and indexing to happen in one place, about once per day.
Software designed, not by committee, but by a committee of committees. Apparently it's not a joke. Even if the completely unparseable meta-concern lingo smacks of one.
Dan Kaminsky's black hat presentation this year is downright scary, using well known 10 year old design oversights in browser security models he is able to get complete access through a firewall with a garden variety browser. No immediate cure in sight that doesn't break a lot of good stuff.