Thursday, December 27, 2012

Kids Code Camp, Austin, Texas, April 22, 2012

Teaching programming -- even to adults, but especially to kids -- presents you with a dilemma, all the more acute when you only have 1 hour to interest your students in the subject. You can take a practical approach: let's create a toy program that does something you like: move, bounce, play sounds. Or you can take a more-or-less exploratory approach: write some simple code, tweak various parameters in the program, and see how the computer responds. It is like having a "stick" -- a programming language -- to "poke" the computer with. What does it do when you issue this, that, and the third command to it, even if those commands don't add up to any eventual goal? I, personally, think the first approach would interest more people (especially children) than the second one. But the first one is harder to achieve. It's not easy to design a course where students would write a program simple enough for beginner to accomplish in 1 hour, but meaningful or entertaining enough to make students want to do more of this.

So it's not surprising that the Kids Code Camp -- a day long series of programming classes for kids -- took the second route.

For the first session, Ron Evans (@deadprogram) from Hybrid Group taught kids to write a few basic Ruby programs with KidsRuby. It's a programming environment that lets you easily write a simple program and run it. And by “easy” I mean it eliminates the overhead of creating and saving files, wondering what directory to save them to, how to invoke the compiler, what libraries to include, etc. It lets you run just the "meat" of the program. Not only you don't have to open a file, you don’t even give have to your program a name. Just type the program in the left pane of the KidsRuby window, and press the button "Run". The output will appear in the right pane.

Or... not.

Ron Evans gives out candy to kids at the Kids Code Camp who answered the questions right.
Ron Evans gives out candy to the kids who answer questions right. Eventually he gave candy to all the kids.

The "little" problem with KidsRuby is that if you make a typo -- for example, don't close a string with a double quote (") -- it doesn't print an error message. Your program just won't run. Needless to say, for beginning programmers this makes it one of the, shall we say, least useful programming tools. If your code won't point out your syntax errors, how are you supposed to know what's wrong with it? You’ll probably lose your interest. The only way a kid could sustain interest in this is if there was an adult nearby with knowledge of Ruby, or basic programming -- or if the kid was a precocious genius, armed with programming books and hell-bent to figure out what's wrong.

Turtle.start do
background yellow
forward 30
turnright 90
forward 50
turnright 90
forward 50
turnright 90
forward 50
end

-- draws a square.

Turtle.start do
background yellow
pencolor blue
turnright 45
forward 50
turnright 90
forward 50
turnright 90
forward 50
turnright 90
forward 50
end

-- draws a diamond.

This brings me to another topic. Hell-bent precocious geniuses will eventually figure programming out on their own, but what exactly is the audience to which one should teach? The traditional audience -- kids who are interested in tinkering of any kind, in pressing buttons and typing cryptic commands just to see what they do? Those were the typical kids who studied programming. Or do we also want to teach kids who, like me, would have found such a thing mostly pointless? If, however, someone had shown me what you can make with it -- a finished object, something with a purpose, even if only a toy -- I would have been much more interested. It was via this route that I eventually discovered my interest in programming as an adult.

As I noted above, the purpose-oriented approach is much harder to teach. However, some programming environments lend themselves more easily to this approach than others. One of the sessions at the Kids’ Code Camp explored a graphical programming environment called Turtle. Its commands specify how far a colored dot has to go and in what direction, or how many degrees to turn and in what direction, in order to draw a figure you want. (Sample Turtle code is shown in the sidebar.) So you can fairly quickly learn how to write a program to draw a geometric shape pixel by pixel. I also liked how the presenter explained pixels to kids: put your nose to the screen and see if you see any dots - those are pixels.

Here's the code of What I Did on my Summer Vacation program:

holiday = ask "Which holiday?"
familymember = ask "Family member?"
activity = ask "Activity?"
smallproblem = ask "A small problem?"
puts "It was just " + holiday " "."
puts "I was with my " + familymember + "."
puts "I also went " + activity + "."
puts smallproblem + " but it was OK."
puts "It was a good " + holiday + "."

Writing a program to draw a complete geometric shape may be more than you could learn in 1 hour with Scratch, another children's programming environment that was introduced at Kids’ Code Camp. Scratch doesn't let you manipulate individual pixels like Turtle does. In this environment everything is done graphically -- programming constructs such as loops and variables are colorful interlocking widgets you snap together to “write” a program. It's best suited for creating animations involving a vast choice of cute avatars. It is very handy for explaining such concepts as loops, since you can make the avatar repeat animated motions endlessly. But programming is knowing not just how to create a loop, but how to combine it with other code concepts to achieve what you want. And to do that in Scratch, you'd have to spend more than 1 hour -- especially if you are a kid, especially if you haven't yet learned coordinate system or negative numbers. You have know that in order to tell the avatar where to move. And to get your avatar to move to a precise location, you can only do that with trial and error, by plugging in different numbers and seeing where it goes. Not exactly a riveting activity...

At one point, though, the curriculum of Kids’ Code Camp showed a hint of purposefulness. While teaching Ruby, Ron Evans introduced a "hack your homework" program. It was a ~ 10-line KidsRuby program that asked you "where, when, who, what" types of questions, and plugged your answers into a cookie-cutter essay: "Last summer I went fishing with my cousin", etc. Then it spat out a finished text that probably wasn’t worse than an average student’s homework. :-)

Wednesday, November 28, 2012

Muscle memory instead of a password? Maybe not for klutzes

Some day we may use muscle memory to memorize a password without even knowing what the password is, says Scientific American. To a lesser degree, we already do that in daily life, when we enter an often-used password. If we are asked to write it down, we might not necessarily remember the exact sequence of symbols. I've known people -- for example, software developers who shared a username and password to the same computer -- that could not tell a new developer the password even when they needed to, because they only stored it in their muscle memory. They could type it in, but not spell it out. Trying to write it down, they would get confused. The (still highly experimental) technique described in this article takes it a few steps further: the password consists of actions you perform in a game. I suppose it could work as long as you use it often, and if you are not a klutz like me. I don't think I could reproduce all the correct key presses every time even if I played a game often. (I am assuming here that in the game they describe, there is only one way to hit the falling dots correctly. If the game was more like Tetris, where there's more than one way to maneuver the falling bricks successfully, this technique would be meaningless.) Still, if I haven't played the game for a week, my skills would have atrophied, so there's no way I would hit the dots correctly at first. Or by the second or third attempt. But most systems worth their salt lock you out after the first three unsuccessful login attempts. So it's interesting how would such a system distinguish between an impostor, and a legitimate user whose skills have atrophied.

Tuesday, November 13, 2012

Pareidolia strikes

I saw this logo on a truck of an Austin party rental company. Immediately I thought, what a weird logo for this kind of business. The dude's beard and the turban would not indicate an ethnic or religious group that's known for partying. :-) And the spike growing out of his eye... just surreal. Has he smoked too many substances? Is that what the company means by "Keep Austin Partying?"

Bird logo that looked like a face to me

Then I realized, it's a bird. That's not a beard, it's a wing. And the "spike" is the bird's beak.

It's no wonder I prefer text-based user interfaces to graphic. I never understood why the icons in a graphical UI are so obscure and hard to recognize. At least to me, perhaps less so to other people. When I was learning image-editing programs, people would sometimes tell me to use the "bucket" (a Fill icon), but instead of a tilted bucket, I would see a hand with a mitten. I also couldn't understand why the old-time Windows Control Panel icon was a cat. Yes, a cat. I realize it's supposed to be a bunch of tools, but all those tools look like long, skinny cat's legs.

