Leah Shanker

Usability and User-Centric Design

Posted by: Leah Shanker on: January 16, 2010

The world thinks of software developers as simple code monkeys. Why? Well, we act like it. We think we’re the smart ones, with the pathetic human users idiotically fumbling around our systems (which of course, is always the perfect embodiment of what a system should be). We think to ourselves, “Why should we consult the users when we know all the technological possibilities better than they do?”.

Quite frankly, software development needs a makeover.

Office Space made light of the whole situation by poking fun at one of the employees. His job was solely a mediator between the users and the programmers, because “programmers can’t talk to people”. Sadly, this actually happens in the real world outside of comedy movies. Fellow programmers, this is not something to be proud of and should be treated as a weakness in your coding ability! Here’s a good place to start:

One of my favorite classes I’d ever taken in Computer Science was a course taught by Dr. Eck Doerry at Northern Arizona University entitled “Advanced User Interfaces”. I consider it life-altering because I felt like I stepped out of that course with a fresh new look at the software development cycle and how everyone currently operating in the industry has it all wrong and it’s my job to educate the world (Call me naïve).

The 7 Golden Rules of Usability

Here are the seven commandments to follow when actually laying out your user interface (this is ideally after you’ve completed initial user surveys):

  1. Consistency: Your interface should follow a pattern of control structures in addition to a universal “look and feel”. Your system should also be consistent with the user’s mental model of the problem.
  2. Design for Evolving Expertise: Your system should have a very small learning curve for new users (perhaps include an introductory tutorial explaining how to use your system) and should also be capable enough for more advanced users to quickly perform actions without hassle (The infamous Microsoft Word Paperclip Helper should never appear for advanced users, for example).
  3. Feedback: Your system should always indicate the status state and progress for the user, using the appropriate conventions. A spinning indicator is an acceptable way to show the user the system is taking only a few moment to process a request, but any process taking longer should be given a full progress bar.
  4. Design for Error: Your system should disallow error wherever possible – grey out possible new actions during processing, use very strict input validation, etc. Additionally, your system should handle errors in the most prudent way possible – no cryptic error messages with application crashes. Exceptions should be thrown to an error-handling mechanism that determines the best course of action to take in the event of a failure at any step of the way.
  5. Reversal of Action: Humans make mistakes, every action taken by the user changing the system state should be completely reversible. Studies show that if users realize they’ve made a mistake, they tend to realize only a few seconds after taking the action (possibly by second-guessing themselves?). Even permanent delete functions should be stored in a temporary place to allow for reversal (much like the Recycle Bin).
  6. Sense of User Control: Users should always be the initiators, with the system passively receiving actions without any hidden automatic behavior behind the scenes. This isn’t always possible, however. In the event that your system is modeling real-time data, the user should always be given the control to halt or change the system at any time.
  7. No Rote Memorization: Users should not be expected to keep data in their short term memory to operate your system – for example, if data from three screens ago needs to be entered again: give all the information to the user on the same page (to be used as reference) rather than expecting him to recall it.

And for funsies, here are some design documents our UI Team used for our Final Project in the class:

My Favorite Geek Music Tracks (Playlist)

Posted by: Leah Shanker on: August 18, 2009

Music emotionally engineers me to feel whatever it wants every time I listen to it. I really have no control over it, regardless of how intensely I’m into a project or consciously trying to ignore it. I suspect it comes from being an auditory learner – there’s really no way to shut off your ears without earplugs! Anyway, I have a bunch of geek music I’ve collected over the years and I think it’s time I share it with the world :)

So everything I could find on the Amazon MP3 Store, I’ve linked to here in the playlist because the truth is: geeks are a very small clique that simply doesn’t generate as much income for the artists as your normal, run-of-the-mill boring pop culture radio blether. So please, support the artists – they really need your help!

Geekster Rap

Much of the great geek music collection here owes much to the underground Nerdcore subculture. But I’ve classified the music even further by distinguishing the vulgar, testosterone-infused vulgar Geekster Rap (which is almost a direct parody of classic Gangster Rap) from the rest of the Nerdcore scene.

Monzy

Monzy

Monzy: So Much Drama in the PhD [NSFW]

This was a Stanford grad student’s masterpiece – it’s *FILLED* with algorithms and terminology we’re all so familiar with from CS core classes. NSFW! Download mp3 (Free)

