Saturday, February 27, 2010

Loving "Baccano!"

Things I love about it.
  • The characters are colorful -- "Yeah, that was impossible. At least we did the next best thing, stealing the entrance!" "Guns? Guns? I hear guns! This is getting exciting! This is getting exciting!"
  • The dialog is a blast -- "YesYesYesYesYesNoNoNo, Still no, Hell No!"
  • The animation is excellent -- See Ladd Russo's initial fight in the dining car.
  • The story presentation is a blast -- Three stories presented concurrently, containing some common characters. Many scenes get revisited from different characters' perspectives. Most of the story is presented out of chronological order; if it weren't different parts of the stories would spoil parts of other stories.
Other notable components:
  • Set in the late 1920s/early 1930s.
  • There's a lot of violence. You may or may not enjoy it.

Friday, February 26, 2010

A realization...

Rather than get a new domain for each idea I may or may not complete, I should get one short domain, and set up all those ideas on subdomains.

Wednesday, February 24, 2010

HDR of a Charleston alleyway

My second HDR result from the trip this past weekend. I don't have any more bracketed sets, so that's the last HDR from that trip.

An alley in Charleston.

Other interesting pictures from this past weekend.

Click through for descriptions on Flickr.
The USS YorktownWater Fountain timestopDSCF9920DSCF9919DSCF9911The Roomba luck dragon.Dig In! (1/3)

My first HDR that only sucks a little bit.

Church tower and three flags

Thursday, February 18, 2010

Mix tapes for driving.

So I'm making a pair of 90-minute-per-side mix tapes for driving, for listening to during a 15 hour drive.

Yes, tapes. My laptop's being repaired, and I don't have any other decent audio player device at the moment.

To make these tapes, I created a playlist of songs in Rhythmbox that I would be willing to listen to. I don't know how many are there, or how many minutes' worth of music is there. Suffice it to say it's a lot. I also threw in all of the ads and callsign announcements from Streets of SimCity, because they give me a chuckle. I have the playlist playing in Shuffle mode, and I have a dual-tape deck sitting between my computer and stereo syste, configured to continuously record, looping through all four sides of tape.

When I wake up, I'll pop the tapes out. They'll have six hours worth of music on them, and I won't really know what's on there and when.

This will be interesting...

Wednesday, February 17, 2010

Picked up a Wiimote today.

Picked up a Wiimote today. I don't have a wii. I want to see if I can get it working as a mouse.

The mapping I have in mind:

  • As long as the trigger is being held, its motion will affect the mouse cursor's position. When the trigger isn't being held, the mouse cursor's position isn't affected.
  • The D-pad will be up/down and left/right scroll events.
  • The A button will be the Left mouse button. That leaves buttons 1 and 2 for Right and Middle.
Hopefully, that will cover most use cases. I don't really care for having the right and middle buttons there, but I prefer the D-pad for scroll events more.

Monday, February 15, 2010

A notice to the DIY folks.

I don't normally go for the chain letters, but this one is worth bringing attention to.


Don’t let this happen to you.
Women often receive warnings about protecting themselves at the mall and in dark parking lots, etc. This is the first warning I have seen for men. I wanted to pass it on in case you haven’t heard about it. This will only become more commonplace.

A ‘heads up’ for those men who may be regular Lowe’s, Home Depot, or Costco customers. This one caught me by surprise. Over the last month I became a victim of a clever scam while out shopping. Simply going out to get supplies has turned out to be quite traumatic. Please, don’t be naive enough to think it couldn’t happen to you or your friends.

How the scam works:

Two seriously good-looking 20-something girls come over to your car as you are packing your shopping bags into the trunk. They both start wiping your windshield with a rag and Windex, with their breasts almost falling out of their skimpy T-shirts. It is impossible not to look. When you thank them and offer them a tip, they say ‘No’ and instead ask you for a ride to McDonald’s. You agree and they get into the back seat. On the way, they start undressing. Then one of them climbs over into the front seat and starts crawling all over you, while the other one steals your wallet.

