Archive for the ‘Computers’ Category

random links: january 26, 2007

Saturday, January 26th, 2008

stupid gmail

Saturday, January 26th, 2008

I do not understand the way Google handles their accounts. I have (well, had) two Google accounts: a gmail account (david.b.carlton) that I never used and another account (associated to my public e-mail address) that I use all the time for reading blogs. On the recommendation of some friends, I decided to start using Google as a spam filter, forwarding my mail through their servers; to that end, the natural thing to do would be to unify those accounts, tell the gmail account to forward non-spam mail to my public e-mail address, and bask in the drastically reduced volume of spam that I receive. (Along with some procmail rules on my public account to route e-mail through gmail unless gmail has seen it already.)

Well, no. Some issues that turned up:

  • You can’t unify an existing gmail account and an existing Google account associated with a non-gmail e-mail address.
  • You also can’t do that indirectly by deleting the gmail account and then creating a new gmail account with the same e-mail address as the previous one but with the new gmail account linked to the existing Google account: even if you’ve deleted a gmail account, you (or anybody else) still can’t create a new gmail account with the same name.
  • If a gmail account is linked to an external e-mail address, gmail gets extraordinarily possessive of the latter e-mail address: it refuses to forward e-mail to that address, and it also refuses to forward e-mail that was originally sent from that address.

The upshot is that, after an hour and a half of frustration, I ended up where I started: I still have a Google account that I use all the time linked to my public e-mail address, I have a separate gmail account (which is now forwarding mail to my public e-mail address), but that separate gmail account has a name that I like somewhat less than the name of my first gmail account. (Or, for that matter, than the name of a second gmail account that I created but was then unable to use for the purposes that I wanted.)

I’m actually a little sympathetic to their behavior on the first two issues: the first smells to me like legacy implementation headaches, and I can see how their decision on the second issue avoids a certain class of problems. But their behavior on the third issue just seems like a conscious choice of bizarreness: why refuse to forward to the one external address that I’m guaranteeing is mine? Just because I have an account with Google to use their services doesn’t mean that I’m handing all control of my e-mail over to them…

random links: december 31, 2007

Monday, December 31st, 2007

careful with your layouts

Friday, December 7th, 2007

I recently turned on “fast user switching” on the Mac, and just discovered that the login dialog keeps the previous user’s keyboard layout, instead of reverting to the system default. Which is a problem if the previous user uses Dvorak, the new user doesn’t, and the new user is typing in a password so she can’t even see that something’s gone wrong by looking at the characters that appear.

In fact, switching layouts and then switching users doesn’t work, either: it goes back to Dvorak! Weird. Changing to the Finder, then switching layouts, then switching users works.

To be fair, I can see how this sort of usability bug could slip through testing…

upgraded to leopard

Sunday, December 2nd, 2007

I was in an Apple store the day before Thanksgiving to get a replacement power brick (the cable on mine had started to fray), and decided to pick up a copy of Leopard while I was there: the .1 update was already out, and while I was worried about the keyboard freeze problems, it didn’t seem widespread enough to terrify me. So I installed it over Thanksgiving.

Works fine. I gather there’s nice stuff under the hood, but I don’t particularly care about any of it yet. (Though I may buy a USB hard drive for use with Time Machine - there’s nothing irreplaceable on the machine, but it still feels like the right thing to do.) The extra eye candy is stupid, and in particular I could do without the new low-contrast “important folders” design, but I’ll live. The guest account is a nice idea, and my father used it that same weekend.

The autostarting X server is an interesting idea, and I like it if for no other reason that it means that I only start X if I ssh to another machine (which I only do about half the time), reducing the number of times that I have to tell the computer “yes, I really do want to shut you down, even though an apparently incredibly precious X server is running”. Though I could do without the new Safari warning when I have the temerity to shut down the computer if I have multiple tabs open in my browser.

Nice to see SVG support in Safari. There’s a bit of focus weirdness that interferes with my Reader workflow; I hope some of that gets fixed, but it’s not a big deal.

Not really sure that I’ve gotten $129 worth of value, but not a bad experience.

stylesheet tweaks

Thursday, November 8th, 2007