My flow is so intense that I will overflow your buffer,
Corrupt your stack pointer makin’ all your data suffer.
I’ve got saturated edges but your flow is sparser,
Real gangstas sip on Yacc; instead you generate a parser.
While you’re busy poppin’ stacks I’ll pop a cap in your skull,
While you smoke your crack pipe I’m gonna pipe you to /dev/null.
I may not have a label but I rap like a star;
I’m an
unsigned long int and you’re an 8-bit char.
Your mom circulates like a public key,
Servicing more requests than HTTP.
She keeps all her ports open like Windows ME,
Oh, there’s so much drama in the PhD.
I run gmake and gcc,
And I ain’t never called malloc without calling free.
I’ll beat your ass until it’s colored like a red-black tree
‘Cause there’s so much drama in the PhD.

(Ode to the DEFCON) Badgez

DEFCON 15’s Badgehacking Team Winner, Team Osogato, went all out on their badgehacking submission: they got a friend-of-a-friend (The Brothers Grimm) who was a Nerdcore rapper to create a rap from the poem Joe Grand wrote in the DEFCON schedule booklet that year. It sounds really great too! Download mp3 (Free)

Secrets From the Future Album

Secrets From the Future Album

Secrets From the Future

MC Frontalot is probably my all-time favorite Nerdcore Rapper. He’s got an exquisite sound and an intuitive sense of (geek) culture in his music. His track, “Secrets from the Future” has a god-like quality to it: I think it was even composed at DEFCON? Man I would have killed to see him at DEFCON. Anyway, lyrics are here. And also, Download the mp3 (Free) from his website. Or, do the right thing and buy the entire album!

Anti-MPAA Sticker of My Youth

Anti-MPAA Sticker of My Youth

Fuck the MPAA [NSFW]

Oh yeah, back when I was in 6th grade the cool thing to do was post those bright yellow “STOP THE MPAA” bumper stickers all over town. Several of the payphones at school had those bumperstickers plastered all over them (I can neither confirm nor deny placing them there). The Futuristic Sex Robotz took it to a whole new level of cool with this song. Oh and pretty much anything by FSR is obscenely vulgar (but awesomely geeky), so obviously nowhere near safe for work: Download mp3 (Free)

Partytron (Electronic)

The Geeks Were Right & The Conductor

The Faint has quickly become one of my favorite artists of all time. They’ve got this grungy, industrial sound plus kickin’ bass beats: I dub this new genre… Partytron! “The Conductor” is about the conductor of an orchestra, stepping up to the stage and taking control of the music. “The Geeks Were Right” is all about the Sci-fi Prediction that we’ll all become robots someday actually comes true. The Faint gets a HUGE less-than-three from me :D

The Geeks Were Right by The Faint

The Geeks Were Right

The Conductor (Thin White Duke Remix) by The Faint

The Conductor (Thin White Duke Remix)

8-bit Remixes

So, this is probably the most represented genre of the geek music I listen to. Everyone and their mother has probably heard a video game theme remix somewhere along the lines. So I’ve decided to focus on only the *good* ones, lol.

RAC's Nintendo vs. Sega EP

RAC's Nintendo vs. Sega EP

RAC’S Nintendo vs. Sega EP

I can’t pick my favorite from this album: EVERYTHING is great. RAC is pretty much the crowned king of video game remixes in my world. Sonic and Mario getting together on the weekends for an 8-bit Party? Oh YEAH! The Remix Artist Collective Agency (RAC) is a group of artists that remix all kinds of popular music: I pretty much read (RAC Remix) next to any song as (Eff-YEAH Remix). Download zip of entire album (Free)

Anything by EEPROM

EEPROM is pretty much the God of Leah’s Musical World. Everything he touches turns to gold – I honestly haven’t found any song that he’s created that my mind hasn’t been blown countless times over.

EEPROM Remix of Weezer’s Say It Ain’t So: mp3 Download (Free)

The Beatles’s Lonely People (EEPROM Rigby Remix): mp3 Download (80¢)

EEPROM Remix of the Safety Dance: mp3 Download (80¢)

EEPROM Remix of Human Robotics: mp3 Download (80¢)

EEPROM Remix of OneRepublic’s Apologize: mp3 Download (80¢)

EEPROM Remix Rick Astley’s Never Gonna Give You Up (Rick Roll): mp3 Download (80¢)

DEFCON 0×11 Post-Mortem

Posted by: Leah Shanker on: August 5, 2009

After five consecutive years of watching cool people show off incredibly cool things, I decided to take a whole different approach to DEFCON this year. A number of my friends (including my wonderful husband Matt) took part in the Mystery Challenge this year after solving the initial registration puzzle a month before the conference started. Ever since I was a little girl, I’ve always had a soft spot for pen-and-paper ciphers and I knew that I would have an absolute blast joining the Mystery Challenge team. So, in a strange effort to enhance my character – I joined a badgehacking team instead :D

