Tuesday, March 26, 2013

Web War II

Another 100 word story for Crap Mariner's contest. Check out all the contest entries, they're fun!

"Captain Gecko reporting as ordered!" the middle-age, bedraggled officer said as he reported in. Colonel Layout returned his salute and gave his subordinate a quick glance. After years of Web Wars Gecko was still a solid soldier; frayed around the edges, but still solid.

"Gecko," the colonel started. "This damned campaign has flipped over to quirks mode and reports are the border: just turned red. General staff fears it'll be dotted with holes after the next event loop"

"Gecko, you have a right to know. Franky, we have reports..."

The rest was lost in the scream of a page reload.

Thursday, March 14, 2013

smuggery = smugness + buggary

This is a story I wrote for Laurence Simon's 100 Words Story challenge over on OneADayUntiltTheDayIDie.Com. If you write words, you should go over there and do a couple of the challenges.

The only thing that saved ol' Jim Malone was the wet darkness of the city street. Leaning back to avoid the crooked merchant's fist, the old war wound and rot-gut whisky conspired to plant him face-first on the pavement.

All the way down he's looking at the flash of the tommy gun. That's got to be Li-Sheih's boys. "Crap," he thought to himself, "led them right to the old man."

He woke next to an old dead body, the crowd starting to close in; pellets of tea scattered on the sidewalk and the stench of pu-ehr in his nose.

Swizzles Matlow

"Swizzles Matlow" is the name of a British confectionery company. But my friend Beta commented it was the perfect name for a character in a pulp noir novel, so I came up with the following two snippits. Both received a good reaction from my Facebook friends, so you'll probably see more of Swizzles and Nick. The second one started out as a comment to a one line status update a friend of mine made about measuring cups, that's what the measuring cup reference is about. Bonus points if you know where Mary-Allen is.

In Which Swizzles and Nick are Introduced...


She walked into the room with a gait that hung in the air like a broken question mark. "Aren't you going to buy me a drink, Mr. Danger?" she asked.

"Not sure I want to get involved with a dame who can break punctuation marks," I replied. "Besides. wehaven't been introduced. You obviously know my name, but what do they call you at the orthography repair shop?"

Her eyes flashed for a moment and a smile dusted her ruby-red lips as she said "Names? Names aren't important; they never were. But if you need something to need a convenient placeholder for cognitive processing, you can call me Matlow... Swizzles Matlow."

Swizzles and Nick Share a Tender Moment


It was a dark and stormy night as a shadow moved across the half-lit back alleys of the city. Two figures meet on a lonely street-corner. Masked by darkness, the first man's chiseled face is briefly lit by a quick drag from a cheap cigarette, betraying a crooked nose and a two-day old beard. Throwing the butt into the street, he muses about the fragility of life while watching the gutter-water carry the dirty cotton trash into the storm-drain. How like life; carried by barely seen forces towards an ignominious end.

"Do you have the package?" he finally asks, his words slow and deliberate.

"Right here. You have the cash?" the other says in reply. Her soft voice betraying a femininity hidden under an oversized Canada Goose(tm) parka.

"One dollar, ninety-eight Canadian; just as we agreed." he says, reaching for his wallet.

"SLOWLY!" the other demands, her instincts tripped by the sudden move of a hand into a breast pocket.

"Don't panic, Swizzles, I'm just going for my wallet," he says in his calmest voice. "You're my best source, there's no way I'm letting you get hurt." A wallet slowly emerges from behind his overcoat lapel. Flipping through the cash he peels off two one dollar bills. "Here, keep the change," he says, holding out the bills.

"You're a saint, Mr. Danger," she says, "and what do you know about getting hurt."

"Swizzles!" he pleads, a faint note of pain in his voice, "that's not what I meant." He continues, his voice beginning to crack, "And I think we both know about pain." Regaining his composure, his solid persona re-emerges with stern determinism in his voice, "Let's keep it about the transaction."