Okay, my stylesheet is mostly back: I’ve turned off comment formatting idiocy, restored my list bullets, turned off double justification, bumped the text back up to a non-microscopic size. I left the widths as-is, though, this time: I wish it were a bit wider, but I can deal with it, and it doesn’t look so bad on this computer. (I’ll see what it looks like on the mac.) Hmm, looks like I reordered the sidebar last time; I certainly don’t need 38 months of archive links right at the top of the sidebar, do I? (It would seem that I’ve been at this for a while; many thanks to all of you for putting up with me!) I’ll go move that, too.

One of these days, when I have some free time, I’ll go and look for a new theme. Though the last time or two when I did that, I just ended up back where I started. Which is okay, nothing wrong with the default one.

upgrade fun

Thursday, November 8th, 2007

I just upgraded to Ubuntu 7.10. Seems to have gone fine; the fancy window decoration stuff still doesn’t work, but I still don’t care. And, in a fit of industriousness, I’ve just upgraded the blog to WordPress 2.3. (I even decided to switch to managing the checkout via subversion, just for kicks.) Now time to go and fiddle with stylesheet details, I guess…

random links: november 5, 2007

Monday, November 5th, 2007

Also, some notes to myself: these are links that have stuck around as saved items in my blog reader where I can’t imagine what will either trigger me to act on the information therein yet where I want to keep them around somewhere. So I’m moving them here.

finished converting dbcdb to ruby

Sunday, October 28th, 2007

I’ve finally finished converting dbcdb from Java to Ruby. I’ve been using the Ruby version of the tool to write the database for about four months, but I’d still been using the Java version to write the web pages.

Nothing too deep going on here; I was actually done with everything but the indexes as of the middle of September, but I hadn’t gotten around to generating the indexes until this weekend. (Or do people prefer that I spell it ‘indices’?) We’ve been busy with some extra event every single weekend for about the last two months; combining that with wanting to learn Japanese, working through Metroid and Picross, and occasionally working on the game with Miranda means that, unless I’m feeling extraordinarily disciplined, dbcdb falls by the wayside. But we had nothing planned this weekend, so I seized the opportunity.

The new code is a little more than half as long; the acceptance tests also run almost twice as fast. (All that JVM startup takes time, I guess? I don’t think there are significant algorithmic performance variations in the two versions.) Go Ruby, though I’m sure it would be very easy to find situations where the performance goes the other way. Both generate the exact same output, as manifested by running the same acceptance tests on both versions and on, ultimately, doing a diff -r on both outputs from the current live database contents.

What next? There are some cosmetic tweaks I may or may not get around to making; I’m not feeling any urgency on that score right now. I had planned to next convert this from generating static web pages offline to generating them dynamically via mod_ruby; now I’m feeling distinctly less interested in that idea. (Partly because the REST book reminded me of some of the benefits of static web pages, ironically.) I still want to experiment with that at some point, but now I’m thinking I’ll just do that by coming up with a Rails project instead of doing everything from scratch.

So it looks like it might be time to declare this a success and move on. And it has been a success, no question: I’ve brushed up on my Java a bit, dabbled with SQL, learned Ruby, and basically enjoyed myself. So, from a purely didactic standpoint, I’m quite happy.

There is one thing that I’m not happy with, though. I’d originally envisioned the generated web pages as actually being useful in that they’d provide an index into my blog posts: they would give an easy way for people to find all the web pages where I write about a given game, say. And they do provide an index, but it’s not as easy as I’d like: people have to click on the link to the database and then click from there to a search link, and that’s expecting quite a bit from my readers. (Especially since there’s honestly nothing of particular interest on the database web page itself.)

So I’d like to remove one of those links, to compress it down to one level. In this AJAX-aware world, the mechanisms for doing that are pretty well-trodden: write some JavaScript to do the query in the background, and then stick the results in the database web page. And, in fact, it turns out that WordPress can generate an RSS feed of query results, so I don’t have to worry about page scraping and having details change as I upgrade my WordPress installation. (Which I should really do one of these days - I’m still on 2.0…)