Our Badgehacking Team: Leah, Kenji & Matt

Our Badgehacking Team: Leah, Kenji & Matt

I had been preparing with Joe Davidson, Kenji Yamamoto and Matt Wyant for a number of months leading up to the badgehacking competition. To my great dismay, by the time I got to DEFCON (Thursday evening) – they were out of actual badges! I moped around, seriously considering joining the Mystery Challenge team and throwing up my hands in defeat at badgehacking.

But my faith in humanity was reaffirmed! A random friend from Twitter (@Ancients) picked me out near the Skyboxes and traded his real badge for my paper badge, “I would rather someone who’s actually hacking the badge have it instead of me”. I was in heaven! What an incredibly nice thing to do!!! Later on during the conference, I added some cool blinky lights to his badge in thanks (he also had to wait in the enormous badge exchange line the next day).

Check out the Wired Article for an in-depth look at the DEFCON badge!

After pouring over the source code and determining that the point of the badges was to get all the different badge types (“Contest”, “Speaker”, “Uber”, etc.) together to display a neat message – my eyes went to every badge that passed by me in the hallways. I was looking for someone who seemed friendly enough to let me borrow their non-human badge for I2C communication to test out the results. In my frantic searching, I found myself alone in an elevator with someone who seemed to have a cooler badge than I did – two rows of 17-segment LED displays that ate my little rainbow blinky LED for breakfast.

I asked him about his badge, “Is that the Blackhat Badge this year?” (Blackhat is the $2000/entry security conference you normally only attend if your employer pays for it)

“No, it’s the Ninja Party Pass.” I was stumped. My understanding was there was a “party badge” for $20-30 for anyone who only wanted to attend the DEFCON parties without paying the full entry into the conference. How could they possibly have received a cooler badge than mine?

He seemed to realize I was stumped. “It gets you into the most VIP party at DEFCON”. The elevator had arrived on his floor and he disappeared forever. Again I was stumped – to be honest, I never really had to worry about party entry at DEFCON (in fact, I had to escort Jeff Moss / Dark Tangent into a party last year because the bouncer didn’t know who he was). So I did a little bit of research and found out that the Ninja Party Pass was a required item for anyone entering in the Ceazar’s Challenge this year! NOW I wanted one! But by the time Friday night rolled around, everyone I asked about the Ninja Party Pass badges had said they’d all been distributed.

So I forgot about it for the time being and just hung out in the hardware hacking village – supposedly working on my badgehacking project. It was getting to be closing time for the HHV, and on my way out I notice a girl huddled over a complex-looking circuitboard, furiously soldering and muttering to herself. I was intruiged – I asked what she was working on and if there was anything I could do to help (being a newly appointed expert solderer). She mentioned her name was Amanda Wozniak from MIT and she designed the Ninja Party Pass Badge this year. They had apparently received a bunch of broken ninja badges that needed to be soldered up so she could give them out to her favorite people on Friday night.

“Maybe you should consider giving out the badge to someone who could fix it?” I suggested, merely in passing.

Leah-Corrected Ninja Party Pass Badge

Leah-Corrected Ninja Party Pass Badge

She shook her head and mentioned she hadn’t released the schematics yet, so fixing it would be pretty hard for anyone except her.

And then it dawned on her – she turned to me and asked “Hey, do you want to fix it? It would save me soldering time and picking someone at the party tonight!” I hugged her and happydanced all the way to the contest area to solder up the board.

At the actual ninja party, I met a few goons who were ecstatic that I carried around a butane-powered soldering iron to fix solder joints at the actual ninja party. Vodka-Red Bulls and Soldering: Best party evar!

After the Ninja Party, my focus went entirely to finishing the badge hacking project – a tamagotchi hooked up to a breathalyzer. The idea was that your digital badge-pet would get “thirsty” and you would need to immediately find the most drunk person in the room to blow into the breathalyzer to keep your pet happy.

See more about it on Forbes: http://www.forbes.com/2009/08/04/hackers-contest-defcon-technology-security-hackers_print.html

So, although I’m a little bitter about Zoz, Joe Grand’s co-host on Prototype This, winning the badgehacking competition this year: I’m SUPER excited about going back to DEFCON next year!!!

First NAU CS Department Newsletter Published

Posted by: Leah Shanker on: July 6, 2009

Although I try to hide it nowadays, the original intent of this blog was largely self-serving: a professional portfolio to showcase my accomplishments for prospective clients and employers. Once I began actually writing, however, something stirred within me to breathe life to the internet with my helpful tutorials and unique viewpoints. What I’m trying to say is: Please forgive the occasional personal plug as my heart is mostly in the right place :)   Ok, back to our regularly scheduled program!