I had my wallet stolen November 4th, 9th, 10th, twice on the 15th, 17th, 20th, 24th, & 29th. Also December 1st & 4th, twice on the 8th, 16th, 23rd, 26th & 28th, three times last Monday and very likely
again this upcoming weekend. So tell your friends to be careful. What a horrible way to take advantage of men.

Warn your friends to be vigilant.

P.S. Wal-Mart has wallets on sale for $2.99 each. I found cheaper ones for $1.99 at K Mart. Also, you’ll never get to eat at McDonald’s. I’ve already lost 11 pounds just running back and forth to Lowe’s, Home Depot, and Costco.

Adaptive keyboard layout

This idea came up as a result of a lot of ruminations on data compression, and more specifically on huffman encoding.

Now, I'm a QWERTY touch typist. I can get by just fine on a blank Das Keyboard, if you give me a QWERTY layout. I realize, of course, that a lot of folks prefer DVORAK; having your more-frequently-used keys on home-row has to be great.

Even as a QWERTY touch-typist, I think there may be room for improvement. Consider the advantage Dvorak offers, with the most-frequently-used keys on home row. That only works under an assumed use case, which may or may not be accurate depending on anything from your locale to how you normally use a computer.

Let's say your keyboard kept a running record of your last twenty-thousand keystrokes. Every time you pressed a non-modifier key, it would push that key on to the queue, pop the twenty-thousand-and-first key off, and then run the entire buffer through huffman encoding.

The keyboard now has an internal representation of which characters you use most frequently, in the form of a huffman tree. Because it knows its own physical form factor, it can estimate the cost of each key on the board based on how much travel there is from home row to that key.

Simply sort the key cost in ascending order, and then walk through the huffman tree, assigning each character encountered to the least-cost key remaining.

You now have a possible keyboard layout optimized specifically for you and your use case.

For me, what I'd like the keyboard to do (at that point) would be to sit tight unless it discerns that a cost reduction threshold would be crossed; say, 10% cost reduction compared to my current activity and use case. At that point, it should beep at me, or flash a little light. Once I acknowledge, the keyboard layout would change.

Of course, something like this would depend on a visual feedback mechanism; I would have to be able to quickly see what the keys were remapped to. Under normal circumstances, the rearrangements shouldn't be much, and most of the layout would remain the same. I should only need to note that two or three keys (not key pairs, mind you) changed places.

I'd want to switch away from typing my password in, though; someone could get a lot closer to guessing it by noticing one or two strange characters that are closer to my home row than for most.

There's also the round-robin key buffer, which I think may be necessary for preventing old keystrokes from polluting the huffman tree. Perhaps simply randomizing which key in the buffer is replaced would be sufficiently optimal for the purpose, rather than storing keystrokes in order.

I think I could get used to a keyboard like that.

Sunday, February 14, 2010

LOLCODE and GAFFERS

Someone once asked me if Rosetta Code would accept LOLcode as a language. I told them that if they could provide a working implementation of the language, and examples that executed correctly with that implementation, that it was fine by me.

We never did see any submissions of LOLcode, but that's beside the point; it's technically possible, because a working implementations do exist.