One last task, then. Which is made a bit harder than it would otherwise be by the fact that I don’t know how to write JavaScript, I’m not familiar with the DOM model (if indeed that’s the right term to use), and I don’t know how to acceptance test AJAX. But I’m not particularly worried about either of these: like I said, this is a well-trodden path, so it shouldn’t be very hard to find examples that do pretty much exactly what I want to do.

netapp countersuit

Thursday, October 25th, 2007

My favorite bit from my employer’s counterclaim in the NetApp case:

COMPLAINT PARAGRAPH 3:

NetApp is a pioneer in the design of data storage systems marketed throughout the United States and abroad and continues to innovate new advances in data storage technology. NetApp’s patents cover a host of advanced features found in NetApp’s award-winning Data ONTAP storage operating system and Write Anywhere File Layout (WAFL) filesystem. These include fundamental developments in filesystems, data consistency, data integrity, storage management, write allocation, read-only data images (SnapshotsTM), writeable clones, copy-on-write, RAID arrays and assimilation, and file system image transfer. NetApp’s patented features are demanded by customers the world over because they greatly enhance the performance, reliability and ease of use of data storage systems.

ANSWER TO COMPLAINT PARAGRAPH 3:

Sun denies the allegations of the first, third and fourth sentences of paragraph 3 of the Complaint.

I’m not sure we come off completely smelling like roses in this suit, either, but if we’re going to have a patent lawsuit, this is the right thing to do with the gains:

I am committing that Sun will donate half of those proceeds to the leading institutions promoting free software and patent reform (in specific, The Software Freedom Law Center and the Peer to Patent initiative), and to the legal defense of free software innovators. We will continue to fund the aggressive reexamination of spurious patents used against the community (which we’ve been doing behind the scenes on behalf of several open source innovators). Whatever’s left over will fuel a venture fund fostering innovation in the free software community.

Some reading on the subject:

restful music stores

Monday, October 1st, 2007

One advantage Amazon’s new mp3 store has over iTunes: if there’s a song I like, I can just link to it. I believe that the iTunes store is addressible via URLs, but it’s not the same: the URL isn’t sitting there at the top of my browser window, and even if it were, I couldn’t count on my readers being able to do anything with it.

Not that Amazon’s store is perfect: I finished that sentence without finding enough songs that I wanted to link to. (Which is pretty pathetic, given its length.) But at least I now have a source for Herbert Grönemeyer’s music in the U.S.! And it could have been worse: a grand total of one of them (Herr Grönemeyer noch mal) is available sans DRM on the iTunes store.

Some of the latter, no doubt, is due to business negotiations that my poor little brain can’t understand, but much of it is due to the fact that Apple, for its own mysterious reasons, apparently doesn’t sell DRM-free versions of independent music. Which, in turn, I’ve been listening to more over the last couple of years because, when I was looking for new music podcasts, I stumbled upon one that only plays independent music, I’m sure at least partly because the major labels don’t give them any other legal options.

Go addressability; go accessibility.

amazon mp3s

Tuesday, September 25th, 2007

I bought my first mp3s online today; I am very happy to report that I didn’t do it through Apple. I don’t plan to make a habit of it - CDs have served me well for the last 21 years, and I see no reason to stop buying them now - but “And Try” by Ten Days Till is an excellent song, and is unavailable on CD. And is unavailable without DRM from iTunes, and I didn’t feel like signing up for a subscription service just to get it. Amazon, however, has it available without encryption; Amazon now also has a bit more of my money. (Though not very much in the grand scheme of my purchases through them…)

mad at apple

Tuesday, September 25th, 2007

I was quite impressed by Apple’s recent iPod announcements. Most companies, I think, would have been coasting for some time if they had as dominant a product as the iPod. Apple, however, is continuing to push ahead with a constant stream of improvements ranging from the subtle to the groundbreaking. Which is awesome: what I want is for companies to make the best products in the world and then figure out how to make them even better, to continue to open up new possibilities. There were some things that made me wonder - in particular, the way they handled ringtones was so stunningly anti-consumer that I had to assume there was some sort of behind-the-scenes negotiation that caused it to make sense somehow - but all in all I thought it was great.

