prog: (Default)
2007-10-27 08:49 pm

Finally signed a contract.

Worked for close to six hours editing The Gameshelf #6. Too much time spent in tweaking greenscreen stuff - it won't look quite as good as last time, sadly - and nosing around for appropriate (and CC-licensed) background music. If you know of an instrumental that would work well against several minutes of blathering about a corporate-takeover-themed board game, please do share. (Especially if I can legally use it.)

I now understand why other low-budget (but still some-budget) shows like The Phantom Gourmet seem to like having a small library of background music, from which they pick something more or less arbitrarily to throw on when nothing else is happening.

I hope to finish the show tomorrow. We'll see.



After negotiating a couple of points, I signed a contract that will keep me in part-timey work for the rest of the year. Suddenly, half my work-time allotment vanishes, ker-chunk, and I have to be careful about farming out the remainder. I will allow myself to take on one more such contract, and that's it until 2008. If both of the big uncertain deals pop the question this week, I'll almost certainly have to turn one down. A good problem to have. Until then, I've slowed down my frantic job hunt.

In the background, I've felt myself warming up to the idea of working on the web client again. Don't expect me to lift a finger for it until my working schedule is completely defined, but when that happens (and it won't be too much longer), I'll be ready to pick it back up again. It doesn't hurt that someone put the idea into my head that, once it's up and running, I can much more reasonably add Volity game developer to my list of services as a software consultant...
prog: (Default)
2007-10-08 09:46 pm

What's new

I stopped panicking about money after I was reminded that my accounts receivable has got stuff in it. This is not money in the bank, but it is the next best thing, and it's from clients who are good about paying on-time. I am fine.

All that said, looking for more work remains my ay-numbah-wun priority. Things I did this afternoon included uploading my resume to dice.com and setting up Google Reader to start eating various job sites' RSS feeds. I was pleased to see that many sites let you subscribe to feeds with search strings attached, and happy to see that, say, "perl telecommute" is rather well represented.



The Andys and I met for an in-person webclient test this evening, and quickly found some zonkers that I wouldn't have ever found by myself. On the other hand, the damn thing is running on a volity.net subdomain and actually working in every other way. I'll fix these bugs in the next day or two and resubmit them to my colleagues. It would be nice to agree that it works before I vanish for vacation on Saturday. (Well before, actually.)

But, yeah. It's October, so there is now undeniable schedule slip. But there's equally undeniable release-type activity happening now, so I am not sad.



Saturday night [livejournal.com profile] mr_choronzon had a little birthday gathering. I was reminded that I forgot to blog about one of the most WTF things that's happened to me this year, when he and I and [livejournal.com profile] lone_phaedrus were hanging out at his place a few weeks ago. Somehow the conversation turned to nunchucks, which is allowed because Mr. P is a ninja. Mr. C's reaction to this was to produce a pair of nunchucks and commence to flipping them around with the genuine skill and confidence of someone's demo reel.

I was as WTF about this as you'd be if, like, some random friend of yours suddenly did exactly the same thing. I guess it'd be less completely reality-jarring if we were all, like, 15, but this was just odd. In a delightful way.
prog: (Default)
2007-10-02 12:01 am

Werk

Today was wacky. A kerfuffle resulted from volity.com's highly intolerant mailserver refusing an important mail from a client several days ago, due to the fact that the mail was sent from a hotel with a reputation for spam. The client didn't see the bounce message that the server instantly shot back at them, so they didn't know that I never read the mail. Come Monday morning, frolics abounded. By Monday evening, everything's settled, insert folk juju-dispersal here.

Then had a good Volity meeting. There's only a few steps left before the alpha, which is now slightly late if you want to be a bastard and hold me literally to the dates I called months ago, but it's gonna be close-enough-dammit. Cross your fingers.

During the bits of downtime today, I worked on updating my professional presence. Following a conversation I had with [livejournal.com profile] taskboy3000 last week, I'm switching my self-assigned title to "Software Consultant", and have been busily retouching all my resumes and linkedins and such appropriately. I also redid my contracting consulting page, expanding the portfolio section and dropping a lot of the technobabble and buzzwords, reckoning that the resume's a better place for that stuff.

Need to redesign jmac.org. I am tired of the "Big Gray 7" layout that's, what, four years old now? On pages like this, that top bar is just oppressive.
prog: (Default)
2007-09-23 10:49 pm

Some days

Thursday was a sick day. Clobbered and miserable. At the end of the day I greeted the returned [livejournal.com profile] classicaljunkie and she gave me Tylenol cold & flu pills, which (after an hour of sleep) snapped me back into sensibility like a light switch. I swear by this product now.

Friday did some contract work for the first time in a while. (This coming week I'm gonna be doing a lot of it, actually.) After that, delivered an HTML snapshot of the web client's table UI (not super-easy to do since it's a slippery DHTML app) to[livejournal.com profile] radiotelescope. He insisted that this demo needs to make a much better first impression than I was preparing, and then volunteered to help make it happen himself. I have no problem with this sort of criticism!

Saturday started to set up the machine that will host jmac.org. After moving over! It's mostly Gameshelf episodes, and I discover that a few seem to exist in duplicate. Well, i can do something about that, at least. Then attended an art salon featureing [livejournal.com profile] cthulhia's paintings, marymary's poetry and C's recorder-playin. It was delightful.

Sunday, more machine setup, and reaching out to prodigal jmac.org users via email to tell em what's up and ask if they'd like to stay. Discovery, via [livejournal.com profile] daerr, of Google's domain-level management apps. I am likely to point jmac.org's MX records at it to let Google handle all my domain's incoming mail. Yeah, I know.

Afternoon meeting with [livejournal.com profile] taskboy3000 about the Gameshelf shoot we're having on Tuesday, including a script read-through. Also, we played MULE again. Trader Joe's dinner with [livejournal.com profile] classicaljunkie, and then we hung out at [livejournal.com profile] dictator555 and Nate's place for a while, drinking their tea while I wrote some new game news segments. It will be a good show.
prog: (Default)
2007-09-17 09:07 am

Developer's notebook OTD

Last night's growling due to happy news: my web-client work is more or less integrated into (my test branch of) the volity.net website, and it works on all browsers I can be bothered to care about, including Opera (yes, I have tested it on my Wii) and both MSIEs. I'm going to push to take it live by month's end.

It's technically not slippage, because my original deadline was Sept. 30. Let us ignore all the boasting about earlier releases I did a month ago.

I do all my JavaScript development on Firefox + Firebug, and Safari generally follows suit without any extra work. It took me an hour or two on Saturday to make it Opera-compatible, figuring out that it didn't like how I was handling cookies. Opera seems to insist that you set the cookie header used for subsequent AJAX calls with the DOM's document.cookie property, and no other way will do. Fine, whatever.

It took all day Sunday to get the MSIEs in line. They are turds and I hate them. Their only redeeming feature in this matter is the surprising fact that both 6 and 7 had the same problems, and I got both to work simultaneously.

The IE problems, each of which took far too long to isolate:

  • IE silently ignores requests to add <tr>s to <table>s via the DOM appendChild method. You must instead add them to a <tbody> which is itself a child of the table. Seriously, what the fuck; who uses <tbody> normally?

  • IE caches the result of each AJAX call, and subsequent calls to that same URL (a very common polling pattern) will result in no request at all being made, but instead a silent return of the old value, so it looks like it made a request. You can get around this by (meaninglessly) adding the current time to the URL's query string, or adding a bogus If-Modified-Since header to the request. (On the plus side, this made me finally add decent logging to my server-side daemon, since I couldn't figure out what was going wrong without it.)

  • For the life of me, I couldn't use any Prototype.js methods to refer to elements that had been added to the DOM tree since the document's original rendering. I finally punted, adding such elements to some global arrays upon creation (with apologetic code comments noting how fucking stupid MSIE is) and just accessing those instead later on.

Working with Microsoft software as a developer makes me so angry. It makes me angrier than thinking about the current American government and its foreign policy, because I usually burn through that in a few minutes. But working with Microsoft means wading around waist-deep in a vat of pure shit for hours. It gives me a hate that can last for days afterwards. I really hope I can minimize exposure to it as the web client project moves forward.
prog: (khan)
2007-09-16 08:46 pm

I have completed today's tasks on-deadline.

And now I am going to go drink until I can say "Microsoft Windows Internet Explorer" without shouting FUCKING in between each word.
prog: (Volity)
2007-08-17 12:43 pm

ETech 2008?

Seriously considering applying to ETech 2008's CFP. In fact, I have already written my (exactly) 100-word bio first, which with my ego is basically like eating dessert first:
Cut for flagrantly rampaging ego )
I can objectively state that applying would be a very bold move. I'd want to highlight the web client during the presentation, because it will have been in beta for several months by then - but at the time of my application, it's not even in alpha yet. On the other hand, everything's going to plan so well (and ahead of schedule) so far, it doesn't seem outright foolhardy, either.
prog: (Default)
2007-08-15 10:25 am

Midweek stuff

Zarf lent me Hofstadter's new I am a Strange Loop yesterday. Between him and the reviews I've read the consensus seems to be "Eh... it's worth reading." It covers the same ground as Gödel, Escher, Bach, examining how consciousness can emerge from unconscious material, but is both shorter and much more explicit about it - GEB is often seen and even loved by its readers as an almanac-style funhouse of art and logic not arranged around any particular topic, and though the book helped set him for life Hofstadter has always regretted its unintended ambiguousness. I read two chapters of the new book in bed last night and am already convinced that if nothing else it contains enough new angles to stay interesting throughout, so I'm cool with it.

The review I read suggests that I can expect him to spend a lot of ink alternately and mourning his dead wife and thrashing John Searle's anti-AI arguments, which I've already seen him do years ago in Le Ton Beau de Marot (highly recommended reading, by the way, if you haven't heard of that one). But this time he's doing it in a GEBby context and not a linguistic one (though these are certainly related to begin with) so we'll see. If I trust any author, I trust this one.



I touched base with my client on Sunday evening, reminding them that they gave me zero hours of work last week but adding that this was OK given my webclient push, and I wouldn't complain if they chose to withhold for another week. The response has been uncharacteristic silence, such that I've been peeking in on their ticketing system just to make sure that I hadn't missed anything. Well, I'm getting what I asked for.

I don't think that I've overtly noted here yet that doing paid web work on the side of Volity has been good for my own project. Facing and overcoming challenges that don't originate from my own needs forces me to learn new web programming and styling techniques, broadening the arsenal I bring to Volity webwork. In June, for example, paid work encouraged me to get up to speed with CSS - all the books I own on the subject are from 2003 and therefore nearly useless - and for this reason the web client has a beautiful layout without a single <table> involved (except for the actual tables).

Yes, I still have to see how badly it fails on MSIE6. If it is full of fail I will be tempted to just lock that damn thing out and require MSIE7, or the non-shitty alternative browser of your choice. We'll burn that bridge when we come to it.



Speaking of 2003, I've been thinking lately that as of this summer I've been working on Volity for the length of a typical American undergraduate education. All that time on a single project! It makes me feel a little panicky until I look at it sideways and figure: yeah, that's about right, actually.



I can't wait to show y'all the webclient prototype. I can't until [livejournal.com profile] daerr builds a proxying solution that will let the webserver freely make AJAX calls to my Jabber connection broker daemon. For the time being, I have been having the daemon itself serve all the static HTML bits as well as the Jabber stuff, and just hit itself with the AJAX. This... does not scale. Heh, it might scale actually but it would be utterly unmaintainable and I don't even want to feint in that direction, not even for the sake of a demo.

My voice of experience speaks here. This is how paranoid I am of a "oh, we'll just do it this way for the time being" hack becoming the permanent solution. No, I'm not giving that an inch.

I have been threatening to just shoot a video of the alpha running, and I just might resort to this if I can't do anything else this week.



Heh, the Diesel finally put up polite-but-firm little placards in its booths asking that they be used only by parties of three or more during "busier hours". It's 10am now and I see only couples and singles-with-laptops. Wonder how well this works when it's time. Oh, here comes a guy now... and he reads the card... and he keeps walking! Wow.

I used to stretch out in the booths by myself all the time, but at some point I lost the ability. The last time I did, earlier this year, I thought I could feel waves of resentment beating down on me from everyone else. I might have even picked up and moved to a table before I left!

Twice, attractive young women I do not know have asked to share the booth with me, and this always gives my day a little lift but it's probably a weak reason to seek to sit in the giant booths alone. I wonder whether mutual strangers might now recognize the look of argh-I-can't-sit-anywhere in each other as they wander around the cafe, and propose to become one-time Booth Buddies.
prog: (Default)
2007-08-13 02:12 pm

Attn metahacker

I am having a good day.

In the wee hours this morning I played two games of Tic Tac Toe against a bot with the Volity web client. The application is not in a state where anyone other than me can use it, but we have nonetheless acheived target depth. It's all lateral digging from here. I IMed [livejournal.com profile] radiotelescope around 1a.m. to share the moment. He said "WTF, mid-August?" and told me to go see a movie.

I've suffered discomfort from zits growing deep in my left ear over the past couple of days, and they burst while I was showering this morning. It was briefly horrible, but after spending a while mucking the ear out with Q-tips I felt my old self again. If it weren't for [livejournal.com profile] classicaljunkie I probably wouldn't have had any Q-tips on hand. Truly, this is what love is all about. (Actually now that I think back I originally bought the Q-tips to clean my keyboard. Wev.)

Walked to Kendall to squirrel the spoils of my July contracting work into the one ATM in town that accepts deposits for NetBank. Buoyant and listening to favorite podcasts, I thought upon Zarf's advice and looked at the movie theater, but they had no noon shows, so instead treated myself to lunch & beer at the CBC. I think I ticked off the server when I changed my mind about outdoor seating and asked to go inside instead; though the restaurant had few people in it he sat me next to a couple of grumpy people talking business, ignoring their cranky protests about why I had to sit there. I listened to my iPod and enjoyed my meal anyway, and said hello to [livejournal.com profile] modpixie on my way home.

Now it's pouring out even though I was walking through the sunshine. Who knows!
prog: (Volity)
2007-08-11 04:24 pm
Entry tags:

Odd week

My client had no work at all for me this week. I am not complaining, though. They gave me a lot of work last month, netting me enough money to let me coast a little while. This dovetails well with the fact that I've got a lot of Volity work to do; my timetable gives me another week to put the webclient into its first alpha release. I know just what to do, and it's a joy, but it's still a lot of work. No longer deep in the caves of headless library work, though; I now have enough of a UI built to support rapid, iterative development. Everything looks to be on-time.

For those of you following my webclient adventures, I say with confidence that when you see this shit you're gonna flip out. The first alpha will let you play only one game (tic tac toe) and the table UI will be only half-built (compared to Gamut's) but the game will nonetheless happen in a really-real full Volity environment, and the presence of HTML will help me point out what the cool features are right on the page, much as I did with the Testbench demos a couple of months ago.

Side-note, because I don't think I was explicit about it here before: [livejournal.com profile] daerr's discovery that SVG UIs work just fine in my web environment is very very big news, since it means that all current Volity UI work can be ported over to the web client with minimal work. It also means that people attracted to the Volity project because of SVG won't feel disappointed that we're moving away from it - coz we're not. True, HTML+SVG UIs will only work on fully SVG-compliant browsers, which AFAIK means Firefox 2 and Safari 3, but I consider this Perfectly Acceptable.
prog: (galaxians)
2007-08-05 11:47 am

Some nice things

Wrote a monologue for Jmac's Arcade yesterday, and hope to record it today. I've had the idea for this one since March, but then I did some Gameshelf work and then the webclient attacked and I haven't done any video work since.

However, last weekend I put together an aggressive but sane schedule of webclient milestones covering the next couple of months, and so long as I stay ahead of it I finally feel like I have time for my most neglected pillar. This is very good; I hadn't been been working by any schedule other than my two drop-dead deadlines (Sep 30 for live Tic Tac Toe demo, Dec 31 for full client), and that only gets me into work-or-feel-guilty mode. More fine-grained deadlines gives me a much more palpable sense of progress, and room to stretch in other directions.

Come Monday it'll be back to the Volity mines for another few days, though...

Dropped the Gameshelf crew a note last week about all this, too. I hope that producing another Arcade will whet my appetite to pick the show back up. Been considering sticking an audio news segment onto its RSS feed, just to keep it warm. We'll see.

Urgh, also in a stickyish situation coz the song I wanna use for this Arcade's BGM is by a local band (Rat Club) who hasn't updated their website since January and whose email bounces. They have a MySpace page and I'm tempted to get a MySpace account just to ask them if I can use the song. I'm further tempted to just try using the song anyway if I can't reach them, covering it with all appropriate attribution and hoping for goodwiil. It's pretty perfect for this piece.



Picked up Mario Strikers Charged a couple days ago, arguably the first "real" game (versus a discful of minigames and unlocks) for my Wii. It's a soccer game, and the followup to the original Mario Strikers for Game Cube that nobody heard of because it was for Game Cube. Haven't played enough to really get an impression of it yet; it's not quite as pick-up-and-go as Mario Kart but it isn't far off the mark either. The A button passes, B shoots, C fires off whatever power-up you just picked up, and everything else is an advanced technique that you can ignore at first. But it's not yet clear to me where the power-ups come from (it's nothing as obvious as running over "?"-boxes), and the action can get confusing pretty quickly.