From the time I started as a freshman (dual-majoring in Mathematics and Computer Science – I was such an idealist back then), I’ve watched the NAU CS Department blossom into a paragon of what a Computer Science Department should be. I was honored last semester when Professor Steven Jacobs asked me to write an article for the first issue of the NAU CS Department Newsletter because it felt like I would go down in history as having even a tiny part in the advent of its success.

Truth be told, the most influential event in the department change took place on the day when Dr. Eck Doerry assumed the CS Department Chair position two years ago. He’s famous amongst the students for his high expectations, awe-inspiring class lectures and fiery passion for ground-breaking positive change. I’ll now give him the floor in the first published issue of the NAU CS Department Newsletter:

First NAU CS Department Newsletter, Spring 2009 (Check out my article on Page 2!)

NAU Computer Science Department Newsletter, Spring 2009 (Check out my article on Page 2!)

Pimp Your Gradcap Party

Posted by: Leah Shanker on: June 7, 2009

With all our favorite Computer Science and Electrical Engineering students graduating last month, Joe Davidson and I organized a joint IEEE / ACM event with the intent of “tricking out” the classic graduate caps with a geek-chic flair! Ever year, the Construction Management graduates show up to the ceremony in yellow hardhats like Bob the Builder, so naturally we wanted to one-up them with something way cooler:

Overall, the event was a success! We stayed until the wee hours of the morning of the graduation ceremony to actually complete the projects, but MAN did those graduates look cool! When I graduate next year, I’m thinking of using something even cooler like the electroluminescent sheets!

If Martha Stewart were an Electrical Engineer…

Posted by: Leah Shanker on: May 18, 2009

Martha Stewart's Engineering Handbook

Martha Stewart's Engineering Handbook

Lately I’ve been hanging out with the Electrical Engineering majors in the upstairs electronics lab (they’re actually not as horrible as the other Computer Science majors would have you believe :P ) and one of them had dubbed me the “Martha Stewart” of Embedded Systems / Electrical Engineering because of my unusual take on compensating for component datasheet un-usability. Let me start this story off from the very beginning, a mere four months ago:

I was a total EE noob: no electromagnetism from Physics II, no introduction to circuits/components – heck I’d never even made a lemon battery! Before starting my Embedded Systems class this last semester, I was pretty much schematic-illiterate. The CS program here didn’t require me to take the “Introduction to Circuits” EE course as a requirement like in previous semesters, so I both lucked and missed out in that regard. I knew taking an upper level Computer Science elective based around Electrical Engineering principles would be difficult for me (especially considering nearly everyone else in the class had professional embedded systems experience outside of school). So I offered to buy some lunch for the Electrical Engineering majors upstairs in the lab in exchange for their patience in answering some ridiculously easy questions about circuits and components (Kenji couldn’t contain his laughter when I asked him to explain what a transistor was). So aside from voluntarily becoming the butt of nearly every Computer Science major joke they could throw at me, I learned a remarkable amount about how Electrical Engineers tend to approach the usability problem…

*crickets chirping*

Snip of Schematic from my RFID Reader Project

Snip of Schematic from my RFID Reader Project

That’s right, there is no approach! Or rather, you could say there’s too much benevolence amongst Electrical Engineers for the “way the historical engineers of the past” got things done that nothing seems to update in the field solely for usability reasons. Here’s your solution to the usability problem: Suck it up and rub some dirt on it!

Take, for instance, my schematic on the right. The U4 Component is what I’m referring to.

Go ahead, I’ll give you ten minutes to scour through the boxes and lines on the schematic to actually locate it on the page…. (Hint: it’s on the right side)

Now, as a Computer Scientist in training I know all about the value of abstraction: it allows the programmer to embrace the natural human way of thinking, leading to more elegant and bug-free code. When constructing schematics, there is a clearly defined need for block diagrams (details abstracted away for clarity). Obviously, we don’t need to know about the tiny little gates inside of an integrated circuit in order to use one.

But take a look at U4. It’s a binary counter IC, but you didn’t really need to know that. All you need to know is where to hook up the wires on the component: easy, right?

So I go ahead and start hooking up the wires just like it says on the block diagram and I come across something very curious…

U4 Block Diagram First Wiring Attempt...

U4 Block Diagram First Wiring Attempt

Ok, so I’ll give them the benefit of the doubt here…maybe the pin locations aren’t in the same place depending on what kind of pin packaging I order? Let’s check with the datasheet:

