David E. Smith on 9 Feb 2002 07:16:09 -0000 |
[Date Prev] [Date Next] [Thread Prev] [Thread Next] [Date Index] [Thread Index]
spoon-business: The Daily Recognizer (Friday night/Saturday morning) |
Yes, it's that time again... Today's edition of "The Daily Recognizer" is brought to you by the lovely and talented Michelle Branch. Uncle Psychosis' sushi CFJ is 378, assigned to The Voice. Antonio is Off Leave. (Remember, Antonio, if you don't vote this nweek, you'll automatically go back on Forced Leave.) CFJs 280 and 341 have been Judged. 362 has been completely rewritten to "Poetry in Motion" (362/1). "Vow of Poverty" is 379/0. Wonko's checkpoint revision is added (359/2). Wonko's keywords revision is added (375/1). Glotmorf's "And We Can Make Little Outfits For Them Too!" is 380/0. Glotmorf's typo fix on 364 is recognized (364/1). Glotmorf catches the King Gremlin and tosses it at Bean. (Aside: For the life of me, I can't find Glotmorf anywhere. Did e, in fact, enter the Grid at some point?) Bean catches the King Gremlin and lobs it at Scoff!. "Windows aren't all bad!" is 370/1. "Weather" is 381/0. And you don't want to base the weather on my location... it's notoriously screwy. In the past two weeks we've had snow, ice, and highs of 70 degrees Fahrenheit. "The Yoyo Gremlin" is 382/0. "Tilt" is 383/0. (You people just enjoy torturing me, don't you?) "Ahh..." is 384/0. (Previous statement retracted.) Rob bribes the King Gremlin, repressing the PIG. (Rob, I'm taking a bit of privilege here: Since Gremlin numbers are always rounded up, it actually costs 11 points, not 10, to Repress the PIG. I'm proceeding as though this is acceptable to you; if not, let me know and you'll get a full refund. :) "The Pause That Refreshes" is 367/1. I suddenly feel very fatalistic for some inexplicable reason. Rob's "The Final Frontier" is 385/0. Uncle Psychosis has Judged CFJ318. Congenital Optimist lobs Luigi towards Glotmorf (wherever e's gotten off to...) Scoff! juggles Gremlins! The Bandwidth Gremlin is bound for Bean, the PIG for Dan, and the King Gremlin for Wonko. (Your move is queued for the end of the nweek.) Uncle Psychosis revises "So damn ugly." (377/1) and gives 1 point to Wonko. Gremlins are flying madly about - Wonko catches the King Gremlin and lobs it right back at Scoff!. Bean's move is queued. Bean revises 342 (342/2). Scoff! catches the King Gremlin and throws it at gritter's corpse. The King Gremlin is surprisingly aerodynamic, and arrives in zero time. Unfortunately, gritter's corpse is not terribly resilient, and disintegrates upon impact. (I'm just cleaning up here. ;) Bean catches the Bandwidth Gremlin. Baron von Skippy, upon returning from Leave, takes the Cursed Sushi of Babel from, well, whoever owns the darn thing. (This will become important in a moment.) E tries to give away negative activity points, but I don't think it's legal to do so. E changes eir name to "Really Long String That I'm Not Gonna Retype." Baron von Skippy tries to forfeit, but can't, because e forgot to Sushi eir action. (This means unless someone volunteers to take the Sushi away from em, e's stuck with it for several weeks. This will, I suspect, make life more pleasant for all of us.) "Water, Water Everywhere" is 386/0. An editorial: I prefer the one-based ndays because it better reflects the calendars with which most of us are familiar. There's no February 0th, for example. Okay, that should be everything. Whee! Ooh, the "current proposals" page now suffers from the same problem as the "current rules" page used to. Man, I need better cache management. Since my goal is to reduce database queries, I'm not sure the "temp tables" suggestion will work, but I'm digging out my MySQL O'Reilly book even now. Non-programmers/non-geeks may tune out now... Here's my ultra-simplistic cache system: I have a "cache" directory that has the really heavy (the hundreds o' queries) versions of these pages. I also have, in my admin menu, an "update cache" link. What that does is, fetch the pages in the cache directory, and store them as-is (except for stripping HTTP headers), in big BLOBs in the "cache" table of the database. Then the "real" /~g6/cur-rules.php page is just: <? include_once("cache.php"); cache_disp("cur-rules"); ?> There's no problem with the display page, obviously - it's hard to mess up code that trivial. ;) The problem is that these bigger pages (70k and up, give or take) usually stall in the middle of loading, and (I'm guessing) PHP thinks the transaction is concluded there. I'm on a cable modem, and I can see where the page loads stall (at about 70k, give or take). The idea is to reduce database load, obviously - pulling a page out of the cache, after checking for freshness, is only two simple queries, while generating some of these pages on-the-fly is a 50-100 complex-query job. The cache system also has trivial aging - cache entries are timestamped, and if a page is "stale" it gets a fresh copy to store in the database before chucking it out to the user. (The code was designed for a site with somewhat more frequent use, as you may have guessed.) I've got the same code working on another Web site, regularly caching pages of 200-300k, but that's on a somewhat beefier Web server than Joel's home 'puter. I may just have to accept this particular limitation, pending some really clever ideas. I'm still got a few queries to optimize, but I'm growing skeptical as to the benefits to be derived therefrom. ...dave ---- David E. Smith, POB 515045, St. Louis MO 63151 http://www.technopagan.org/ http://metadave.net/ http://www.bureau42.com/ http://whatIsay.com/ "Use anger to throw them into disarray." -- Sun Tzu