The game encourages cooperative play, supporting two players to a side, and I look forward to doing some of that. Very interested in its internet play as well, so please let me know if you get a copy too.



I've been making coffee again, and generally eating breakfast produced in my own kitchen. Still hitting the Starbucks across the street for my afternoon jolt, though.
prog: (Volity)
2007-07-19 11:54 am
Entry tags:

Volity progress

Put a lot of work in for my pays-me-money client on Mon/Tue, but had ants in my pants about Ricky's visit taking up all my time this weekend, so broke pattern to work on the web client yesterday. While [livejournal.com profile] daerr is looking into the best solution to our proxying issue (so the necessary AJAX calls to a server running on a different port will work), I've been working on the JavaScript side of things, writing client-side code that talks to the Jabber-interfacing daemon I wrote last month. Yesterday got a basic AJAXy roster working, proof-of-concept enough to let me drop that and then attack the much more interesting problem of making a game table work.

Having tables done by the September deadline is looking real good. And it won't be a hardcoded hack, either; I'm fixing to implement the entire process, from the initial "new_table()" RPC sent to the game parlor (Volity's official tic-tac-toe test parlor, in this case) through the UI-file discovery and download process and finally to the full game-playing interface itself. And it's to the project's benefit that, hey, there are three web-compatible Tic Tac Toe UI bundles available now; this will encourage me to make user-driven UI-switching work.

What will not be done by the start of Q4 are the less interesting bits that are still necessary before we can call the whole deal beta. It will involve returning to and polishing up the roster, for one thing. It's kind of dopey that once the tables work, our next step will be to basically and blatantly rip off GTalk's interface for floaty chatty divs in order to support basic player-to-player messaging. But really, I know of no cleverer way around the problem. You will be able to talk to other players sitting at a game table with you, though; that's a fundamental part of any table's UI and I can't imagine cutting that corner.
prog: (Default)
2007-07-18 11:18 am

More dumpage

Picked out new glasses yesterday. My insurance gave me a good discount, so I opted for an expensive and tiny pair of jet-black titanium wire-frames. When we went last week [livejournal.com profile] dictator555 had me right on the verge of picking up a phat black geek-chic number, but a chorus of alternate fashion consultants I had since sought drowned her out. (This started when the dictator took a cellphone picture of me with the phat frames in the opt shop and sent it to [livejournal.com profile] classicaljunkie, who then called me from the airplane to ask if it was a joke.)



On [livejournal.com profile] rikchik's advice I also visited the local Brooks' crafts aisle to buy 100 leetle zip-lock bags for a dollar and change, perfect for storing loose game bits. I immediately deployed a couple dozen to reorganize my BattleLore legions, storing between one and three complete multi-figure units in each baggie (one unit type per bag), and then dumping all of them back into the box. With those ridiculous plastic trays out of the way, the box now closes completely. Whee



Almost definitely not going to Gen Con, since I just missed the pre-reg window, making securing hotel space much harder and more expensive. It's too bad, because it didn't occur to me until way late to ask gamer-fiend [livejournal.com profile] classicaljunkie if she might want to go, and when she said yes, my answer is like "Well... ya can't." Feh.

Still, my mumbling about weird timing WRT the web client is still all true. When it's in beta you better bloody well believe I'll be tromping all over the convention circuit, OK?



Last night's HoRGN was fun, though the only game I played was Toppo (which I won once, woo). Delighted to meet [livejournal.com profile] jaq, who has just relocated from way out yonder to the Boston area.

Also got to play with an iPhone, and was excited to see that its version of Safari can run the DHTML Testbench demo just fine (I didn't think to check out the SVG version that [livejournal.com profile] daerr just posted, though). The iPhone will surely be my next phone, but I cannot say when that will be. Almost certainly not the device's first generation.
prog: (Default)
2007-07-16 12:58 am

Too hermity.

Hey folks. I didn't go to Origins; the Andys didn't wanna and the timing just didn't seem right. I am giving myself another day or three to decide if I wanna go to Gen Con. I don't have a really solid reason to go, since Volity is in such a weird transitional state. Networking is good, but until the web client's in full beta it all feels uncomfortably premature.

In any case, the Great Work continues. Today saw [livejournal.com profile] classicaljunkie off to Houston as I have for the last N Sundays (which means I stand in my doorway and wave bye-bye as she schleps her stuff away) and then turned to work on the web client. Right now the going is rough, and unavoidably a little frustrating, as I'm finally starting to interface my crazy library stuff with the website. Who knew, for example, that you can't make AJAX calls to a host other than that of the website making the call? Er, well, you probably did, sure, but the issue's never come up for me before, and since prototype.js treats this with silent failure[1] I got really hung up on it. A phone call to [livejournal.com profile] daerr resolved this.

I think I need to mix up my life a little more. Monomania is expensive, especially when you're working alone (or have the unavoidable perception that you're alone, even if you're not really). Focus is great, but there's a subtle gradation of diminishing returns, and sometimes the march can turn into a slog hours or even days before you notice. There's a constant assumption that whatever you could do is less important that The Project, and so you keep working on it, even when you really don't wanna. (Or worse, and too frequently: you really really don't wanna, and so you do something truly time-wasting instead.)

Right now I enjoy some variety because of the contracting job that I'm obligated to do, and I have no trouble letting myself context-switch into it three days a week. But that's still a task with the morphology of sitting on my ass planning and typing code, and anyway, that's my day job. It's also the only part of my week-by-week schedule from a couple months ago that I've stuck to; since writing that plan, I have spent exactly zero Sundays on video projects, for example.

OK, listen: Tomorrow, monday, after work, I'm gonna map out a plan for the next two months. On the Volity blog I called a shot that had me hitting a certain milestone with the web client by September 15. I'll scatter some subgoals between now and then, and then see if that doesn't show some places where I could fit in some other activity as well.

[1] No, I didn't try setting up an onFailure handler. But really, this seems like a job for exceptions. And now you'll explain to me how the architecture makes that impossible, sure, sure.