Connection Diagram from the 74HC4060

Connection Diagram from the 74HC4060

Nope…they are all exactly the same regardless of what kind of packaging you order for this component… Wow. So you’re telling me there’s this completely unnecessary layer of abstraction for this component on my schematic? What a complete and total waste of my time!

This isn’t the only example…I could go on an endless rant about how there’s a severe lack of intelligent standards when it comes to IC pinouts: The “U” shape means the top of the component…except if you’re looking at a PIC or if it’s the second Tuesday of every third month from a randomly chosen start-time in a proprietary religious calendar.

So most of my time working on my Embedded Systems projects this semester has been spent combing through every single component datasheet trying to find the useful gems of information even though this should be a relatively simple process: hook wire 1 to pin 1 and go.

Ok, enough ranting. Here’s my crafty, “Martha Stewart” solution to the problem:

My solution to schematic/datasheet chaos

My solution to schematic/datasheet chaos

Naturally, the only useful tidbit of a datasheet (pinout diagram) is always at the very end of the document…unless you look there first! I printed out only the pages of the datasheets that housed the physical pin locations (or wrote them out myself if they weren’t even provided by the manufacturer…annoying), cut them out and pasted them onto my schematic to save on context switching time. So really in order to begin a project, I have to get out my scissors and glue and artfully create a  mashup (flashback to gradeschool craft time) for every single schematic I’m ever given in order to save myself countless hours of repetitively retrieving the same information from each of the component datasheets. Phew!

BTW, I found an excellent resistor color band calculator online during my work that I wanted to share with you all – saved me a ton of time :D

(…why can’t they just list resistance right on the resistor? I mean, I’m all for rainbows, but really…)

The Elusive Art of “De-Geekifying”

Posted by: Leah Shanker on: May 11, 2009

Boris is invincible!

Boris is invincible!

Yes, yes, we all went through similar situations in high school where flying your geek flag was pretty much like taping a big juicy red target on your back and handing the rest of your graduating class paintball guns: it usually didn’t end well for us then.

But, the wheel turned and little geeks grew into bigger geeks and trotted off to college to study the science of geekery. They soon noticed that being a geek wasn’t a bad thing anymore, in fact it was even cool here.

You mean to tell me I can be as geeky and obscure as I’d like and everyone around me will actually understand and maybe even praise me for it? Do you have any idea how proud that made me?! So proud that I never bothered to notice how many normal people I’d alienated along the way trying to be as elitist as possible…

Sadly, the real world isn’t entirely made up of geeks. So, how do we geeks evolve and adapt to it? Skillfully, as always. By studying the algorithm to degeekify, of course :D

(This comes from an interesting discussion lead by my friend Murphy & my professor Dr. P) Let’s take for example, the linux file system structure:

/sbin System binaries used by the sysadmin. (Oh yeah, they can also be in /usr/sbin so check there too!)

/bin System binaries used by the sysadmin or regular users that are super important. (Oh, also check out /usr/bin for the less important stuff. Oh and also /usr/local/bin. So yeah.)

/dev Device nodes (not program development space).

/etc Config stuff

/lib System files & libraries

/tmp Temporary files

/var Any kind of logs or temporary configuration files (not in /tmp?) . And web stuff. Wait, what?

True die hard linux fans will refer you to some kind of guru on the filesystem structure, who will angrily rant about how linux applications developers are idiots who have no idea where things are supposed to go; or sysadmins who put modules in the wrong places… HOW DARE THEY misinterpret this cryptic and ambiguous filesystem structure! C’mon, if even the linux applications developers (fellow geeks) can’t even figure out where things are supposed to go, there’s obviously a flaw in the design of the system (Way to go, gobo linux!)

Since we’re picking on Unix anyway (pretty much the governing body of the design of current operating systems), let’s go a bit further.

$ tar  -xvf file.tar
$       ... wait, you're done or you're just stuck? hello?

So when a command on the Unix commandline executes successfully…nothing happens! I mean, I guess you got no errors…no news is good news? Sure, we’re smart geeks and can used to this notion, but this is still an inherent flaw in the design of the system!

And really, how effective is a terminal where you have to refer to the documentation (manpage) every time you try to execute a command you haven’t used in a while? We need some coherent standards for arguments across linux applications!

Let’s go with another example, this time with less…flame war bait:

So, you’re a software engineer. You have to conduct user surveys of your target user group before beginning to design your software architecture to gauge what a good use of your development time might be. So, you ask exactly what you want to know:

  1. For the user selection panel, would you rather have a drop-down box or a Jtextfield you can enter your own data into? (Please specify if auto-complete would also help…)