I started to wonder, though, when I read that their new user interface was quite a bit slower than their old one. I’m all for user interface improvements, but eye candy and UI improvements aren’t the same thing at all, and I’m not nearly as big a fan of Cover Flow as Steve Jobs is. Don’t get me wrong, I’m not against a bit of eye candy, but not at the expense of taking 41 seconds to boot a frigging MP3 player. So maybe I was too rash to assume that they’re doing a constant stream of improvements: maybe this is the sign of the design starting to go off the rails?

And then I learned that Apple apparently is trying to prevent users from syncing their iPods without using iTunes. Which really hit a nerve with me, for reasons I don’t entirely understand. (I don’t have the same emotional reaction to, say, Nintendo trying to prevent me from using their hardware with disks/cartidges that they didn’t press/manufacture.) I think it’s partly a reaction to their going from a somewhat open platform to a closed platform, and partly the narrow concrete effects of their actions. A de-facto monopolistic tie of having 99% of iPod users use iTunes isn’t good enough: they have to make it very clear to us that they’re not seeking to become a monopoly as an accidental outcome of making the best product out there, they’re seeking to become a monopoly because they want power and they want us to know it.

This is where I’m supposed to say that I’ll never buy another iPod again. The truth is, though, that I care enough about having a good interface to listen to music and podcasts that I’m not at all comfortable with saying that. I am, however, actively rooting for them to get their asses handed to them in European courtrooms.

game pictures

Wednesday, September 19th, 2007

Apologies for my recent silence; the cause is a combination of watching movies (well, DVDs, mostly Last Exile) and being pretty busy last weekend. But now I am, for once, caught up with my other odds and ends (i.e. reading blogs) early enough at night to actually be able to write something.

As I mentioned before, Miranda seems to have gotten serious about the idea of us writing a video game. And we actually have been spending some time on it over the last month, mostly at her prodding. So far, I’ve mostly been playing around with programming, while she draws pictures in a notebook. I’d been using rubygame as a programming framework, and I still might stick with it, but it doesn’t have support for sprites at different depths; this is a problem if, say, you want to have a character walk behind a tree. So now I’m thinking I’ll go with gosu: not much documentation yet, but it seems to be able to do what I want, its sample game is extremely short yet fully functional, and when I was poking around its web site, I saw several pages that showed signs of having been edited within the last hour. All good stuff.

So, right now, I’m trying to find time to convert my rubygame spike into a gosu spike; assuming it goes well, I think I’ll go with gosu. But what should Miranda do while I’m doing my programming?

She’s drawn lots of neat pictures, and I’m sure she could profitably continue along those lines for quite some time. But, if you’re doing things incrementally, you want something functional crossing all layers as soon as possible; by now, my programming is coming along well enough that I could imagine using a picture of hers, and she has drawings to give me. So the only thing stopping us from putting the two together (other than that I’m switching development frameworks!) is that I don’t know how to get her pictures in the game!

Given that, the next step is clear: rather than puttering around with game libraries, I should face up to my fears and attack that problem head-on. So when Miranda asked me this morning if we could work on the game this evening, I decided we should start on digitizing her pictures. Fortunately, my brother was kind enough to give us an all-in-one printer/scanner/copier/fax doohicky last Christmas; time to break in the scanner functionality. Which we did, giving us an electronic copy of one of her designs.

Next, a graphics editor: at the very least, we need the backgrounds of her images to be transparent instead of white. I’d considered and mostly rejected Pixen earlier, but hadn’t found anything better in the interim, so I decided to give that a try. Somewhere either from Scott McCloud or Penny Arcade I’d gotten the idea that the proper technique is to take a scanned-in drawing, add a transparent layer on top, re-ink and color the drawing on the new layer, and then hide the original drawing. Which took us half an hour or so to figure out, both of us being new to the software and ignorant about the details of the process, but ended up working out just fine. So the result is that two black-and-white pencil drawings have turned into colored PNG files with transparent backgrounds; I should be able to just stick them into the game (maybe doing a bit of resizing first) and see how they look. Which will be very exciting!