Opening the package he examines the merchandise. At once he discovers the flaw: "WHAT ARE YOU TRYING TO PULL HERE!" he yells. Two men he didn't notice before down the street suddenly stiffen and look their way.

"You asked for a measuring cup. I brought you a measuring cup. What's your problem!?" As she speaks the men down the street begin walking in their direction.

He talks fast to try to hurry the transaction. The interlopers down the street are walking slowly and cautiously, but it won't be long 'til they're close enough to make it a bad day for the both of them. "This isn't a cup! It's metric. And it's 250 milliliters. A 'cup' is an imperial measure. It's close to 240 milliliters. I can't use this!"

Swizzles thinks fast and makes a fateful, snap decision. The men now rapidly approaching are clearly part of the Mary-Allen Tong. She knows Old Man Li will be furious he was cut out of the deal. "Here! Take Mine!" she nearly screams as she removes her personal measuring device. "It's a third cup measure I use for rice, textured vegetable protein and other dry goods. It'll get you through 'til we rendezvous again."

Danger grabs at the cup and suddenly he finds himself grabbing her hand. He doesn't want to let go. A tear begins to well up from the corner of his eye, washed away by the cold rain coming off the lake. "Let go, Nick," she says, "you have to let go."

"I was a fool to let you go before," he says, his eyes locked on hers. His eyes, open to her completely, perhaps for the first time, reveal the depth of his love and the pain he endured when they fell away from each other.

"Oh Nicky!" her voice trembles, clipped by a quivering lower lip. "You must let me go."

Her head turns as she pulls her hand away from his. She doesn't look back as she walks out of his life once more.

On the north side of town a private dick drunkenly mumbles the words of old love songs, poisoning himself with cheap liquor just to get to sleep. In the background, the story on the TV news is about two unlucky south-side mob enforcers who wound up dead. Empty Micky's Big Mouth bottles litter the floor of his cheap hotel room and somewhere a woman cries herself to sleep.

Growing Corn

“I don’t want to hear your philosophy if it doesn’t grow corn,” he used to say to me. It was a quote from an old geezer who lived on the reservation up the highway.

There was a perfect place he knew to picnic on Highway 200 behind a stand of trees. We used to go and eat and talk and make out. He knew the owner so it wasn’t trespassing, he said. In the summer it was perfect; it was just warm enough to take some of your clothes off and there was a cold stream to stick your feet in if you got too hot.

We went up just about every day after he graduated; except Sunday. Sunday was for church -- I felt weird going to church in the morning and sneaking off to the woods in the afternoon. Every week I got the lecture about how much God loved me, and while it felt good to make out. Okay, okay, we were making love -- having sex. I don’t like that; just say we were making love. But I know God loves me, but making love felt too... it felt too fundamentally right to be a sin. But back then I was still a little unclear on my personal relationship with Christ. It seemed rude to hurt God’s feelings, but it still felt like it was okay.

So we would be up there just about every day for an afternoon picnic. In the great outdoors with not a stitch of clothing between us; but it still felt safe. No one could  see us but the songbirds. We talked about a lot of things; never about him leaving though. After making love we would lay back and try to see the clouds through the trees, saying which of our friends they looked like.  I didn’t realize clouds could look like baseball players and cheerleaders and debate team captains, but they can. We talked a lot about writers; he said he wanted to go to college and become a writer.

He certainly did read a lot. That’s where he got the corn quote from. Or the quotes about religion. And the quotes about people. He had a lot of quotes handy and memorized some of the Shakespeare sonnets. I read them now and they sound funny; but when someone’s reading them to you...you just don’t know what it’s like ‘til someone does it.

One time I got very angry when he teased me about going to church every Sunday. “Religion is the opiate of the masses,” he said. I told him I didn’t like how he would say things about my church; he didn’t know anyone there. They are all good people and help each other out; just like any religion tells you. Even humanism says it’s a good idea to be nice to each other, or at least that’s what I read.

One time I started talking about how being kind sometimes means confronting people you love; kicking them in the butt, so to speak. But then he cut in with “your philosophy doesn’t grow corn!” and try to splash water on me.