Natural, right? You asked what you wanted to know. Exactly like calling a function: you pass (ask) exactly the correct parameters in the indicated order (questions) to extract your necessary information (survey data) from your data store (person). You even went as far as to suggest a helpful feature! (You’re so thoughtful ^-^ )

I’m sorry to have to be the one to tell you this…but (most) people aren’t functions. There is a fuzzy disconnect between what you want to know and what you really should want to know with user surveys. Normal people have no idea about their preference between two different technical components: they’ve never really thought about it before… and honestly, they really shouldn’t have to.

Geeks inherently worship the machine. User misunderstandings (PEBCAK…or PEBKAC… man that acronym needs a standard :P ) are interpreted as a problem of a lack of user knowledge, not even considered to be a flaw in the design of the system.

Yes, computers are simply just tools. But too often we forget that computers aren’t just physical tools like a shovel; we can actually redesign the computer depending on our needs. Sadly, we are not good enough to completely redesign a human from the ground up, regardless of how angrily we complain about the stupidity of our users. The only thing left is to redesign the system…think of it as teaching the computer to evolve along with humanity.

NAU ACM Video Montage 2009

Posted by: Leah Shanker on: April 17, 2009

So 5 of our most prominent officers are graduating in two weeks and I’ll be stepping down as ACM President next semester to focus on graduating, so I created this video montage as kind of a tribute to the movers-and-shakers and to say goodbye:

As I was going through all my old photos and videos, it occurred to me that we are probably the most awesome ACM Chapter in existence! Here’s a quick list why:

  • ICFP Programming Contest: (see my article for a full write-up) The International Conference on Fuctional Programming’s Programming Competition. It’s a worldwide codefest that starts on Friday at noon and goes until 8am Sunday morning: A caffeine-fueled incredibly fun weekend of coding! We were tasked to design a Mars Rover that could do quick and efficient crater & alien avoidance. Our debug messages were featured in the video: “OMG WE’RE ALL GONNA DIE” or something similar :D
  • The NAU ACM Game Cabinet: From the ground up, we built an arcade cabinet to feature only NAU Student-created video games. It’s now being housed in the front area entrace to the Engineering building and gives the experience of actually playing this game in the arcade.
  • DEFCON16: Our yearly tradition here at NAU ACM is to hop in a caravan together and drive to Las Vegas to attend one of the largest computer security conferences in the world: DEFCON. (See my previous post on DEFCON) One of our members, Bryce Bearchell, won the Open Capture the Flag competition in 2008 and now struts around with the coveted “Black Badge”. Another very prominent member, Michael Brooks, was a speaker and gave two different presentations.
  • The NAU ACM Robotics Projects: We’re currently building two different robots:
    • Our “ground” unit, Gauis, will autonomously navigate the Engineering building
    • Our “air” unit, which will be a blimp, we’ll fly around in the SkyDome and take to Science Day, etc.
  • ACM-ICPC2008: The International Collegiate Programming Contest. We caravaned down to Tucson together to compete at the UofA against all other colleges in the Rocky Mountain area. From the video, you can see we flew our massive pirate flag in our workspace…LOL!
  • Digital Carnivals (w/Custom Scoring Software): Digital Carnivals are our unique take on LAN Parties. Oh yes, we had an all-night code party to write automatic tournament ranking & scoring software for our first LAN Party, which we’ve dubbed Digital Carnivals. Since that first one, we’ve grown to enourmous size, with corporate sponsorship and three different large grants for hosting our events.

Mythbuster Grant Imahara Speaks at NAU

Posted by: Leah Shanker on: March 30, 2009

Mythbuster Grant Imahara

Mythbuster Grant Imahara

Grant Imahara came to NAU today and talked about being a Mythbuster amongst other cool geeky things he’s done in his life, including working for Industrial Light & Magic (every geek’s dream job).

He started out with the history of the Mythbusters show: an Australian producer had a great idea for a TV show based on science intended to disprove common legends for entertainment. After assembling the team of Adam & Jamie, it became apparent that the show would need a “build team” (the first few episodes took on the order of 6 months to produce, which is obviously a little too long for the tastes of the Discovery Channel). Grant became one of the build team members partly due to his previous experience with animatronics at Industrial Light & Magic.

Star Wars fans everywhere want to be (with) him because he’s one of the few official R2D2 Operators in the United States and spent some time in Japan doing Mitsubishi commercials in the actual C3PO suit (Apparently he didn’t fool Carrie Fisher in his suit, though).