Watching her do this has also gotten me more convinced of the merits of graphics tablets: she was happy to ink in the lines with the touchpad, but I’m sure it would have been much easier with a tablet. I’m not going to go out and buy one immediately, but she’s sticking with the project well enough that my worries that she would lose interest in a graphics tablet are quickly diminishing. (She’s also spent a lot of time playing around with SketchUp over the last few months, incidentally.)

A fun way to spend the hour between getting home and starting dinner.

a pox on both their houses

Sunday, September 9th, 2007

On Thursday evening, I tried to log in from home. My computer got an IP address, but I couldn’t connect to any external web pages.

I fired up a terminal, and did some name lookups; that worked. At least more or less - it gave me an address, but also said something about not getting a response from other name servers. I did some tracerouting to make sure I could reach the host I tried (the server hosting this blog); it seemed to be getting there, so why couldn’t I log into it, or anywhere else?

I looked at the IP address again; it didn’t seem familiar. On a lark, I tried to resolve www.google.com, and got the same IP address. And a reverse DNS lookup on the address claimed that it was assigned to Comcast. I had some other DNS servers around, and tried them; I think (but can’t remember for sure) that they actually gave me a correct address, but a traceroute to that correct address failed.

I rebooted the router and cable modem; no dice. Clearly a Comcast problem; it was late at night, they are doubtless fixing it, I went to bed.

Bad assumption, it turned out: it was a Comcast problem, but it lasted into the next day, and, when I called them, they were blissfully unaware of the situation. It seems that, for no apparent reason, they’d somehow unregistered my cable modem (which I was renting from them!), and the tech I talked to couldn’t reregister it for some reason. Him telling me that it probably wouldn’t take more than 48 hours to fix didn’t exactly lighten my mood.

Next morning, I tried again; it still didn’t work. At least if I went through my router - if I plugged in my computer directly into the modem, it worked fine. So maybe they reregistered my cable modem but screwed up something else? Of course, it’s possible that my router decided to break at exactly the same time as Comcast screwed things up - it hasn’t exactly been a paragon of stability - but it seemed unlikely. Still, I spent a while getting myself very familiar with the router’s administrative interface (its idea of “diagnosis” turns out to be an option to let me either ping or traceroute), and even reset it to its factory settings; no dice.

So I got on the phone to Comcast. They, of course, tried to blame my router. I talked to the first person’s manager; she insisted that Comcast wasn’t even capable of filtering based on MAC addresses. So: maybe it really is a coincidence? Time to get on the phone to Linksys, I guess.

And I did; it was a good thing that I had a copy of Picross at hand to amuse myself during the wait times. During which time, they made me listen to stuff that I found actively insulting. Does anybody really think that telling me that their support is allegedly “award winning” is going to make me feel happy to be on hold? The only mental model in which that makes sense is if they think that people will be happy to be on hold because they’ll be reassured that at least the service at the end is worth waiting for. This might make Martians feel better - I wouldn’t know - but, for us humans, it doesn’t work that way. All they’re doing is showing that they realize that they’re treating their customers like crap by forcing them to wait that long, and are even more clueless than normal about what to do about it.

I eventually got off hold and talked to somebody. Which was a bit of an adventure: even though she had my serial number, she wanted me to also read her a version number, which was nowhere to be found on the bottom of my router. She wanted to know what kinds of computers I was using; after refusing to answer the first time, I let slip that I was using a Mac. Which, it turns out is unsupported; after I pointed out to her that it was their god-damn router that couldn’t communicate to the cable modem, and that I was using their own administrative web interface, she relented and agreed that she could maybe provide support for the web interface.

At which point, she actually had useful suggestions: go to the Setup tab, go to the sub-tab about managing MAC addresses, and tell the router to clone my mac’s MAC address. Why didn’t I think of that myself? Well, because I didn’t see the sub-tab on the interface! But it was such a good idea that I pulled up the raw source of the web page, figured out what to type in on the address bar to get to that sub-tab. No “clone MAC address” button to be found, but there was a form to enter a MAC address by hand; an “ifconfig en0″ later, I had it in hand and was soon happily web surfing.