At the end of the summer I had finally gotten through to him. And for a couple weeks we had some really great times. Be patient, all ye sisters with well-read boyfriends; one day you will get a word in edgewise.

The night before he left for the Marines we drove out one last time and lay under the trees. It was starting to get chilly at night, but there were still a few lightning bugs around. They were like little stars hung under the firmament of leaves and branches.

I got a few letters from him when he was in training and a few more when he was overseas. They weren’t regular, but I could kind of tell things were rough. I think he was trying to hold on to anything normal in his life, so I would write him back telling him to stay safe so we could drive back out to our old picnic spot and he could tell me all about writers and philosophy.

There are no secrets in a small town and everyone knew we were going steady. No one asked me to prom ‘cause they knew I would say no. My last quarter in high school, everyone knew I was ready to be gone. When he got back from the Marines, we were going to move to Northfield and give the “young couple in college” thing a try.

It was weird when his father came over to the house. I don’t know what I was thinking he was doing there. His dad was the town dentist; I honestly thought he was coming to scold me for not brushing my teeth after lunch or something. We almost got all the way through it before we both broke down crying. First me, then his dad. He had died from wounds received during a firefight in an area that was supposed to be safe; that’s all I remember.

I used to go out to our spot up on Highway 200 from time to time and scatter wild rice to try to get the songbirds to fly in close. It was always Blue Jays that would take the rice, but I guess that’s okay.

One day I saw a couple of kids up near our old spot and thought it best to give them some distance. I guess our old spot wasn’t as private as I thought.

The next summer I came home from Moorehead and asked his dad to go with me to church.. We sat in the back row while the preacher talked about forgiveness and light in the darkness and everlasting life. I don’t know if I believe in heaven; if there is an after-life, it’s better and different than this one. After the service we hugged and he walked up to look at a painting of Jesus on the cross. He looked at it like he saw something for the first time and slowly walked back out to the car.

Sunday, February 10, 2013

Sharing Things (Vaguely Securely) with Mobile Devices

One of the things I do in my work is very basic User Experience problem solving. A fun problem just emerged and I wanted to share some of the work I've been doing on it.

So a couple weeks ago I was talking with a friend whose mobile app is 98% finished. They've been having a fun time, getting to play with all sorts of new technologies: Augmented Reality, Near Field Communications (NFC) and the latest UI widget sets. At one point, we attempted to share data between our handsets (which is what the NFC portion is for.) Well.. it turns out there are still a few snags in sharing data between devices from different manufacturers (and possibly different versions of the Android OS.)

I am not an expert in making NFC work on Android, but I've got to think if it was hard to share data between a Android Ice Cream Sammich and Anroid Jelly Bean, there's no hope of getting things to work when you try to communicate with iOS users (not to mention Boot2Geko, BlackBerry or WinMobile)

So I got to thinking... how do you easily communicate a small amount of data between two devices when the users are standing next to each other? It should go without saying, this transfer should be reasonably secure; an eavesdropper should need to be close enough that the people involved could see large antenna or telescopes sticking out of their backpacks.

The industry is gearing up for NFC and that's great, but I can't help but think someone in the value chain is going to try to put a wall around users. If it's not Apple or Samsung forcing users to use a manufacturer-specific UI or API, it's probably going to be the carriers being jerks and requiring app developers to pay stacks of cash to digitally sign apps that can use NFC devices.

So I then hit on the idea of using QR Codes as a sort of "poor man's NFC."

Sure, QR Codes aren't super popular in the states, but there's enough support in Europe, Japan and US Geek circles to make it worth thinking about.

My idea is to add a "show QR code" feature to apps or mobile web pages. The QR Code resolves to a randomly generated URL that has just enough smarts to communicate application state or data from one mobile device to another.

So... if I wanted to add a "share this track" feature in my audio player app, i would press a button and a QR Code encoding a URL for that track would appear on my screen. The person I want to share it with would use their QR Code scanner to scan my screen and be taken to a "meet in the middle" application out on the mobile web.