One of the more interesting things he talked about was how he managed to get a job at Industrial Light & Magic in the first place. Apparently Tomlinson Holman (the T in THX Sound) was a professor at the University of Southern California while Grant was an Electrical Engineering student. Grant literally just offered to be his personal assistant for free for a year and Holman stretched his contacts to get Grant a job at ILM. Moral of the story: Slum it for connections!

At ILM, he was one of the reverse engineers recreating the Energizer Bunny after a contract dispute with the original father of the bunny “took his bunnies and left”. It’s apparently got 18 servo controllers inside and is actually powered by Energizer batteries (44 of them to be precise). He told a humorous story about waiting in line at the TSA security checkpoint at the airport and having a very fluffy entity show up on the x-ray. Apparently the bunny even has his own “fluffer” – oh yes, some lucky person has “bunny fluffer” on a resume.

Grant Imahara and Leah Shanker

Grant Imahara and Leah Shanker

He talked about the previous seasons of Mythbusters and obviously plugged the upcoming season. Some cooler Mythbusters episode recaps include:

  • The “drafting a big rig” episode where Grant got to drive a car as close as 5 feet from a Big Rig to determine if it actually significantly increases gas mileage or not. (It does, but it’s super dangerous…)
  • “Exploding a Lava Lamp”. The story goes that a man was too impatient to wait for the light bulb to heat up the wax in his lava lamp and put it over the stove, resulting in his mobile home going up in flames. This was a true story, says Mythbusters, who replicated the experiment among other related things (heating an unopened can of beans using a campfire, for example. Explosions galore!).
  • In the upcoming season, they apparently prove/disprove the spinny-bullet scene from the WANTED movie. There was apparently a “luxury car drop” episode as well which is supposed to prove or disprove the claims from the Lexus superbowl ad (in spite of many legal threats!):


So, yes, he was touring universities plugging the new season of Mythbusters. Ooh and I got to play the part of the annoying stalker fan and got a picture with him after the show by using my urban ninja skills. Yeah, it’s sort of blurry and crappy, but whatevs! It was a lot of fun and I’m totally inspired now!

UPDATE: NAU’s Plaid conducted an interview with Grant after the presentation.

“Living Pictures” for Kids: The New Creative

Posted by: Leah Shanker on: March 22, 2009

The Background (Why am I thinking about this?): I’m currently taking a class on User Interfaces / Human-Computer Interaction (HCI) this semester. We’ve been tasked with designing a typical application (a finger-painting program in our scenario) for a very specific and difficult audience (in this case, 3-5 year old children). We were given a two-week window for completion and I got the project finished in time, but it left me with some very interesting goals for the future…

When I was a kid, I remember how frustrating art could be. I would have a perfect picture of a giraffe in my head and the hardest part would be…getting the organic blob of yellow and brown to begin exhibiting even the slightest giraffe-like qualities. As a kid, this whole translation from imagination to creation brought me a great deal of frustration. But man did I love finger-painting!

The rich tactile sensation – sticking your hands (which were small enough to completely engulf in paint!) into a jar of fingerpaint…feeling the cold liquid warm up the longer you let your hands go swimming…hearing the very satisfying and silly sounds of “splorshing” as paint would spill over the sides of the plastic containers onto your canvas. As your hands surface from the bottom of the paint pools a trail of paint globs would follow in a spray of happy freedom. Inevitably, you would pull too hard and paint would decorate your shoulders…but it’s ok because you’ve got on one of your mom’s old T-shirts that drapes over you like a tent. You look around the room to see if an activity this fun can really not be condemned by your parents…and you find two familiar faces laughing alongside you and pointing out that you’ve got a rainbow dripping down your tiny arms like melting ice cream. And now it’s time to show the canvas that you don’t need to be able to draw out the perfect sketch lines of a giraffe like Sarah in your montesorri class in order to appreciate art…you’ve just got to find a way of transferring the art from your limbs to the page in the least efficient way possible…

So, how exactly is a computer finger-painting program supposed to compete with that? Obviously we can’t top the feel, sound and the mess of finger-painting with our humble peripheral technologies of today (though perhaps if we could develop the eXistenZ controller…). In order to win at this game, we’ll need to make like the Nintendo Wii and play on another field entirely: the one inside their imagination!

Drawing from personal experience again, the least fun aspect of art for little Leah was the mind’s intention never really matching the end-result. How about we create a paint program that makes this translation a little easier, possibly making the whole experience more engaging and inspiring? Something that tugs on the pant-leg of a child’s imagination. A paint program that determines what you’re trying to depict by which colors you choose, what kind of painting strokes you make and the sound of your voice (Going off the theory that a child painting a cow would probably “moo” along with the picture while painting or just say the word “cow” aloud.).