So Comcast can’t filter on MAC addresses, eh? Looks like bullshit to me. Or maybe not - at this point, I thought of rebooting the cable modem (which I’d done the previous evening but not that morning); after that, I could get online with the router broadcasting its own MAC address. Admittedly, I should have thought of doing that myself - I’ve seen that solve problems before - but Comcast should also have been aware of that failure mode and told me themselves to do that.

How do normal people deal with this? I’m annoyed at Comcast, but their initial phone support wasn’t too bad. But I don’t think that normal people will be obstinate enough to make it through the rest of the solution chain, or be geeky enough to read raw HTML and figure out MAC addresses if that’s what they have to do to get the router to behave. As is, I was very close to buying a new router because of this, when the router wasn’t the problem at all.

So: the scorecard. I’m mad at Comcast for screwing up my access, for not being aware of it, for not being able to fix it quickly, for not diagnosing the second problem, for shedding blame. I’m mad at Linksys for building an unreliable router, for long wait times, for insulting recorded messages, for trying to refuse to support their own product. I’m not thrilled at Scientific Atlanta, because I had to reboot the cable modem; I’m not thrilled with Apple, because it’s entirely possible that the web interface problem was a Safari bug instead of a Linksys bug. (I haven’t looked at the web page in detail.)

Grr. At least it’s over with. The rest of the weekend has been quite pleasant, at least…

two music sequencer toys

Sunday, September 2nd, 2007

I ran across a couple of video demos of interesting music hardware recently. Both are basically sequencers with unusual user interfaces:

First, Tenori-On. (Found via GayGamer):

And Reactable. (Found via Lost Garden, which throws in some neat ideas of its own.)

I don’t have much to add; I’m curious how they work in practice. Especially Tenori-On: it seems to have a more limited set of choices than Reactable, but the output is also far more interesting to listen to / watch. Is it really that easy to produce good-sounding music from it, or is the video just the result of somebody who knows the device inside and out?

Incidentally, one side effect of my going through tons of others’ posts about videos is that it’s now clear that I prefer embedded videos to being requested to click on a link to get through a video; I’ll switch to embedding videos myself whenever possible, on those few occasions when I want to refer to one.

unexpected benefits of tagging

Sunday, September 2nd, 2007

As I mentioned before, I’ve started tagging my saved items in Google Reader. I did this partly because of a general worry about the saved items getting out of control, but also because there were three specific categories of saved items that I was afraid were getting buried: items that I wanted to read but didn’t have enough time/focus to read right then, items that I’d commented on and wanted to read others’ comments on later, and items that I wanted to blog about in the future. I had another ten or so categories that I came up with, but I didn’t seriously expect to get through the items in them: their purpose was to make it clear that I had 60 or 80 or whatever videos saved up to watch, that I was clearly accumulating more faster than I was watching them, and I should just delete them now.

The three short-term tags have served their purpose quite well; I’m definitely glad I took up tagging for that reason alone. What was unexpected, however, was an unexpected benefit I’ve gotten from the other categories. (Or at least an unexpected side effect - it’s not clear that my spending more time web surfing should be categorized as a benefit.) Namely: when I was finished reading through my normal feeds and didn’t feel like doing something else, I started going through my saved video items. (Because that was the tag that I was accumulating the most new stuff at the time.) And what I found was that it actually wasn’t hard to go through the videos faster than I was accumulating them.

When I see a blog post with a video, my mind had been thinking “that will put a dent in my blog reading time”. And it is true that watching a video takes longer than reading a normal blog post. But it doesn’t take that much longer: most of the time, I stop watching after 30 seconds or so, and most of the rest of the time it takes less than 5 minutes to watch the whole thing. (And curses to people who embed videos in a way that doesn’t show how long they are.) So it’s not that hard to go through 10 or 15 or 20 of them in half an hour; after doing that a few times, most of the category is cleared out.

It’s not completely cleared out: there are still 23 items, typically ones that will take a while to watch but that, I suspect, are worth it. Of those 23 items, however, a grand total of one of them is newer than my blog post announcing the advent of these queues. So I’m managing to keep the queues quite well under control.