The "meet in the middle" app should be specific to the transaction; it should only allow that one particular track to be shared and the URL should be active for only a few minutes or even for a single use. If this is part of a legitimate music sharing service like Spotify or Rhapsody, we probably should log the user in to make sure they're allowed to receive the track. Authorizing the user isn't strictly required for sharing data through random URLs embedded in QR Codes, but it's probably a good idea. Once the receiver scans the code and is redirected to the "meet in the middle" application, it can do whatever it needs to do to complete the transaction.

But anyway... the big idea here is there may be some roadblocks to deploying NFC for generic sharing applications, so consider "meet in the middle" URLs encoded into QR Codes. QR Code readers are more or less universal for smart phones and bad guys would have to get close enough to scan someone's screen to get the randomly generated URL.

I put together a very basic demo at the QR/UX Demo Page and invite you to try it out!

Sunday, February 3, 2013

Taking my Radical Tech Agenda to the Air

At 10AM on Saturday, February 9th,  the Union of Benevolent Electrical Workers (UBEW will be co-hosting GeekSpeak, the local weekly tech radio show and podcast. We will be discussing our "radical tech agenda" amongst other things.

If you're unfamiliar with GeekSpeak, you should check them out. I listen to them most every week -- strangely, they come on the radio about the same time I'm usually starting my weekend soldering projects. So for me, it's great... I have a soldering iron in hand, listening to people on the radio talk about geeky subjects. If you're a pod-casting type, you can subscribe to their feed via the NPR Podcast Directory.

The Union of Benevolent Electrical Workers (aka UBEW) is a "radical collective of individuals doing socially beneficial things with technology who come together for mutual assistance." We're like a Dadaist users' group focused on things that help the local community. For instance, UBEW and the Santa Cruz Free Skool offer classes in tech-related subjects ranging from PHP & Java programming and cryptography to basic soldering.

There's also an outside chance we'll talk about the etymology of the term "Code Mollusk."

If you're in the Monterey Bay area, you can listen in on 88.5 KUSP or repeaters at 89.1 (Hollister/Gilroy), 89.3 (Downtown Santa Cruz), 91.3 (Palo Colorado Canyon) and 95.3 (Big Sur Valley.)

If you live somewhere else, you can listen on the web using the KUSP web player at http://www.kusp.org/listen-live.html .

Feel free to call in during the show and toss questions our way. 831.476.2800 or 800.655.5877
In short, we like to think we're doing good things for our community and we're going to be on KUSP 88.9 at 10AM next Saturday (February 9th, 2013).

Monday, January 28, 2013

A Tale of Six Keyboards

Your keyboard sucks. It's okay, mine sucks too.

I'm not saying they're unusable, but I've been thinking about some of the UI work I did in the 80's and 90's and realized that computer keyboard design has converged on a usable, but still mildly sucktastic norm. I'm going to talk about the standard US 104 key keyboard, but standard keyboards from other countries suck in very similar ways.

PLATO Terminal Keyboard
Keyboard 1 : PLATO Terminal
So look at this keyboard; it's from a PLATO Computer System terminal from the 1970's. If you look closely, you'll see a few keys that might seem strange to modern sensibilities. I'm quite partial to the EDIT, COPY and ERASE keys. Think about the number of times you hit Control-C each day. In the 1970s we had our own key for common operations, we weren't technologically devolved cretins content to swallow the UX pablum from Cupertino and Redmond!

So you might be wondering why i'm so excited about a fixed-function key. Why not just reprogram one of the function keys on the top of most keyboards and be done with it? I could probably make well-reasoned arguments why certain functions should have their own keys. But it really boils down to the fact that in the thirty-five years I've been messing with computers, I've never once used the CAPS LOCK, SCROLL or PAUSE key and have nearly worn out the ligaments in one of my fingers pressing control and S at the same time (not to mention Control-C, Control-V, Control-Z, etc.) The big problem I have with the modern keyboard is that I think it could be better. PAGE UP and PAGE DOWN are universal on keyboards (well... at least on keyboards that don't have fruit on them.) It's time to give COPY, PASTE, CUT, UNDO, OPEN and SAVE their due.