With faces, it's even worse. We humans are wired to see faces everywhere. So I won't be laughing at the next person who sees Virgin Mary in a toast.

Sunday, September 30, 2012

Center For Inquiry fiction book club fall 2012-spring 2013 reading list

Update: we will have a meeting in November 2012 -- see below.

Here is the list of books we'll be discussing in the next few months in the CFI Austin fiction book club.

October 2012: Nancy Kress "Steal Across The Sky"

From amazon.com:

"The aliens appeared one day, built a base on the moon, and put an ad on the internet:

"We are an alien race you may call the Atoners. Ten thousand years ago we wronged humanity profoundly. We cannot undo what has been done, but we wish humanity to understand it. Therefore we request twenty-one volunteers to visit seven planets to Witness for us. We will convey each volunteer there and back in complete safety. Volunteers must speak English. Send requests for electronic applications to witness@Atoners.com."

At first, everyone thought it was a joke. But it wasn't.

This is the story of three of those volunteers, and what they found on Kular A and Kular B."

November 2012: Mark Twain "Mysterious Stranger". In this Mark Twain's last, unfinished novel, a young Satan comes to a remote Austrian village. He claims to be able to foresee the future and informs the group of unfortunate events that will soon befall those they care about. The boys don't believe Satan's claims until one of his predictions comes true.

December 2012: Octavia Butler "Parable of the Sower"

From amazon.com: "When unattended environmental and economic crises lead to social chaos, not even gated communities are safe. In a night of fire and death Lauren Olamina, a minister's young daughter, loses her family and home and ventures out into the unprotected American landscape. But what begins as a flight for survival soon leads to something much more: a startling vision of human destiny... and the birth of a new faith."

January 2012: Michael Bishop "Close Encounters with a Deity" - a story collection.

From amazon.com: "The book's unifying theme is man's concept of the Deity. Bishop's stories intermingle humor, horror, and awe in a manner similar to Vonnegut."

February 2012: Jonathan Strahan, editor, "Godlike Machines"

From goodreads.com: "In science fiction, nothing says sensawunda like a Big Dumb Object--a colossal, extremely powerful machine of unknown purpose and origin. It's that feeling that editor Jonathan Strahan was after when he asked six of today's finest authors to write for Godlike Machines. And they succeed brilliantly!"

March 2012: Greg Egan "Clockwork Rocket"

From amazon.com:

"Set in another universe where light does not travel at a constant speed but instead has a velocity that depends on its wavelength, Clockwork Rocket recounts the personal life journey of an inhabitant in this fictional universe."

"Alongside a taut and well imagined story set in a very alien world - complete with a sympathetic range of characters and a well imagined society - Greg Egan develops an entire alternative physics. This isn't just done in a hand waving way, it is properly worked out. The story of Yalda, the scientist who is the main protagonist, is also the story of the discovery of "rotational physics" in her universe, of the implications of that, good and bad, for her planet, and finally - in the construction of the rocket of the title - the story of the action she takes to safeguard that world."

Tuesday, September 18, 2012

Of programmatic thinking in low-tech situations