Or at least that queue: if I’m concentrating on clearing out videos, that probably means that other queues are building up? To some extent, that was the case, so next I turned myself to the queue of flash games. Which, fortunately, hasn’t been building up at a fast pace recently - Game | Life hasn’t been writing about flash games very often recently - but there were still a lot that had built up. (Incidentally, if you’re looking for a flash game to play, check out the Game | Life logo!)

Flash games are potentially a worse problem than videos - most of the time, you know how long a video will take, but who knows how long it will take to evaluate a flash game? It turns out, however, that the answer is “not very long”: in most cases, it only takes a minute of play time for me to decide that I have something better to do. So now the queue is down to 15 games, of which only 2 are relatively new entries to the queue. (Most of the stragglers are adventure games.)

The flash games queue was actually rather disappointing: I enjoyed watching many of my saved videos, but I didn’t enjoy playing almost any of the saved games. I would like to think that there are good flash games out there that I’m missing, games that are equal in quality (if not duration or production values) to good commercial games, but I’m just not seeing it: there is currently only one flash game author whom I particularly like. (I should blog more about his games one of these days.)

So: two long queues attempted, two successes. Next, I turned to the category “many-links”, of blog posts referring to lots of other pages. The same story as before: yes, it takes longer to read such a post as a normal blog post. (To be specific, if such a post has N links, it takes about N times as long!) But it’s not an unmanageable amount of time, or anything: I’m still going through this category, so I have 43 items saved, but none of them are new, and I see no reason why I shouldn’t be able to get this category down to 0 items without too much work.

This is the one place where I’m using multiple tags. Say that, for example, I think the second link in one of these posts is worth blogging about. When that happens, I’ll replace the “many-links” tag by the “blog” tag. But that’s not good enough - it might take a month for me to have enough bloggable items saved up to make a post, and by then I’ll have forgotten which one I wanted to blog about. I could add a more specific tag, but that will screw up tag completion and such. What I’ve decided to do is to tag the post with both “blog” and a number (e.g. “blog, 2″), where that number is the number of the link that I want to blog about.

I still have a ways to go (I currently have a total of 194 tagged items, while ideally I’d reach a steady state of under 10), but the contours seem clear by now: once I break things into categories, the saved items start dwindling. I’m actually curious if the categories themselves matter: would I have the same effect if the tags I used were just the days of the week? Not entirely clear: maybe I learn something about how to efficiently process video posts by focusing on them for a little while, but maybe not. It may well be the case that some of the tags will prove resistant to this process: in particular, I’m worried about the “long” tag. I doubt it, though: my bet is that I’ll be down to 50 items in another couple of months, and will be down to 10 items in half a year.

Incidentally, Google has fixed one of the UI flaws that I whined about before: they now do tag completion based on the start of the tag, instead of completing from the middle of the tag. But they still insist on defaulting to showing me unread tagged items, which continues to make no sense to me.

random links: august 26, 2007

Sunday, August 26th, 2007

that’s creepy

Sunday, August 26th, 2007

I just accepted an invitation from a coworker on LinkedIn; when I did so, it presented me with a list of “People You May Know”.

The creepy thing was that I do in fact know about half of them, but I can’t figure out how LinkedIn knows that. If it could go through my address book or e-mail, it could find those names, but I would hope that my web browser wouldn’t have access to my .bbdb file or my Gnus save folder, and even if it did it wouldn’t know what to do with them. (At least the former.) Many of the names are familiar from Yahoo groups; do they have some deal with Yahoo where they share that information? Is there some other mechanism that I’m missing? They could try crawling from my web pages, but I don’t see how they’d find most of those names that way, either. Or they could just search the web in general for e-mails where one of us replies to the other? Very odd.

game development

Monday, August 20th, 2007

For the last several months, Miranda has been repeatedly talking about ideas that she has for a computer game. I idly encouraged her without thinking too much about it; recently, however, she’s been actually filling up notebooks with designs for the game, so it looked like time to start getting serious.

She doesn’t show any particular interest in actual game programming, so we’ve decided that I’ll do the programming while she’ll do the art and game design. Which raises two technical questions:

  • What’s the best environment for programming in?
  • What’s the best way for her to generate sprites?