Atari 800 Keyboard
Keyboard 2 : The Atari 800
So let's skip forward a few years and look at another keyboard. This one's from the Atari 800. If you look on the right side of the keyboard there are keys marked SYSTEM RESET, OPTION, SELECT and START. The user typically used the OPTION and SELECT keys at system start-up to navigate a menu of options and pressed the START key when all the options were correct. This being the 1980's the SYSTEM RESET key was used to rescue the user when the system was unduly horked.

So what do we have so far? The PLATO terminal had function-specific keys for things you did mostly AFTER you logged in and the Atari 800 had keys whose canonical use was to select options prior to launching software. Imagine how many fewer times your mother would call you if, after her PC booted up, PC BIOSes displayed a menu on the screen and lit up LEDs under the few keys that navigated you through the following options:

  • START WINDOZE,
  • BOOT OFF A THUMB DRIVE (DID YOU KNOW YOU COULD DO THAT?) and
  • DO SOMETHING REALLY COMPLICATED THAT YOU SHOULDN'T EVEN THINK ABOUT DOING UNLESS YOU'RE UNDER 19 YEARS OLD OR HAVE BEEN TO COLLEGE.
TRS-80 Model 100
Keyboard 3 : TRS-80 Model 100
Now here's my favorite keyboard. Believe it or not, I still have one of these things. They last for about three weeks on four AA batteries and take about four seconds to boot up. The TRS-80 Model 100 keyboard is almost a counter example. If you look closely at the keyboard, you can see that it has eight function keys. And you might be thinking to yourself, "Hey! I though you hated function keys!?" And you would be right. I mostly do. This keyboard is the exception to the rule; and here's why. On the Model 100's keyboard is a key marked LABEL. If you press it, the specific function of each of the function keys is displayed on the bottom row of the screen. Some DOS software from the old days used to do this on IBM PCs as well. But all of the built-in software on the Model-100 did it, and that's the cool part.

One thing I would LOVE to see (and may try to hack into various open source browsers) is to have the functions of each of the function keys be displayed if you press the SCROLL key. It's not like anyone is actually using the SCROLL LOCK key.

Keyboard 4 : The Epson QX-10 (VALDOCS)
Moving on, check this out! It's the keyboard for the Epson QX-10 VALDOCS and it is MAGNIFICENT! I still have dreams where me and the QX-10 HASCI keyboard are skipping through fields of fresh wild-flowers together. Look at it! It has an individual key for just about every thing you would want to do: copy things, change font sizes, etc. Sure, the Margin Release button on a word processor is probably a little excessive, but that's the way I roll.

This keyboard also had keys that were supposed to launch different applications like a drawing program and a spreadsheet. This function has been re-introduced in some keyboards recently and this makes me happy.

Okay... two more to go, don't give up on me now...

Keyboard 5 : The Macintosh Portable
Behold the majesty that is the Macintosh Portable. Okay, maybe "majesty" isn't the right word. It had crappy battery life and weighed more than my drunk college roommates I had to carry home from time to time. But it did have one very, very cool feature: you could open the keyboard cover and move the trackball to the other side of the keyboard. This was great for left-handed mousers like myself.

In my dream world, all keyboards would be like this, you could open up the cover and (re)move the numeric keypad. Or replace the numeric keypad with a trackpad. Or a touch screen. Or a couple rows of function keys.

The Google ChromeBook
Keyboard 6 : The Google ChromeBook
So sure... it's unlikely we'll see major changes to computer keyboards anytime soon. But I am happy to report one hopeful sign: Google has removed the CAPS LOCK key from their ChromeBook line. It's been replaced by the SEARCH key. Hallelujah!

Thank you for listening to my screed. As you can tell, I'm passionate about the relatively obscure subject of computer keyboards. And to be sure, most modern computer keyboards are just fine. But the next time you start typing, take a moment to consider... they could be better