Pat Gunn (dachte) wrote,
Pat Gunn

  • Location:
  • Mood:
  • Music:

Putting Cthulhu on Hold

I've been thinking a lot recently on the way software is developed, software architectures, and the like. Databases: out of all the features we see in modern relational databases, which are the most important? Some things, like transactions, atomicity, and centralised storage are fairly nontrivial, and I've occasionally seen people "abuse" databases by using a database solely to get features like that while having no need for the data to have any particular structure (imagine a single table schema that stores the equivalent of a dotfile - kind of similar to VMS-esque record-based io, maybe). As I understand, the web has been a big boon to database usage, as it's easy for applications to be built out of smaller bits of code (CGI scripts or servlets) that use the database as a central storage, with browser requests/webserver dispatch replacing the event loop in most modern GUI programming. Some webservers (e.g. Tomcat) close the circle by maintain ing non-database state of sorts in memory (or on disk) transparently between dispatches, using some mix of cookies, url mangling, and persistent connections to map sessions to that state. It would be cool to make a platform/framework which would transparently bridge the gap between those means of programming, whereby the same codebase could be used for applications running as traditional apps (that would keep things entirely within the program's core, running entirely locally like a normal app) and web-based applications running from a webserver with a database handling object storage. I don't see anything intrinsically difficult about this (serialise/deserialise methods for every object, limit widget use, etc) - if we wanted to make it even easier, we could have the local application just target a local database. It could become just another discipline/early design decision in programming, just like pervasive threads or distributed computation (what other similar code-shaping touch-everything design decisions are there in software development? Reentrancy? ..) It changes things a bit when we shift databases from being more about file-like IO (long-term stuff that should presumably never expire) to including also state-like storage (stuff more similar to temporary stuff that would be used in an invocation of software as we mainly know it today), although using the event loop/page serve as the dividing mark leaves us with some presumably truly local state. What kinds of syntax help might we like if we were to want to push a lot more program state into a database?

On a completely different level, it'd be nice if online games were designed with more consideration that people might like to watch existing/potential games to either keep up on friends or potentially join in. I don't know if rapidly polled (or pushed) feeds like Atom would be the right way to do this, but it would be neat to have a dock applet (in my case Windowmaker, although Mac people have a dock too) that would always show me who's on tetrinet/KOL/UrbanDead and let me jump on (as a spectator/player for tetrinet or in my browser for the others). If we're going to make the web an application platform, it ideally won't remain a second-class one forever. I suppose making GreaseMonkey scripts that'd live inside a custom Gecko-using dockapp would let me do this, but that'd be fragile and ugly - providing Atom (or some other XMLish) feeds designed for rapid polling/push would at least let GreaseMonkey-fans have something more stable/civilised to start customisations on.

Amused: Myspace (which I hardly use) has been passing lots of spam my way recently. As I clicked the "Mark as Spam" on some of its in-system email, I got a good chuckle out of how advertisement clickthroughs on the side of the page (that I hadn't yet told Firefox to block), intentionally served by Myspace to me, looked little different from what I was reporting. I am also amused to hear about FreeVMS - all jokes aside, I have a certain fondness for OpenVMS, and if FreeVMS ever gets big, it'd be pretty neat.

I recently found Mednafen, an emulator for almost everything I have roms for except the SNES (for which I have snes9x). Pokemon LeafGreen, here I come (amused: I actually have a decent number of gameboy carts, but I hate playing RPGs on them because their interface is too slow - I usually am holding down the "turbo" button within every emulator I have when playing these games because watching text scroll slower than I can read, especially when I already know what it's saying, is not my cup of tea). Apart from needing a good amount of configuration to be usable, Mednafen is a pretty good system emulator.

TMBG released an album called "The Else" within the last month or so, and I failed to hear about it. Unfortunately, the download version, unlike most of their other albums, is only sold through iTunes, which is very irritating. From what I can tell, the new album ... actually isn't that great, which is disappointing.

Tags: tech

  • Typing in Colours

    (Cross-posted to G+, but it's more of a definitive statement of views so it goes here too) A recent instance of 「Wasted Talent」: here I'm not…

  • Loyalty

    This is meant to address three ideas: Don't blame the victim If you care for me, you'd support me unconditionally Safe zonesAnd to be a topic in…

  • What Do We Owe Each Other?

    One of the central questions in political philosophy, or perhaps one of the most intuitive initial framings, is "what do we owe each other?". I…

  • Post a new comment


    Anonymous comments are disabled in this journal

    default userpic

    Your reply will be screened

    Your IP address will be recorded