Both of which seem like pretty obvious questions, which you’d think would be easily answered; not so, it turns out. (Thought I’m still quite open to the possibility that I’m dense or clueless.)

For the first, there are various C++ libraries and Java libraries out there. But I don’t particularly feel like starting a new side project in either of those languages right now: if there were some dominant library in either language that everybody agreed was wonderful, than great, but otherwise I’d rather try something else. I’ve heard a few mentions of pygame; I may actually end up using that.

The frustrating thing is that there is, actually, one obvious language to use: Flash. There are zillions of existence proofs that it’s both a suitable language for novice game developers and a platform that can be used to develop quite professional games. I’d certainly rather use an open source platform, but there’s something to be said for the democratic effect of a language that allows you to easily publish your game and make it accessible to billions of people.

The problem is that it costs seven hundred freaking dollars. This is rather more than I’m used to paying for software. (I was going to say about seven hundred dollars more, but I’m happy to spend fifty bucks on a video game.) If it were fifty bucks, I’d feel guilty about it’s non-freeness, but I’d buy it. If it were a hundred, I’d think about it but do more research. But seven hundred dollars? Well, maybe, if Miranda and I are still into this in a couple of years, but no way I’m spending that right now.

I have to think that Adobe is missing some sort of market segmentation opportunity here. There are many people for whom the value of the product is (much more than) seven hundred dollars. And then there are people like me for whom the value is rather less than that. The marginal cost of the product to them is low; if they could find a way to produce, say, an introductory version that I’d be happy with, it would be, to some extent, free money for them. And once I got hooked, they could get me to upgrade to a better version.

Eventually, I stumbled across rubygame. Which looked pretty primitive but possibly functional enough to be worth a try. So I downloaded it yesterday; the C extentions compiled with no hassle, and the demo “game” they provided, while not much of a game, ran just fine.

So I had a lot of fun the last two evenings combining that with the aptly named “Miraculously Flexible Game Prototyping Tiles” from Lost Garden. Yesterday, I assembled some tiles into an environment; today, I added a character that can move around the environment. Extremely bare bones, but it all works fine, and I can see how I should be able to develop it into a game that expresses many of Miranda’s goals.

I’m still not sure if I’ll stick with rubygame, but I’m sure that much of what I’m learning will transfer to other environments. And it really is neat to see pictures pop up on screen.

So now I have to replace those pictures with sprites that Miranda has designed! One advantage of having somebody else’s tiles to start with is that they give me some design parameters: so I need to generate tiles that are 100 pixels wide, 170 pixels high, a certain proportion of which is boundaries. (I’m also willing to consider entire room backgrounds that she might draw, but never mind that for now.)

How should she generate the tiles, though? For now, I’m telling her to draw things on paper. My brother gave us a combo printer/scanner/copier last year; we haven’t used the scanner yet, but we should be able to scan in images using that. Then we’ll need to shrink them to an appropriate size, and touch them up.

But what are the best tools for that? Everybody talks about GIMP, but I’m not at all convinced that it would be a good fit: it’s complicated enough that Miranda gets scared by it (and, actually, I find it to be more than a bit much), and all its its complication is pretty much irrelevant for us. Honestly, I just want a simple drawing program that can generate PNGs and that makes it easy to get pixel-level control when necessary; that’s about it. There are probably features that we’ll want in the future (e.g. the ability to handle layers), but that’s the core that I want it to be focused on.

And I’m having a hard time finding the right solution. (Admittedly, I’ve only put in a couple of hours of search, so I could be missing something.) Googling turns up lots of possible choices, but nothing that everybody says “this is great”. Pixen looked good, but it crashed a few times when I tried it.

And, actually, maybe I shouldn’t be focusing on editing pixels - maybe I should be looking for vector-based solutions instead? This is all new to me…

For that matter, maybe I shouldn’t be focusing on software at all. The last couple of years have certainly taught me something about the importance of input devices; maybe I should buy Miranda a graphics tablet? I’d been assuming those were too expensive to contemplate, but actually the low-end Wacom models don’t look that bad, and they come with some software that might do the trick. Hmm, that’s a real possibility; I’m not going to buy one now, but if she sticks with the game project for a while, maybe I will get her one.