These days it's been fashionable to insist that everybody should learn to program. Some argue it's the next kind of literacy (a federal judge who learned how to code could correctly estimate how long it would take to implement a certain function), others say the importance of programming in an ordinary person's life is overblown. There is a vast difference between basic programming knowledge and being a professional software developer. The question is, can this basic literacy have applications in everyday life? Can it improve the life of a non-programmer? I liked this article that demonstrates how knowing how to program benefits even the people who are not programmers. When you have developed a mentality that lets you see many life problems from an engineering perspective, you see how software could help you improve even those life processes that you previously didn't think a computer could solve. It's a matter of thinking algorithmically, of seeing what could be automated. I have a similar problem as the one described in the article. I take lots of pictures of people at conventions and conferences, and there isn't a good way to "connect" photos of strangers with their names (which I forget instantly). However, unlike the casting directors in the article, I have neither assistants with spreadsheets, nor do people parade in front of me one by one like models. I also think that it would be awkward to ask them, after introducing myself, to write their names on a piece of paper, and to pose with it. :-) The best I can do is take pictures of their name tags, but sometimes those are missing, or flipped over to the blank side, or flash bounces off of them in a way that makes them illegible. On the other hand, my tablet allows me to add notes to any picture I take. (Well, I can't add notes to a picture directly, but I can save it to Evernote with a note attached.) So perhaps I'll just have to take two pictures of everyone -- one with the real camera, for quality, and the other with the tablet, for documentation. If a situation is not structured, there isn't much room for a programmatic solution to a problem.

Thursday, September 06, 2012

ArmadilloCon 2012: a summary

Misunderstandings about writers was the topic of the toastmaster's speech at the opening ceremony. Even in these days of decline of published word the general public continues to perceive writers' lives as glamorous. Since the toastmaster shared a personal anecdote, I will refer to him only as T (to keep Google's prying eyes away). One time he told a stranger he played XBox with that he was a writer. The stranger immediately found this suspicious, and started asking T his name, address, and what books he has published. T answered his questions, all the while surprised that his XBox pal didn't think T could just have borrowed someone else's name and biographical facts. And though the XBox pal had never heard of this writer, he said: "Wow! I've never played XBox with anyone famous!" T replied: "You still haven't".

Jeremy Lassen, Martin Wagner, Liz Gorinsky, Robert Jackson Bennett, Joe McKinney, Mark Finn, Matthew Bey, Nicole Duson: teachers at the writers' workshop
First row: Jeremy Lassen, Martin Wagner (speaking); second row: Liz Gorinsky, Robert Jackson Bennett, Joe McKinney; third row: Mark Finn, Matthew Bey, Nicole Duson -- teachers at the writers' workshop. See more pictures from ArmadilloCon 2012 in my photo gallery.

Writers' workshop. There are many ways to express how a writers' critique group can help you, and many of them involve self-deprecatory humor, which is apropos in anticipation of your "brilliant" story being trounced. For example, they might tell you when there's a toilet in your kitchen -- metaphorically speaking.

The writing game required us to smell, taste, and touch various items while blindfolded, and list 5 positive and 5 negative adjectives about each smell, taste, or texture. It was a mostly futile occupation for someone like me with only a rudimentary sense of smell or taste.

Nancy Jane Moore, Kevin Jewell, Marshall Maresca, Jessica Reisman, and Madeleine Dimond on the 'Workshopping to Success' panel
Nancy Jane Moore, Kevin Jewell, Marshall Maresca, Jessica Reisman, and Madeleine Dimond on the 'Workshopping to Success' panel. See more pictures from ArmadilloCon 2012 in my photo gallery.

Workshops are multifaceted things, and the advice given in them is not always helpful, as noted in the "Workshopping To Success" panel. Sometimes a critique group that points out a toilet in your kitchen simply doesn't understand the architecture of your home. For example, it may be a group of fantasy writers all into dragons and elves, but you don't write that kind of fantasy, and they'll be bored with your work. Perhaps you shouldn't bring your work into a critique group that thinks your whole genre is one big toilet? Or perhaps you should! Show your drafts to people who don't read your genre to see if you can keep them entertained. That's what Mary Doria Russell did. She showed the first draft of "The Sparrow" to her aunts, who only read mysteries, but no science fiction. And they kept reading it.

Another thing to note is that you need a different critique group for a novel than for short stories. You need first readers who are in it for a long run. If you bring new chapters of your novel to an open-to-all critique group, you'll see new people at every meeting. Those people will read the chapter and say: "I have no idea what's going on, but let me tell you what I think".

Kenneth Mark Hoover, Bill Frank, and Bob Mahoney on the panel on writing hard science fiction
Kenneth Mark Hoover, Bill Frank, and Bob Mahoney on the panel on writing hard science fiction. See more pictures from ArmadilloCon 2012 in my photo gallery.

Writing hard science fiction. Why base a story on science fact? If you do so, you disarm people who say that "it" will never happen, "it" being the subject of your speculation -- for example, a total surveillance society. How much scientific or technical detail to put in a SF story? A good rule of thumb is this: you can mention how a headset works, but don't elaborate on the wiring, unless it plays part in electrocuting your character's brain.

Another thing reading and writing hard science fiction can teach you, is to think through what-if scenarios. It's a great life skill, says Bill Frank -- both at work and in personal life. Before you start a project, you can learn to identify potential points of failure, and come up with alternative plans.

Robert Jackson Bennett, Elizabeth Moon, Chris N. Brown, and Madeleine Dimond on a 'Social Impacts of New Technology' panel
Robert Jackson Bennett, Elizabeth Moon, Chris N. Brown, and Madeleine Dimond on a "Social Impacts of New Technology" panel. See more pictures from ArmadilloCon 2012 in my photo gallery.

Social Impacts of New Technology. Madeleine knows a professor who gives his students every 15 minutes a connect-break in class, when everybody is allowed to use their gadgets to check their email, etc., otherwise they'll get too anxious and distracted. Audience is shaking their heads in disbelief.

3-D printing has been on everyone's lips lately, and just a week before ArmadilloCon came an announcement that 3-D technology now makes it possible to print guns. Most people in the audience found this development chilling. Elizabeth Moon thinks that since such printing requires lots of energy, law enforcement officers might look at who is consuming lots of energy, to get clues as to who is printing guns. Robert Jackson Bennett is not sure how viable 3D printing is, given that power is going to get much more expensive in the near future. (My Twitter friends responded that you should be able to run such a printer off of solar energy.)

Chris N. Brown is hopeful about a future where technologies could be brought down to "garage level", and anyone could build surveillance drones in their garages. That way we should able to monitor what the police is doing as much as it monitors us. A woman in the audience noted that abundance of garage-level technologies might renew interest in science among American school children, 70% of which currently say science is too hard.

Ari Marmell, Bev Hale, Madeleine Dimond, and Matthew Bey on the 'Story ideas I don't want to see again' panel
Ari Marmell, Bev Hale, Madeleine Dimond, and Matthew Bey on the "Story ideas I don't want to see again" panel. See more pictures from ArmadilloCon 2012 in my photo gallery.

"Story ideas I don't want to see again" panel quickly got bogged down in trivial stuff, as the panelists started complaining how they never wanted to see skimpily dressed women on book covers again.

-- Why can't healthy, loving relationships ever be discussed in genre fiction? Quick answer: healthy relationships are too "boring" for fiction, because most fiction is fueled by conflict. Bev Hale then said that there are some science fiction works that portray loving relationships -- for example, Lois Bujold Miles Vorkosigan series or Firefly.

-- Some of the relationships tropes that the panelists DON'T want to see again are "The fate of the whole world depends on these two people getting together, and their relationship is more important than the whole world", as well as "I'm so special that there is no mere man who is worthy to be my mate. He has to be a werewolf or vampire."

-- We also don't want to see rape universally used as "something bad that happened in the heroine's past that made her come back stronger", says Ari Marmell. Too often it's used as a lazy character-building shortcut, as if there was no other adversity that a woman protagonist could possibly experience and overcome.

-- Another trope we don't want to see: white people go to another planet and save the natives.

Al Jackson, John Gibbons, Alan Porter and Paige Roberts / Ewing on the 'Is Interstellar Space Travel Possible?' panel
Al Jackson, John Gibbons, Alan Porter and Paige Roberts / Ewing on the "Is Interstellar Space Travel Possible?" panel. See more pictures from ArmadilloCon 2012 in my photo gallery.

"Is Interstellar Space Travel Possible?" John Gibbons pointed out that there is a perception that the problem with interstellar travel is the speed of light, but in reality getting close to the speed of light is not even a question. A fusion bomb-powered spaceship would take an amount of fuel the size of a small planet to reach even a 10th of the speed of light. There's no way to do it on a planetary energy budget. The only way to do it is to colonize the solar system first, and to gain a solar system-sized energy budget.

A common science fiction scenario, generation ship, was also discussed on the panel. Paige Roberts doesn't think a generation ship would have much chance of arriving to the destination and colonizing a distant planet, because over many generations the people in the ship might evolve or progress to the point where they don't remember where or why they are going; or don't care. Or that they wouldn't overuse their resources. It's unlikely that they'll stay the same and faithful to their purpose. Alan Porter also thinks it's implausible.

So, sad to say, we did not brainstorm new and promising ways to get out to interstellar space.

Jaime Lee Moyer, Patrice Sarath, Rhiannon Frater, Chloe Neill, Michael Bracken and Katherine Eliska Kimbriel at the Writing Strong Female Characters panel
Jaime Lee Moyer, Patrice Sarath, Rhiannon Frater, Chloe Neill, Michael Bracken and Katherine Eliska Kimbriel at the "Writing Strong Female Characters" panel. See more pictures from ArmadilloCon 2012 in my photo gallery.

"Writing Strong Female Characters" panel was thoughtfully moderated by Patrice, who asked good questions.

-- Rhiannon Frater says: mothers in fiction are typically portrayed as weak characters, though in reality mothers defending their children can be fierce and heroic.

-- Can male writers write believable female characters? Michael Bracken says he's pretty sure he can, as he had plenty of strong women in his family.

-- Kick-ass women protagonists as lone wolves with no female friends is a damaging cliche.

Raven as Elizabeth Shaw from Prometheus
We don't get many costumes (read: almost none) at ArmadilloCon, but here is Raven as Elizabeth Shaw from Prometheus. Who, one could say, IS a strong female character. See more pictures from ArmadilloCon 2012 in my photo gallery.

-- What does a strong character mean anyway, even when speaking about males? Rhiannon Frater said that some guys who read her fiction said her male characters sound like normal guys one would like a barbecue with, but the men in her critique group criticized her male characters for not being a Rambo. It seems too many people think that in genre fiction a strong character has to be a cliche.

What sciences haven't been used yet in science fiction?. I didn't even take a picture of the panelists, because this panel reached an all-time intellectual low in my memory of ArmadilloCon. It happened when a certain poet (I don't know why he was on the panel, because he didn't seem to have a clue about science) said that a new "scientific" idea that still hasn't been used was a spaceship powered by "emissions" from eating Mexican food. Moderator Madeleine Dimond tried hard to keep it on track, and in fact the panel later recovered from the poet's verbal emissions. We had a brief, but interesting discussion whether cyberpunk fell in the realm of computer science, or not -- Madeleine agreed with me that it didn't, and that real computer science is one of those very underutilized sciences in SF. Another guy in the audience suggested cyberpunk takes a transhumanist approach, without being necessarily scientific.

In the style of the "Gorilla of the Gasbags" challenge, Madeleine issued her own challenge to the audience -- to write a SF story based on an underused science. She let everyone who wanted to draw a slip of paper with a science on it. I drew alien psychology. That shouldn't be too hard -- I'll just base the story on my own psychology. And the best thing, we have two years to submit our stories for the challenge, because there won't be an Armadillocon next year.

Monday, August 27, 2012

Book review: Charles Yu "How To Live Safely In A Science-Fictional Universe"

seudo science fiction with a certain melancholy beauty -- that's what we concluded about Charles Yu "How To Live Safely In A Science-Fictional Universe" at the Center For Inquiry book club discussion. It is pseudo science fiction, because while it has science fiction trappings, most of it is author's exploration of how he feels about things. It felt self-indulgent, and for a good reason: the protagonist is the author himself, or at least his namesake. That's not to say that many of us wouldn't be able to identify with the protagonist sometimes. He is a technician who travels in a time machine, and attends the most heartbreaking moments of people's lives. It also means that he doesn't spend almost any time in the present -- most of his life is spent outside time, and he is a stranger in his own era. His capsule, barely big enough to stretch out, is completely bland and featureless. I was all the more surprised that I found its description compelling. Something about it resonated with me. Could it be because many of us spend most of our days in similar blank rooms, a.k.a. office cubicles, performing actions that are, in a way, outside of time? Their impact on other people is softened by many layers of infrastructure, depersonalized, not traceable directly to us. So it's not hard to identify with the protagonist's alienation. I found his father, a quietly brilliant, stoic, underappreciated Asian engineer, to be a more vivid character than the protagonist himself. But that may be just because I identify with an immigrant engineer's experience. That said, the explorations of the character's psyche did not make up for plot shortfalls. It seemed that the author intended for the time-travel mechanism to make sense (it wasn't just a vessel for psychological exploration), but in that sense it failed. At the end, we are expected to believe that the protagonist resolved a deadly time loop he accidentally created. But the ending is so ambiguous that we didn't understand what was going on. It's as if the author tried to hand-wave over the fact that no real resolution was possible. This book has a few interesting science-fictional tidbits, which I can't really call ideas, since they are way too undeveloped. For example, what does it mean to time-travel by grammatical tenses? Or what does it mean to live in a universe that's only 93% installed? Each of those ideas could be tantalizingly interested, if properly developed, but in the book they are just throwaway sentences. One of the book club members said that while he enjoyed the book enough, he wouldn't recommend it except to someone who really wanted a "different" kind of science fiction. This book may be best enjoyed for its melancholy mood, an exploration of a father-son relationship, and a tragedy of a brilliant, but modest person without an ability to sell himself well (the father). That last plotline is where the book really shines.

Wednesday, August 01, 2012

ArmadilloCon 2012: What You Should Have Read in 2011 - 2012

A bunch of authors, editors, critics and booksellers discuss their science fiction, fantasy and horror picks of the year.

It's worth noting which of the books or authors got a nod from more than one panelist. This year those were N. K. Jemisin The Kingdom Of Gods, Kameron Hurley God's War and Infidel, Will Macintosh Soft Apocalypse, and anthology Welcome to Bordertown.

Below are each panelist's recommended books, and his or her comments about why they are worth reading.

Willie Siros's recommended books

Margaret Atwood In Other Worlds: SF and the Human Imagination

N. K. Jemisin The Kingdom Of Gods and The Killing Moon. -- N. K. Jemisin is one of the most amazing new writers. She has strong ties to Africa, and writes in non-Western ways. The structure of her novels are so amazingly different than what you find in American fantasy.

Ian McDonald Planesrunner -- When someone decides, after a lifetime of writing hard SF, to write a teen novel, it's interesting to see how he's trying not to talk down to the reader. We, adult readers, have seen many science fiction and fantasy tropes, such as alternate realities, but teens might have not seen them yet, and require a different approach.

Neal Stephenson REAMDE".

Bruce Sterling Gothic High-Tech -- short story collection.

Francis Spufford Red Plenty -- Willie called it "my epic fail of the year", though it wasn't clear to me why, because his comments about this book were quite flattering. It's a novel about Soviet space race, and it's not clear whether it's science fiction -- maybe not, says Willie. It could be secret history. In any case, having lived through American space era, it's very interesting to read the same events from the other side. We in the US thought American space program got it wrong, but Russians also thought THEY got it wrong, and had to go back to the roots of Marxism to start over.

Terry Bison Any Day Now is another big secret history novel. It starts out with the usual version of the 1960s, but then you discover that Kennedy doesn't die, and the story drifts just further and further from our history. Willie says that he was amazed by Terry Bison's sense of inertia in history. It's hist best novel since Talking Man.

Laird Barron The Croning -- a horror novel.

James S. A. Corey space series Caliban's War -- American writers trying to retake space opera from Alastair Reynolds and Peter F. Hamilton and other Brits.

Kim Stanley Robinson 2312. You can see it as a sequel to Mars trilogy, or not, as you wish. But, according to Willie, it is Robinson best novel since Mars.

Charles Stross Apocalypse Codex is the 4th Laundry novel, and it's as strong as the 1st one. Much stronger than the 2nd and 3rd.

Jeremy Lassen's recommended books

Lauren Beukes Zoo City -- She is an amazing writer from South Africa. She got a handle on the non-western-European future science fiction.

Mark Lawrence, Prince of Thorns -- Really weird fantasy series. The setting makes it unique.

N. K. Jemisin The Kingdom Of Gods, and the rest of her The Inheritance trilogy.

Jo Walton Among Others.

Michael Swanwick Dancing With Bears

Greg Egan Clockwork Rocket, a start of a new trilogy, and no, it's not steampunk.

Kameron Hurley God's War -- another real science-fiction book. Incredibly unique setting, a cast of characters that features strong women taking control of their hyperviolent world. The wold is ruled by a Queen, all men are sent off to war. So it's just old men, and women, and children running this world.

Will Macintosh Soft Apocalypse -- very depressing, a gut punch of a book. It looks at Apocalypse as something that happens not with explosions, but with lowered expectations, something that happens when unemployment reches 40% and Walmart runs out of stuff. The protagonist's life just gets grimmer and grimmer. It's a hard book to read.

Rob Ziegler Seed. It's similar to Paolo Bacigalupi's "Windup Girl", but with faster pacing, and with more likeable protagonist. Rob and Paolo live in the same small town, so it's an interesting bit of serendipity.

As an aside, someone from the audience recommends Paolo Bacigalupi's Shipbreaker as being much better and with nicer characters than Windup Girl.

Rudy Rucker Jim and the Flims, in which Rudy Rucker comes to terms with his own mortality.

Geoff Ryman Paradise Tales, short story collection from Small Beer Press.

Holly Black and Ellen Kushner, ed. Welcome to Bordertown, an anthology. They rebooted the Bordertown anthologies, which were urban fantasy before urban fantasy was created, and got a whole new cast of writers.

Jeremy Lassen, Bill Parker, Willie Siros, Michelle Muenzler, and Bev Hale on What You Should Have Read in 2011 - 2012 panel.
Jeremy Lassen, Bill Parker, Willie Siros, Michelle Muenzler, and Bev Hale on What You Should Have Read in 2011 - 2012 panel. More pictures from ArmadilloCon 2012 are in my photo gallery.

Bill Parker's recommended books

Ernest Cline Ready, Player One. Ernest Cline is native to Austin. This science fiction novel is set in 2044, and society has changed quite a lot. One character is a game designer from the 80s, and there are lots of references to 80s music, movies, and culture. It takes you through the game industry in little bits and pieces that are plugged into the story. By 2044 a game company has shut down, and opened up with a new product they called Oasis -- a virtual reality world. Kids don't go to school anymore -- they study in the Oasis. People don't go to the office, they work in the Oasis. One character lives in a trailer park, where trailers are stacked 30-high. The gist of the story is that the creator of Oasis has died, and left 3 Easter eggs for people. Who finds them, becomes rich. The story is about people who are looking for eggs, while an evil corporation wants to find them and make everyone pay for Oasis (which is currently free).

Some readers from the audience mentioned that there are also 3 Easter eggs in the book, and whoever finds them can win a prize.

Michelle Muenzler's recommended books

Haruki Murakami 1Q84 -- a very long and intricate story, that's very Murakami in the sense that every detail in it is very important. You can't just skip over chunks of text, because every detail is needed in order to understand what happens.

Johnathan L. Howard Johannes Cabal The Detective.

Ayize Jama-Everett The Liminal People -- a novel about underworld people who have powers, but you wouldn't consider it a superhero novel. It's a bit more gritty, realistic than most superhero novels Michelle has read. The protagonist's daughter disappears, he tries to track her down, and gets entangled with people with horrible powers.

J. M. McDermott When We Were Executioners

Martha Wells The Serpent Sea and The Cloud Roads -- very creative, vast world-building. Exploration of crazy-ass alien cultures clashing and interacting.

Jason Heller Taft 2012 -- hilarious, brilliant book. President Taft disappears, and 100 years later he wakes up on the White House lawn. The book is extremely fast-paced. It has Twitter conversations discussing his political views.

Kameron Hurley Infidel

Will Macintosh Soft Apocalypse

John Love Faith -- a massive battle, a dance between two spaceships, really fun.

Stina Leicht And Blue Skies from Pain

Rose Lemberg, ed. The Moment of Change -- a speculative poetry anthology. Very story-oriented poetry, resembles Year's Best SF anthologies.

Bev Hale's recommended books

Kage Baker Best of Kage Baker.

Holly Black and Ellen Kushner, ed. Welcome to Bordertown.

Pip Ballantine and Tee Morris Phoenix Rising -- steampunk.

Jim Butcher Ghost Story.

Rachel Caine Bite Club and Last Breath -- the last of her two Morganville Vampires books.

Gail Carriger Heartless

Kendare Blake Anna Dressed in Blood

Laura Anne Gilman Pack of Lies

Laurie R. King The Pirate King

Seanan Mcguire Discount Armageddon

Kim Newman, Professor Moriarty: The Hound Of the D'Urbervilles -- a spin-off of "Further Adventures of Sherlock Holmes" series, where Sherlock Holmes got retired, got married, and still doing stuff. This book has Professor Moriarty as protagonist.

Tim Powers Hide Me Among The Graves

Cherie Priest Hellbent

Ransom Riggs Miss Peregrine's Home for Peculiar Children

John Scalzi Fuzzy Nation and Redshirts -- Bev Hale liked Fuzzy Nationbetter than she liked Redshirts, though both were fun.

F. Paul Wilson Nightworld

George R. R. Martin and Gardner Dozois, ed. Down these Strange Streets -- an anthology.

Willie's recommendations of books that are very new, or are yet to come out

Neal Stephenson, Greg Bear, and a couple of other authors The Mongoliad -- because Neal Stephenson has an obsession with swords.

Mark Teppo Sinner: A Prequel to the Mongoliad, and Earth First

Terry Pratchett and Stephen Baxter The Long Earth. Someone said it would be funny if Terry Pratchett wrote the science in that book, and Stephen Baxter the characters.

Iain Banks Stonemouth and Hydrogen Sonata. The latter revels bits and pieces from the beginning of the Culture.

Robin Maxwell Jane: The Woman Who Loved Tarzan -- a Tarzan novel written from Jane's point of view. Burroughs estate gave Robin Maxwell, an award winning historical writer, access to Burroughs notes about Tarzan's backstory.

Saturday, July 21, 2012

Throw a non-sequitur grenade, or social strategies for introverts

The other day at the Center For Inquiry Austin non-fiction book club we discussed Susan Cain's "Quiet: The Power of Introverts". All the 8 people in the room self-identified as introverts. We told personal stories of extreme social avoidance (one person, as a teenager, asked his/her parents to turn down an invitation to a school dance on his/her behalf), and debated whether Neil DeGrasse Tyson is a rare example of an extroverted scientist, or if he only acts as an extrovert as a public figure. We also discussed how the workplace and the rest of the society can be hostile to introverts -- that's one of the points the book brings up. "Open" office plans, a.k.a cubicle farms, don't so much facilitate collaboration, as keep introverts from getting work done; in brainstorming exercises, the most dominant person's ideas usually get pushed through, no matter their quality, and the quieter people's ideas not heard; and we won't even mention the horror of various "professional development" and "team building" events, which, as several members attested, did absolutely nothing for their professional growth.

(Myself, I was lucky enough to get exposed to a team-building event just once. It was lead by a motivational speaker who made us play little games -- the bane of introverts -- the purpose of which was to demonstrate some simple and obvious idea. For example: write your name 5 times with your dominant hand. Now write it 5 times with your non-dominant hand. Did it take you much longer? Does it look like chicken-scratch? See, it shows that it's easier and faster to do things you're naturally good at, and much harder to do things you're not good at!

I started out with an open mind. I considered that all those games and exercises, all the platitudes they were designed to express, might add up to some genuine insight. But I lost hope for any such revelation, when I saw the speaker struggling to explain the concepts of "form" and "content". Apparently she thought that we -- a group of programmers and other technical people, who earn their daily bread from abstract thinking -- didn't already know these concepts. Moreover, she thought we would find them hard to understand without a concrete object analogy. So she looked around with urgency in her eyes, grabbed a cup from the table, and raised it, saying: "Form is like this cup, and content is like the water in the cup." After that, I pretty much tuned her out.)

CFI Austin non-fiction book club CFI Austin non-fiction book club. More pictures from CFI Austin can be found in my photo gallery.

But back to the discussion.

We also touched upon the appeal of cults, and (at the risk of making it sound like an extrovert hate fest) speculated about how much stock market crash can be indirectly blamed on extroverts, their irrational confidence making investors believe that this market bubble was different. The discussion often deviated from the book (which is just as well, because I haven't read it), but this was one area where everybody in the room had personal experience with, and sharing that personal experience was even better than discussing the book.

Since ~ 75% of society are extroverts, most social conversations flow in such a way that people don't stick to any one topic for more than a few sentences, touching it superficially, and moving on to another topic by association, not because it logically follows. For an introvert, who think *before* they speak, and speak only when they have something to contribute, such a conversation becomes meaningless. By the time they are ready to share their well thought-out point, the conversation would have moved on. So, are there any strategies for an introvert to make social interactions more self-friendly? Some people suggested to interject a complete non-sequitur. Like a grenade, it will cause some chaos in the conversation: "Huh? What did she just say?" And then the introvert can make a point they're trying to make.

Tuesday, June 26, 2012

Pipelined motherhood

Not long ago a friend, referring to my second child (who just turned 1), asked me how my second round of motherhood was treating me. He tried to use a computer metaphor for it, so he put it as "how is serial motherhood going?" Then he immediately admitted that this metaphor was inaccurate. It's not really serial, because I'm raising two children, not one at a time. You could say it's parallel, but that doesn't convey the idea of going from one child to two. So, pausing for a bit, he decided it could be called pipelined motherhood. Since I haven't heard about pipelined architecture, which (as a very oversimplified explanation) lets computers run tasks in parallel by starting them at different times, I thought about it in UNIX pipe terms. So I asked: "Do you think I feed one child the output of the other?"

Friday, March 30, 2012

When our machines talk to one another behind our back

What do toys do when children go to sleep? These days your childhood fears get a legitimate incarnation when your grown-up toys -- gadgets, apps, software programs -- start talking to one another behind your back. Case in point:

Facebook comment coming from out-of-office email autoreply


One woman went on vacation, leaving an email auto-responder reply to her emails. Somehow it found a way into Facebook, as a comment on a post. Clearly, the auto-responder replied to a notification from Facebook, but it's kind of headscratching what exactly it responded to. I don't see that this woman had previously commented on this post, so why did she get a notification about it? Well, maybe the author of the photo tagged her in this photo (as some clueless people do to make sure that their friends really, really look at their pictures). That would explain it. Oh, the fun our machines have when we're not around.

Monday, March 05, 2012

An internet radio by any other name sounds just as sweet

Many music streaming services have popped up over the years -- Pandora, last.fm, Spotify. I tried some of them, and didn't even bother with others, because I became convinced that the good ole' Youtube has everything I need.

Most streaming services don't have the artists I listen to, and not because the artists are super-obscure. Well, they are, but not the hipster-kind of obscure. They are unknown to most people because of the genres they perform in: medieval, folk, or world music. Pandora and last.fm (at least two years ago, when I tried them) had almost nothing in those categories. But even the most arcane taste is represented on Youtube, where some obliging souls have uploaded records from my favorite early music groups -- Ensemble Organum, the Huelgas Ensemble, Anonymous 4, you-name-it. And if you add your favorite tracks to a playlist, it will play continuously without stopping, with no interruptions, and without commercials (unlike Spotify). And it will play exactly the artists and songs you selected, not the artists that are "like" them, the way Pandora does. Pandora is no good if you want to try an artist you haven't heard before but your friends rave about. I want to hear the songs by this specific artist, not ones that are "like" him or her.

YouTube lets you create an internet radio station -- even if it doesn't call it that -- exactly according to your tastes. So unless it changes its business model (hopefully not), I won't be subscribing to new music streaming services.

Thursday, February 23, 2012

Center For Inquiry fiction book club selections for the first half of 2012

April 2012



H. G. Wells "The Sleeper Awakes" -- a short novel about a nineteen century Englishman who falls in a deep sleep only to awake over two hundred years later.

May 2012



Nnedi Okorafor "Who Fears Death"

-- "The young sorceress Onyesonwu -- whose name means Who fears death? -- was born Ewu, bearing a mixture of her mother's features and those of the man who raped her mother and left her for dead in the desert. As Onyesonwu grows into her powers, it becomes clear that her fate is mingled with the fate of her people, the oppressed Okeke, and that to achieve her destiny, she must die. Okorafor examines a host of evils in her chillingly realistic tale'gender and racial inequality share top billing, along with female genital mutilation and complacency in the face of destructive tradition -- and winds these disparate concepts together into a fantastical, magical blend of grand storytelling." -- a review from amazon.com

June 2012



James Blish "A Case of Conscience"

-- "The citizens of the planet Lithia are some of the most ethical sentient beings Father Ramon Ruiz-Sanchez has ever encountered. True, they have no literature, no fine arts, and don't understand the concept of recreation, but neither do they understand the concepts of greed, envy, lust, or any of the sins and vices that plague humankind. Their world seems darned near perfect. And that is just what disturbs the good Father."

-- "A fast-paced, intelligent story that offers plenty of action while at the same time explores complex questions of values and ethics. In this case, Blish has taken on the age-old battle of good vs. evil. Lithia poses a theological question that lies at the heart of this book: is God necessary for a moral society?" -- reviews from amazon.com

July 2012



Brandon Sanderson "Mistborn"

A description of this novel on amazon.com calls it a mystico-metallurgical fantasy. I heard it has an unusual and well thought-out magic system. An attempt to create a "scientific" magic system might make this book of interest to CFI readers who like fantasy.

August 2012



Philip K. Dick "VALIS"

-- "When a beam of pink light begins giving a schizophrenic man visions of an alternate Earth where the Roman Empire still reigns, he must decide whether he is crazy, or whether a godlike entity is showing him the true nature of the world."

-- "From the cancer ward of a bay area hospital to the ranch of a fraudulent charismatic religious figure who turns out to have a direct com link with God, Dick leads us down the twisted paths of Gnostic belief, mixed with his own bizarre and compelling philosophy." -- reviews from amazon.com

Saturday, February 04, 2012

Movies: The Dangerous Method

"The Dangerous Method" is a movie about Carl Gustav Jung, and his complicated relationships with two people: Sigmund Freud, his colleague and mentor, and Sabina Spielrein, his patient and lover. It was not a bad movie, but I expected more of it.

While it touched upon Freud and Jung's friendship and rivalry, their diverging methods of psychoanalysis, and their eventual breakup, its primary focus was Jung's affair with Sabina. Not that it was a bad choice, given how vivid is the character of the crazy and brilliant, but mostly brilliant Sabina. Like most people in this story, she was a real, historical person, a young Russian Jewish woman who met Jung when she was mentally ill, was enormously helped by psychoanalysis, and later became an innovative psychiatrist herself. Keira Knightley's acting is a bit overdone in the "crazy Sabina" scenes, though it's amazing how such a beautiful actress contorts her face and body into such ugly poses. Overall I think she was great in this role.

Speaking of actors that were not so good in their roles: professor Aragorn! And not just because of his Lord of the Rings fame. Viggo Mortensen as Sigmund Freud just didn't compute. Every time I saw him on screen, it pulled me out of the story. Even with the "authentic" makeup, hair, and beard, Viggo looks nothing like Freud, at least in the pictures I've seen. His acting wasn't convincing either. He played Freud with all the same cliches that denote a sophisticated man of a bygone era: slow, drawn-out sentences, half-closed eyelids, a pipe permanently stuck in his teeth. It's like I've seen this character on the screen hundreds of times, and I don't even watch that many movies.

For a movie about the birth of psychoanalysis, it oddly lacks intellectual content. Considering how Jung's ideas about archetypes and collective unconscious captivated the public (even if they later fell out of use; even so, writers and artists still derive inspiration from them), they get surprisingly little mention in the movie. There is a scene that suggests that Jung's notions of anima and animus were planted in his mind by Sabina: in one of their conversations she says there is something male in every woman, and something female in every man. And so the movie removes the last reason for a viewer to believe that Jung was famous for anything other than his polyamorous lifestyle, or wacky paranormal beliefs (he thought he was capable of premonition). He is a vivid, conflicted and sympathetic character, but it's not clear what he was notable for.

A movie about Jung that didn't concern itself with any of his intellectual contributions, but only with his romance with a patient, was like... why, it's like a fantasy novel that focused primarily on an exchange rate between Elvish gold and dollar.

Then again, I shouldn't criticize the movie too much. We are talking here about historical figures that achieved a mythical power in and of themselves, and their lives cannot be squeezed into two hours of screen time. To tell a story about them requires ruthless picking and choosing.

Saturday, January 21, 2012

Sometimes a problem pounces upon your brain...

Sometimes a mathematics / computer science problem pounces upon your brain, and takes possession of it for half the day -- at least until you figure out that its general case does have a solution. Then you finally escape its clutches, feeling that you haven't accomplished much; but you've brushed off some dust of that old math/CS knowledge that sometimes gets asked at software development job interviews. So it's not all a waste.

The problem was posted on Facebook by a friend who encountered it in his engineering work.

Suppose you have tasks A, B, and C. Task A occurs nA times in a given time period, task B occurs nB times, and task C occurs nC times. Let's say nA is 7, nB is 2, and nC is 1. The time between any two tasks is the same. Let's call it a unit time interval. These tasks repeat endlessly in a loop. The problem is to arrange the tasks in such a way that the number of time intervals between any two tasks of the same type will be minimized.

It may seem simple, but... it's not.

Ideally, any two A-tasks will be separated by at most ceil((nA + nB + nC) / nA) intervals, any two B-tasks are separated by at most ceil((nA + nB + nC) / nB), and any two C-tasks are separated by at most ceil((nA + nB + nC) / nC) intervals, where ceil() is ceiling, a function that rounds up a number to the nearest integer larger than it.

I came up with an example (or a counterexample, if you will) where it is impossible to find a schedule that satisfies those constraints.

Say task A occurs 19 times in a given time period, task B 13 times, and task C 3 times. Then nA + nB + nC = 35. ceil(35/19) = 2, so A-tasks should be separated by no more than 2 intervals. B-tasks need to be no more than ceil(35/13) = 3 intervals apart. Now, if you put a C-task between two A-tasks, then B-constraint will be violated. Any segment A-A is surrounded by B's, i.e. it will be a subset of B-A-A-B, and those two B's are 3 intervals apart. Put a C in the middle, and B-tasks will be 4 intervals apart. That's greater than ceil(35/13) = 3. If you put a C between A and B-tasks, then A-constraint will be violated, because you'll have a sequence A-C-B, so an A following that sequence will be 3 intervals away from the first A. That's greater than ceil(35/19) = 2.

Of course, there are many combinations of frequencies for which it IS possible to find an optimal schedule, for example 19-11-5. Also, if the numbers are multiples of other numbers, this problem may have additional properties that may make it solvable. Then again, engineers usually don't care about exact solutions, rather than "good enough" approximate solutions. If you require that the number of intervals between two tasks of the same type exceed the optimal only a certain percentage of times, the problem becomes complex enough to be a fodder for master's thesis. I wouldn't be surprised if it has been already solved in the academic literature. I just don't know of a good enough way to search for papers or theses that may have been published on this topic.

Further thoughts: you could map this problem to a graph theory problem. Each task can be a node in a graph, and you would need to find a shortest route for visiting all the nodes -- "shortest" as determined by the costs required to visit each node. This would be the traveling salesman problem, which is NP-complete. But this proves nothing, because this particular problem might map to a special instance of traveling salesman problem that's solvable in polynomial time.

Sunday, January 01, 2012

My drafts are a continuum

I don't know if I finished the first draft of my novel. At the beginning of last year I said I was going to, but I don't know. That's because I'm no longer sure what should count as a first draft. The zeroth draft was clear. I had a beginning and an ending, but the middle lacked some chunks. Now all the parts are in place, and in the right order. Finding the right order was nontrivial. Maybe normal writers write a story in a linear fashion, as it develops in time, but that's not me. I write chunks and scenes, and wrack my brain about how to make them fit together. Which one should come before another one? The story can be told in any of the million ways.

I can't help but see stories from a software engineering perspective, not something that develops in time, but as a modular structure that occupies (mental) space. The logical way the modules fit together may not necessarily be the temporal way.

I finally worked out the order in which to string the scenes together. But I also determined I need more scenes with certain characters, because they are more instrumental to the story than I thought before. So can I really say I have Draft 1, or is still Draft 0.5? Or perhaps novel drafts should not be versioned like software releases?

I also have several short (or "short") stories I am working on, all but the newest one completed, and in various states of rewriting. One of them underwent five rewrites -- five completely different variations on the same theme with the same characters, converging on the same finale -- and this is still not the end. I need to figure out how to make the final version shorter. Might I be overthinking this just a tad?

That's the state of my writing for 2011. As far as my programming goes (and I can only speak of spare time projects, not anything I do at work), I'll spare the gentle reader an account of all false starts and stops on my coding endeavors throughout the year. It suffices to say that for the last month I've been trying to get an application I wrote to work on a Windows-hosted website. It is supposed to automate certain tasks on which I spend a lot of time, so it is important to me. To make a long story short, I found out that there are certain incompatibilities between the development environment on my laptop, and my Windows website environment, that can make it impossible to host that application. There are a couple of ways to deal with this, and I don't know which is more viable. It can also be said that when it comes to web hosting, I have champagne tastes on beer budget.

Saturday, December 17, 2011

Take the stairs, and other impossible health advice

A fire alarm rings at work. You leave your desk and properly evacuate to the parking garage. It turns out to be a drill, and 10 minutes later you are allowed back. You get a brilliant idea: you'll use this disruption to do something good for you health. You'll take the stairs up to the third floor where your office is. And maybe you should try walking up and down the stairs a few times during the day, so your butt won't meld with the chair. You don't quite remember where the stairs are in this building -- you only took them once -- but a building deputy showed them to you.

You go up to the third floor. The stairwell door won't open. It's locked. You swear the last time you tried it, it was unlocked.

You go up to the 4th (top) floor, then to the 2nd floor, and all the stairwell doors are locked. You get down to the first floor, and the door is unlocked, but it opens into a small dead-end hallway with several other nondescript, identical, unlabeled doors. You try one after another, until you find one that opens into a longer hallway, which leads you to the elevators... just in time before your claustrophobia flares up.

This is what happens in corporate America when you try to do something good for your health. It's like that in pretty much any office building. In some buildings, I heard, people are so discouraged from using the stairs, that an alarm would go off if you open the stairwell door! The stairs are to be used strictly as a fire exit.

And yet there is no shortage of health experts who tell us to incorporate small acts of fitness into our daily life, first and foremost by taking the stairs. Also, ride your bicycle to work. Uh-huh. And play Russian roulette with the cars whizzing by, and arrive to your cubicle sweaty, and delight coworkers with your post-workout aroma. None of those experts must have ever worked in corporate America, or lived in a suburb. Next thing they'll tell us to eat cake. :-)

Sunday, December 11, 2011

How come xkcd hasn't addressed this?

I often hear that engineers are literal. This typically includes software developers. I hear this even from people who work with engineers all the time -- you'd think they would take a more nuanced view. But perhaps not many people understand what "literal" means. I'm not even talking about the common, oft-ridiculed use of "literally" to mean "figuratively" -- as when somebody tells you "I literally died laughing" (and they don't have chunks of rotten flesh falling off, so they're not Undead).

Figurative, after all, is the opposite of literal. You can also say that the opposite of literal thinking is metaphorical thinking. Apparently most people don't understand how much certain intellectual activity, such as science and engineering, relies on metaphor. As an example, read this article in Wikipedia about Aspect-oriented programming, and show me even one paragraph in it that does NOT contain a metaphor.

The point is: software design, like any design, models real world problems in some kind of abstract conceptual framework. This is only possible if you think in metaphors.

I really think there should be an xkcd cartoon on this.

Saturday, December 03, 2011

When a children's store practices tough love

Some stores must be really, really sick of people stealing their shopping carts. So sick that they put the cart before the horse's customer's safety... or maybe just don't think how anti-theft devices can put customers at risk.

A case in point is an incident my significant other, Ray, termed "The Great Magnetic Shopping Cart Caper". It occurred in Babies'R'Us parking lot in Austin. Here is the email he sent to Babies-R-Us Management.

I would like to humbly express my intense displeasure at the experience of "discovery" I had with the "new" shopping cart system you have deployed at store # 7047, on November 25, 2011 at 2:35 in the afternoon. I began by having a pleasant shopping experience. On this day (the day after Thanksgiving) I parked my car right next to the Babies-R-Us, in the giant, parking area shared with Babies'R-Us's neighbor "Bed Bath and Beyond". I bought $164.51 worth of merchandise in the store, one of the items being a heavy metal "superyard" play-yard enclosure for my 5 month old son. I was able to fit this box perfectly fine in the shopping cart. The shopping cart rolled fine and smooth with my happily purchased merchandise in the store and out the door.

I was happily pushing along my Babies-R-Us shopping cart (full of merchandise) out into the beginning of the parking lot, weaving through the busy high traffic area, where there are cars moving in both directions. You have to get through this narrow car path to get to the parking rows on the other side.

To my sudden and almost fatal surprise, halfway there my cart suddenly locked up, and due to my decent momentum (I'm a man) and being caught off-guard I almost turned over the whole shopping cart and its entire contents on to the pavement.

Very luckily for me, the cars in front and behind me were paying attention and not fiddling with their cell phones, because they screeched their brakes and avoided running into me.

Aerial photograph of Babies'R'Us and Bed, Bath & Beyond parking lot Aerial photograph of Babies'R'Us and Bed, Bath & Beyond parking lot where the incident occurred. Click for a bigger version.

Embarrassingly, I tried moving the cart back-and-forth, side-to-side to get it to move again. Nothing budged. I tried looking down into the wheels, thinking that possibly a rock/piece-of-tape/etc got caught up in the wheel or something.... I found nothing that would explain the wheels not moving.

Since I realized I was blocking all the traffic of the other customers in their cars trying to get my Babies-R-Us cart to move, I resorted to picking up all of my merchandise, including the heavy metal-based item (again, I'm a strong man) and put them down on the nearest curb.

I tried one last time to move the cart - seeing no motion, I drug the empty cart (leaving a big black skid mark from the locked wheel) over to the Babies-R-Us storefront sidewalk.

AND THEN I NOTICED a small sign INSIDE the cart (which was blocked from my reading from the merchandise I purchased), which states that the cart has a new "feature" that will lock the wheel up when trying to go beyond certain lines on the sides of the Babies-R-Us building.

(1) That would have been good to know BEFORE I parked my car, especially since after realizing the smaller area WITHIN the "painted cart-stop lines" out of the whole shopping center's shared parking area was totally full of cars, I would have not shopped at Babies-R-Us that day, and driven on.

(2) Imagine if I wasn't just "some guy" alone with a bunch of paid-for merchandise, trying to push it to my car? Imagine I was instead a mom, cart loaded full of merchandise AND a kid or baby, and the wheel unexpectedly locked on her while she was moving along? Imagine her cart falling over with a baby in it. Imagine a nearby car preoccupied on their phone while a family pushing a Babies-R-Us cart suddenly locked up in front of the car?

I THINK YOU'LL AGREE that the SAFETY of your customers is MORE IMPORTANT than the "prevention of shopping carts moving off too far".

The store immediately neighboring the Babies-R-Us, "Bed Bath and Beyond" had one of their store associates retrieving their carts. He saw my dilemma unfold, and he was so kind as to bring me a "Bed Bath and Beyond" shopping cart in which I put my Babies-R-Us merchandise, an "old-fashioned" cart that pushed... all the way to my car in the parking lot.

After I got the stuff in my car, I walked back into the Babies-R-Us store, and I went to the Customer Service desk.

I tried asking if I could speak with the store manager to explain my experience, but I was told by the associates there that the store manager wasn't available. I told the experience to them. They suggested I describe the complaint online.

I hope my time and effort in trying to help you listen to the safety of your customers does get read, and this letter is not in vain,

<name>

Hoping to remain a happy Babies-R-Us customer

So there you are. I guess the children's store is showing by example how to practice "tough love". After all, setting consequences is a common parenting advice. Only in this case it is, step outside the line, get a jolt of reality. No matter if it sends you under the wheels of oncoming car.

=======

UPDATE: A few days after submitting his feedback via Babies'R'Us website, Ray got a canned response from Babies'R'Us customer service, saying that to get help with his problem, he has to write a (paper) letter and mail it to corporate headquarters. The customer service representative did not acknowledge his problem, and did not forward it to supervisors, or to anyone who could have done anything about it.

Saturday, November 26, 2011

Girls hack Arduino

In all my programming life I never tried communicating in code with real-world objects. But now there is something to make it easy (or at least doable): Arduino. Sharon Cichelli demonstrated it at the All Girl Hack Night in October of 2011. Arduino is a microcontroller that lets you program blinky LED lights, or things that make buzzing alarm sounds, or all sorts of other electronic. It also accepts input from buttons or sensors, or anything that translates a physical action into electric pulse. You can plug things into one of its pins (there are 13 of them, if I recall), and have it "read" electric pulses from those pins, or "write" to them.

"Read" and "write" probably shouldn't be in quotes, because they are the same programming concepts as reading and writing to/from any input/output device. So, to switch on an LED light that's plugged into pin 13, you would digitalWrite(13, HIGH). As with all things digital, the function digitalWrite only recognizes on/off, or in this case, HIGH/LOW values. HIGH means the device plugged into the pin is on, LOW -- off. Simple, right? These basics allow one to sit down and program a primitive blinky light in minutes. The programming language is fairly high level. Its function names, as one can see, resemble human language -- this isn't assembly, where you push bits around with three-letter commands. It enables you to quickly do simple demos, like Sharon Cichelli did. Just as you digitalWrite to a pin to turn a device on, you digitalRead from a pin to recognize, say, a button press. Again, you pass to it the number of a pin into which the button is plugged in.

You write the code in an IDE, and with one mouse click upload it to an Arduino connected to your computer via USB.

Sharon Cichelli dictates the code that Anne types up on the laptop Sharon Cichelli demonstrates Arduino programming.

Arduino programming seems encouragingly simple at first, but as with everything, once you get deeper into it, you discover complexities. In fact, one's lack of electronics background might put brakes on the progress. Having been told that a LED light is plugged into a pin number 13, you (and by you, I mean me) might notice that the light actually has two wires, both plugged into tiny slots. Why are there two wires, and which of them is # 13, you ask. Oh, it's because the light needs to be grounded. The other wire is plugged into the grounding pin, you can ignore it for the purposes of your program. Yes, grounding is something you should have remembered from physics classes, but didn't. Then you digitalWrite to it, and it still doesn't light up -- that's because something is wrong with the hardware, and the circuit does not close as expected. Maybe the light isn't plugged in firmly enough. So, there are two dimensions to debugging Arduino code: a programmatic and an electrical dimension. As if catching just the software bugs wasn't tricky in itself!

Sharon couldn't help but demonstrate troubleshooting techniques, as things malfunctioned. Pins "floated". Still we had enough time to progress to a more advanced part of the lesson: Pulse Width Modulation. If you can only send "on" or "off" signals to a LED, how would you dim the lights, or produce nice, slow fade on / fade off effects? The fading or increase in brightness is caused by flickering very fast between on and off positions. If the light spends more time in the "off" position than "on", it appears to fade; if in on position, it grows brighter. If we graph HIGH and LOW signals versus time, where every HIGH signal is a vertical bar, we'll see that the "width" of the HIGH signal decreases (increases) over time. So that, simply put, is Pulse Width Modulation. Sharon pair-programmed with someone (sitting another person down at her laptop's keyboard, and dictating code to her) to implement the slow fade.

Besides blinking and buzzing things, you can connect Arduino to vibrating things. Erm. I mean, like a mat under a cat food bowl. A vibrating mat would scare off a cat that is afraid of vibration. This was the idea one of the girls had. How do you make a cat lose weight, if you also have a normal-weight cat, and each time one sees the other eating, she will eat too? The goal is to make the fat cat to eat less frequently than the normal-weight cat. So, this girl got an idea to put a vibrating mat under the cats' food bowl, so that when the cat steps on it, her weight would send an input to Arduino, which would trigger the vibration, scaring the cat off. The smaller cat's weight would not trigger this response. And the fat cat's weight would only do it at certain times but not others, otherwise the pudgy feline would never eat.

And if you don't have problematic cats, there is still a wide variety of applications for Halloween costumes, such as blinky eyeballs like Sharon made for her own Halloween costume.