The reason I'm remembering this today is the discussion of a language named GAFFERS that's recently shown up on the site. There was question of whether or not the language was a hoax, as one of the editors didn't turn up any reliable references while looking it up. I dug into the information provided and didn't find anything to back it up. It appears to have simply been a prank by a vandal. (Not a particularly good one, either; if they'd at least have gone to the trouble of creating convincing-looking references, I might have been amused and impressed.)

If the LOLCODE want to try their hand at getting a decent task coverage on Rosetta Code, they're welcome to. Just follow the steps for adding a language.

If whoever is behind GAFFERS wants to, well, they've got to show an implementation first.

Things I hate about posting to Facebook.

I use ping.fm to get most of what I write to places where people prefer to read it. Pretty much all of the services ping.fm will post to support a decent subset of HTML, embedding of Flash applets, etc.

Except Facebook. And that's not entirely ping.fm's fault.

With Facebook, I can't post a "note" (Called a blog entry anywhere else) that has text content, followed by an embedded video, followed by text content. At best, ping.fm can convert that to a video post with attached text. At worst, it'll show up as the raw HTML data for embedding the video. I've found I prefer the latter approach, because there's *no* other way to embed multiple videos.

Also, Facebook's HTML subset is ridiculously limited, almost as bad as Slashdot JE's. (At least FB allows inline images!) That means that simple formatting instructions that might otherwise have worked fine, like the "div" blocks that were (and maybe still are? I stopped using them) used by places like blogthings get defanged and look as ugly as embedded flash videos. No, I don't want to add an app to show that particular survey. No, I don't want to add an app for the "which character/what personality type/what are your politics" widgets. Facebook app privacy is so ridiculously poor, I can't even refuse to add the stupid things in defense of my own privacy; Farmville and Mafia Wars already have access to my profile information, just because my contacts added them.

You think Google is a privacy threat? At least a savvy person can use them while not giving them data, thanks to their preference towards open protocols and open APIs. With Facebook, use it or lose it. I got a Facebook account to deal with all the invites I was getting. It's also the de-facto way of staying in passive touch with people you've known from the past; the modern replacement of the Rolodex.

I love being a geek...

(10:26:14 AM) Mike: I found part of the source of our communication problem!
(10:26:30 AM) Mike: http://tvtropes.org/pmwiki/pmwiki.php/Main/BuffySpeak
(10:36:41 AM) J: :)
(10:37:12 AM) Mike: "BuffySpeak" should be our clarity codeword from now on. It'll drive T nuts. :D
(10:37:29 AM) J: lol
(10:37:35 AM) J: thas almost enough reason to do it :)
(10:37:42 AM) J: probably drive me more nuts though
(10:38:30 AM) Mike: Hey, it's faster than "You're using too many unresolved pronouns!" or "Linker error: symbol 'thing' is ambiguous."
(10:38:53 AM) J: Hey, I like the 2nd
(10:39:03 AM) J: I imagine that P would fall in love with it
(10:39:17 AM) Mike: *chortle*
(10:39:24 AM) Mike: I love being a geek.
(10:39:44 AM) J: chortle?
(10:39:47 AM) J: seriously?
(10:39:52 AM) J: I havent heard that in years
(10:39:59 AM) ***Mike double-checks the definition.
(10:40:07 AM) Mike: er.
(10:40:11 AM) ***Mike inverted that one.
(10:40:20 AM) Mike: What's 1/chortle?
(10:40:33 AM) Mike: You know, reversing the amplitude, but not the sign?
(10:40:34 AM) J: Umm, you used it correctly. its just obscure afaik
(10:40:43 AM) J: um, no idea
(10:41:15 AM) Mike: ROFLMAO, I suppose, except it wasn't quite that strong.

Saturday, February 13, 2010

Loving "Baccanno!"

I'm loving Baccanno!

"That was our first kiss!"
"Wait, you two have been an item for ten years, and he never kissed you? I mean there's gentlemanly, and then there's stupid! Hey! I'm talking about you, too, 'princess!'"

Friday, February 12, 2010

Why having been a tutor does not mean you communicate well.

I tutored computer subjects in community college for about five years. I figured that being able to teach people how to do things in one-on-one sessions made me a good communicator.

It didn't, and doesn't.

As a tutor, my chief strategy was to provide the student with all the bits and pieces of information required to build an understanding of what they were trying to do, but to systematically avoid actually connecting the dots for them. I found that that system worked very well for the students who wanted an understanding, not just a grade. (Which of those two types of students were normally the ones to come in for tutoring is a topic best avoided.)

It's only taken me three years of real-world experience to realize that while that coworkers aren't students, and I need to explain my thought process, rather than teach it.

In fact, that's probably a good habit to get into outside of work, too.