What makes me think this is possible? Well, if you think about it, the actual content of kid paintings is a remarkably simple number of things: a house, a dog, a cat, a flower, a star, etc. I’ll have to spend more time watching children paint (on YouTube perhaps?) to determine the full list. To get started, here’s a great video I found of a small girl and her father painting. (I’ve gathered it was dad’s idea to have his daughter paint a different picture in each one of the small boxes. Though why they chose white on white I have no idea…maybe mom’s favorite color?):

These small number of possible pictures gives us a wonderfully small number of colors & paint strokes to watch out for. Here’s an example of some possible “assumptions” made by the program based on the kinds of paint strokes a child uses:

Possible Kid-Paintings: Solid = Required, Dotted = Optional

Possible Kid-Paintings: Solid = Required, Dotted = Optional

We could also give the child a palette to choose their background color and then make certain assumptions about the scene from there:

  • Black would suggest a “Space” scene and warp all “person”-like objects into aliens, circles into planets, dots into shining stars, oblong-things into rocket-ships, etc.
  • Brown would suggest an “Underground Lair”: dirt, moles, ostriches, a network of ant colonies, bones, dinosaurs, etc.
  • White would suggest a “Snowy” theme: igloos, snowballs, snowmen, polar bears, penguins, snowboards, skiis, etc.
  • Yellow would suggest an “Egyptian” scene: with sandy pyramids, Cleopatra and King Tut attire, sphinx, etc.
  • Green would suggest a “Grass” scene: immediately turns the scene into a field of waving blades of grass, maybe with rabbits, eggs, dogs, cats, bugs, etc.
  • Dark Blue would suggest an “Underwater” theme: Mermaids, fish, dolphins, sharks, submarines, etc.
  • Light Blue would suggest a “Fairytale” theme: Clouds would appear in the sky and we’d have angels, unicorns, faeries, dragons, princesses, etc.
  • Gray would suggest a “Cityscape”: Firetrucks, Police Cars, Skyscrapers, bulldozers, construction sites, planes, People in business attire, etc.

Once we’ve determined what kind of thing a child is painting, we can help them along a bit with the translation. We could take a very passive approach by slowly filling in a very light shade of green into where the grass should be under the house and light blue into the sky. We could also take the assertive approach of “straightening” their house lines or adding tiles to the house roof (My Photoshop skills are severely lacking, but this gets the point across):

"Conversation" House

"Conversation" House

Once the computer understands what kind of picture the child is trying to paint, we can have an actual conversation going on between the child and the computer! Perhaps the computer will decide to add some rabbits to the scene (maybe from a voice input of the child saying “bunny!” aloud)…and these rabbits hop onto the grass and nibble at the grass in front of the house…

So the obvious question remains: What happens when the computer misinterprets what the child is trying to draw? Well, how would a child respond? By getting angry! The computer would receive a very high-pitched “NO” command (or perhaps just crying, whatever) and immediately undo whatever action was just taken. If this “undo” command is then followed by a “STOP” voice command, then the computer would most likely shut off its helpful conversation entirely and let the child paint their picture in peace.

My inspirations for this project include:

  • The Graffiti 2 Stroke Alphabet for the Palm PDAs (Ok, so I was looking for a Graffiti video tutorial online somewhere so I could show you, but got distracted and found one of this really cool robot who forecasts the weather in Palm’s Graffiti language! So cool!):
  • Crayon Physics Deluxe Video Game:
  • The Creative Writer & Fine Artist Software Packages for Kids: These were some of my favorite kid programs out there! (I’m currently working on another blog post with all my favorite abandonware from the early 90s with download links and reviews…stay tuned.)

    Screenshot of Creative Writer

    Screenshot of Creative Writer

So these are just my initial brainstorm ideas, hopefully I’ll pursue this project and post a demo for review!

Leah’s Recent Tweets

  • It's situations like this that make me realize the riduclousness of the UI design on the Xbox360. 2 weeks ago
  • "It's asking me for a hard drive. Now it's asking if I want to turn off the controller or the console" "Push xbox button, but don't HOLD it" 2 weeks ago
  • Trying to talk my mom through the Xbox menus remotely. She accepts a party invite for 1vs100 and ends up in the "Lips" menu lol. 2 weeks ago
  • Woohoo, 1v100 Live is on now! 3 weeks ago
  • Man I really wish someone would make a kid's show as cool as Ghostwriter was back in the day! Taught me crypto! 3 weeks ago

del.icio.us

 

February 2010
S M T W T F S
« Jan    
 123456
78910111213
14151617181920
21222324252627
28