So I finally sent my laptop in for repairs.

I'd worn out my alt key, my wifi chipset seemed to be overheating, and the display was exhibiting these annoyances:

DSCF6238.JPG

DSCF6239.JPG

Before sending it in, I put on a blank install of xubuntu, a weak password, auto-login, and had Firefox automatically start, maximized, with a local homepage including a complete description of the problems, and localized playback (which I tested without network access) of the above photos and video. I also explained some things they could skip, being merely cosmetic fixes, and told them not to bother putting Windows back on if it was going to be a hassle for them. (I didn't have a restore CD to provide.)

Since all the problems I've been seeing are based in hardware, they should be able to either fix it or declare it a lost cause. If they declare it a lost cause, my warranty says I'm supposed to get a replacement or check to go towards a replacement, so it's no skin off my teeth.

It'll be interesting to see what happens.

Thursday, February 11, 2010

Awsome. Just awesome!

I predicted this five years ago, while chatting with some Computer Club members.

Well, not exactly this. They're using Pentium-class cores, where our discussion compared i686 and i386 cores.

I'm torn on their using a 32-bit core as a base, though. I spend enough time on 4GB+ PCs that I loathe the idea of dropping back to a 32-bit memory model, though; There really is an advantage to having more than 4GB of directly-addressable address space.

Wednesday, February 10, 2010

Benefits of tech support

Years and years ago, I was The phone support tech for a dial-up ISP. For the past few years, I've done phone support for the software I help write.

While doing phone tech support can be a grating, humiliating, degrading experience, if you do it right, it can also be incredibly rewarding; I just came across a couple Thank You notes that were sent to that ISP years ago, addressed to me. A couple years ago, one of the people I helped as part of my current job sent the company a fruit basket.

Whatever you do in life, if you're helping someone as a matter of course, chances are it's a worthwhile habit. If you're lucky, they'll remind you of that fact.

Monday, February 8, 2010

Ok, this song is stuck in my head.

Now it can be stuck in your head, too.

Watched Avatar again yesterday...

...And was mildly disappointed at one point.

At the point, a researcher is trying to teach Jake Sully the intricacies of the Na'vi language. It goes something like this:

Researcher: (Na'vi)
Jake Sully: (Na'vi) (incorrectly pronounced)
Researcher: (repeats)
Jake Sully: (repeats), looks up with an exasperated grin.
Researcher: "Literally, it means 'I see you,' but it's not just 'I see you before me', but 'I see into you.'"


While a well-spent ten-seconds of film, I think that would have been a heck of lot funnier/more interesting/whatever as:

Researcher: (Na'vi)
Jake Sully: (Na'vi) (incorrectly pronounced)
Researcher: (repeats)
Jake Sully: (repeats), looks up with an exasperated grin.
Researcher: "Literally, it means 'I see you,' but it's not just 'I see you before me', but 'I see into you.' Like 'grok.'"
Jake Sully: "'Grok?'"

(And would have had a nice side-effect of catapulting 'grok' back into popular awareness...)

Saturday, February 6, 2010

"real men just upload their important stuff on ftp, and let the rest of the world mirror it ;) "

Thus spake Linus Torvalds.

I've been thinking about a recurring issue...Namely that none of RCo's remote backup targets are very good. My home system has a problem remaining alive for any extended duration, and I don't have any other good prospective places to I can trust to send the data. (No offense to anyone who's offered, but it's hard for me to totally trust someone I've never met in person.*)

I may have hit on a novel solution, but I want to run it past a bunch of people (namely, you), before I do something this crazy.

Step 1: Take backup on server
Step 2: Compress backup to tarball.
Step 3: Encrypt tarball using a GPG and a long, long public key.
Step 4: Build a torrent.
Step 5: Add torrent to RSS feed.
Step 6: Anyone who wants to help can point their torrent client at the RSS feed. Data's encrypted, so I don't have to worry. With enough seeder boxes out there, there can be several full copies out there.

Bonus: Server data migration happens much, much faster. :)

* Yes, this is me we're talking about, and I realize the irony.

Friday, February 5, 2010

Cool trick of the day: "Uploading" URLs.

I know this works on Windows 7. I don't know about Vista or XP. I also don't know if the file dialog Firefox uses on Linux duplicates the behavior.

So you want to upload a file to some web form. Click Browse, that traditional file upload dialog pops up.

Into the "Filename" field, type (or paste) the full URL to the file you want to upload. For example, if the file already exists on Flickr or some other site, and you have the URL to the file at that location, paste it here.

Click Open; the dialog will appear to hang for a bit, but that's because it's downloading the file to your local system. When the dialog disappears, the path to its local location will appear in the upload field.

Proceed with however you would normally use the web form; the file was already copied to your local system, Firefox knows where it is, and it will be uploaded when you submit the form.

Wednesday, February 3, 2010

So the EFF is doing a fundraiser, hosted by Adam Savage.

They're hosting it at the DNA Lounge. What they don't mention is that the Jamie Zawinski works there. Who's he? The guy who maintains the XScreenSavers package.

Man, I wish I could be in SF next week.

EFF, Adam Savage, but best of all? JWZ. His screensavers package was the reason I dropped gaming on my Win95 box over a decade ago and switched to Linux.

Linux answers the greatest of questions.

shortcircuit@dodo~
01:35:48 $ whoami
shortcircuit
shortcircuit@dodo~
01:35:50 $ who
shortcircuit tty7 2010-01-30 18:29 (:0)
shortcircuit pts/0 2010-02-02 20:32 (:0.1)
shortcircuit pts/1 2010-02-03 01:28 (:0.1)
shortcircuit pts/3 2010-02-03 01:30 (:0.1)
shortcircuit@dodo~
01:35:52 $ whois shortcircuit
No whois server is known for this kind of object.
shortcircuit@dodo~
01:35:55 $ whatis shortcircuit
shortcircuit: nothing appropriate.
shortcircuit@dodo~
01:35:57 $

Tuesday, February 2, 2010

That's going to smart.

I wonder how many businesses are using Google Apps, as well as legacy web systems that only work with IE 6. Quoth an email I got from them today:

Dear Google Apps admin,​

In order to continue to improve our products and deliver more sophisticated features and performance, we are harnessing some of the latest improvements in web browser technology. This includes faster JavaScript processing and new standards like HTML5. As a result, over the course of 2010, we will be phasing out support for Microsoft Internet Explorer 6.0 as well as other older browsers that are not supported by their own manufacturers.

We plan to begin phasing out support of these older browsers on the Google Docs suite and the Google Sites editor on March 1, 2010. After that point, certain functionality within these applications may have higher latency and may not work correctly in these older browsers. Later in 2010, we will start to phase out support for these browsers for Google Mail and Google Calendar.

Google Apps will continue to support Internet Explorer 7.0 and above, Firefox 3.0 and above, Google Chrome 4.0 and above, and Safari 3.0 and above.

Starting this week, users on these older browsers will see a message in Google Docs and the Google Sites editor explaining this change and asking them to upgrade their browser. We will also alert you again closer to March 1 to remind you of this change.

In 2009, the Google Apps team delivered more than 100 improvements to enhance your product experience. We are aiming to beat that in 2010 and continue to deliver the best and most innovative collaboration products for businesses.

Thank you for your continued support!

Sincerely,

The Google Apps team

Email preferences: You have received this mandatory email service announcement to update you about important changes to your Google Apps product or account.

Google Inc.
1600 Amphitheatre Parkway
Mountain View, CA 94043

Monday, February 1, 2010

WaitForSingleObject

Coworker: "I've got a wait open, so when you're done there."
Me: "WaitForSingleObject?"
Coworker: "Yeah."
Me, to boss: "He's got a handle on you."
Boss: *facepalm*
Coworker: *grabs a large piece of equipment*
Me: *ducks*