Archive for November, 2010

10% of America

Sunday, November 28th, 2010

I visited my roommate’s amazing family in North Hampton, New Hampshire this Thanksgiving. This was my first time out of New York City – and I ended up visiting 4 new states. So I’ve basically seen 10% of America now. Easy. Here’s a list of things that might mean nothing to you, but a lot to me, just to remind myself of this great holiday:

  • GF = gluten free
  • Schrimp vs. Scrimp
  • Renting phone from the 70′s. Still working!
  • Flower tea
  • Rutabaga
  • The Heart and the Bottle – iPad picture book
  • Why Norwegians put feathers on twigs and hit cats out of barrels during fastelavn, and put candles in blonde girls’ hair
  • Dog show on TV. Some dogs have no eyes.
  • The first and best Thanksgiving dinner I have ever eaten. Sweet potatoes, and even sweeter potatoes. OMG.
  • Explaining the vegetables of Norway to a nice and extremely interested 91 year old New Hampshirite
  • MacGruber
  • I cross-stitch to become married one day
  • Gigantic houses in taxfree heaven
  • Ocean and beach
  • Mobile homes
  • Walmart
  • Thrift store. Got a New Hampshire scarf.
  • Pawn shop. Old coins, Beatles and Kennedy for president pins
  • Bought a ridiculously warm Overland Sheepskin coat – best buy of the day!
  • Charming Portsmouth
  • Mexican food in Maine
  • Federalist houses
  • Candle pin bowling
  • 50 cent golden necklace from a gumball machine
  • Hot rocks in living room
  • Harry Potter #1. Do I like pointy ears movies now?
  • Fatherly advice: See 9 twice a day. As in 9 AM and 9 PM.
  • Walk in sun on Atlantic avenue
  • Cemetery with Carters, Browns and Tarltons
  • Cute dog with angry necklace
  • Rotten pumpkins on a porch
  • Stop motion animation. Sadie Benning.
  • Rainbow sailboat kite
  • Through vs. Thru
  • Hyggelig vs. Cozy
  • Roommate tells the story about how the Grinch ruined Christmas. Then he sings.

Some photos from my North Hampton Thanksgiving

Money and conversations with robots

Tuesday, November 23rd, 2010

The Norwegian State Educational Fund (Lånekassen) is where all Norwegian students get financial support to get through their studies, and when they have their degree and all is good, this is where a big chunk of the money has to be returned. Most Norwegians have or have had a relationship with Lånekassen. Considering this large user base, this is a big client in Norway. During my years as a consultant I have never worked directly with them myself, but my former colleagues have. This is my impression of what seemed to be the problem that needed to be resolved with Lånekassen some years ago:

For some reason, all students feel so “special” that they don’t think they can find the answer to their particular question at the Lånekassen web site, and then they pick up the phone. But actually, all their questions are very generic. We just need to make sure they look through the FAQs where all answers are provided. If the students would just see this, a lot of calls would be prevented.

And now that I am back as a student dealing with Lånekassen, I keep these phrases in the back of my mind while browsing through a bunch of FAQs voluntarily, trying to be my former colleagues dream user. Believe me, I have no inner desire to make a transatlantic call, waiting in line for 45 minutes. I never even had that inner desire to call when I lived in Norway.

However, after my efforts trying to fit my question into one of the generic boxes by combing through lanekassen.no, I realize something. I really am special. I need to contact the people with the money to get this sorted. I giggle a little when I try to navigate to the contact form to ask my question, when I’m forced to once more read through the same freaking FAQs that I now know by heart. No, I’m sorry, it seems I’m still oh so special. My question, or anything even close to my question simply is not there.

So I write. These are not my words exactly, but a creative translation of my more polite and official Norwegian version:

Nov 9th 2010

Hello dear provider of money – the key to my future knowledge.

I am currently studying at School of Visual Arts in the U.S. I have to pay $ 17,000 by December 1st to get to continue my education at SVA in the Spring semester. Considering that you already have accepted my application for funding the whole first school year, I guess this means that the money for the Spring semester would be just around the corner. However, I am not sure exactly how this works and when I can expect them. Do I have to sign something (like a new promissory note) to get the money transferred to my account even though I did sign something back in August? If so, can I expect that this note arrives at my Norwegian or my American address? And when?

Best regards,
Kristin Breivik

As I had waited for the reply for more than the promised 2/3 working days, I was all excited when I finally got an email about the fact that I had got an email in the Lånekassen mail system. To figure out exactly how they would make my money troubles seem far away, I logged in to the Lånekassen My site to read the following enlightening note:

Nov 16th 2010

Hi

The promissory notes for Spring 2011 will be sent from us mid December.

Best regards
Jane Doe
Lånekassen

Right. Ehm. WHAT? Hello, Jane “FAQ Robot” Doe. No brain and no empathy what so ever. I am trying to decipher this message in the best possible way. Maybe she did not understand that I am studying abroad. Surely they have to handle the students abroad differently than the Norwegian students, right? Most schools are free in Norway, but they do know that students abroad have to pay tuition and that this is generally due early. But either way. This answer is lacking so much in so many ways.

My plan B* is partly activated, but I am not giving up on Lånekassen completely. I need the money, and sooner rather than later. So I navigate through their annoying FAQs once more, to send this email their way:

Nov 17th 2010

[Explaining my situation once more, referring to the reference number etc.]

[Quoting the reply I got from Jane Doe]

So does this reply basically tell me that I will not be able to pay my tuition on time? Am I the only student abroad with Spring semester tuition due in December?

Hoping to get a quick reply, considering that this is kind of urgent now :)

Best regards,

Kristin Breivik

So yesterday I got this new email from Lånekassen.

Nov 22th 2010

[…]

Your application has been processed. A letter reply is sent to [my address in the U.S.].

How much do you get?
Log in to the Lånekassen My site to check the amount of money.

[…]

Best regards
Lånekassen

Is this a reply to my email? Were my last question considered to be an application of some sort? I thought I applied sometime before the summer? And my application for the whole school year was accepted, so I wasn’t really wondering how much money I get. I thought we had reached an agreement on that matter a long time ago. Really. I just wonder WHEN I will get the money Lånekassen so kindly offers to lend me, and WHAT (if anything), I can do to make it arrive in my account asap.

I am sure my case is rather generic. But after going through all the generic FAQs without finding my answer, I expect to be treated as an individual when I approach customer service. Yes, I actually expect to be treated as if I’m special in a way. At least throw in a hint of human empathy before you FAQ-spam me, so I can trust that you have read my story. This automatic-robot-approach is certainly not doing anyone any good.

In my cybernetics class, we are expected to make a model of a conversation this week – trying to depict different participants actions and underlying goals, and how we all struggle to get an understanding of each others goals when in a conversation. We constantly create and revise our mental model of what the other person really wants, based on the actions this person takes. In dialogs, we often attempt to reach an agreement of some sort, aiming towards aligning our goals as much as possible. Had I only understood what Lånekassen’s goal is in my dialog with them, I could use this case for my assignment. The sad part is that Lånekassen is not actually participating in this conversation at all. This ends up being a conversation I have with myself about what they could possibly mean by these random blurbs of FAQ emails. I struggle to apply meaning to what seems to be meaningless actions. Maybe the Lånekassen employees have a clear mental model of their inner workings, but they are simply terrible at communicating this to me to help me act so that I reach my goal.

*It’s obvious that this is not gonna go my way within the tuition bill due date. As mentioned, my plan B is activated. Plan B = parents with some money to spare. Thank God that I am one of those students that have a plan B. Lucky me!

I’m sick. Sort of.

Friday, November 19th, 2010

Being sick for me is not a big deal. It’s usually a 2-day thing, some light fever, headache, and the occasional sneeze — and then it’s all over. Although I don’t feel like I’m about to die right now, my brain is not ready for the heavy school assignments that are lined up. So. I do silly things I never do normally, like painting my toe nails even though it’s November.

Come to think of it, maybe I can use nail polish for my flowery Craft and Communications project? I think that was a pretty bad idea. Such a slow brain. I’ll sleep on it.

Lab #9 Serial

Wednesday, November 17th, 2010

So, this was the most interesting thing we did in this lab – letting Arduino and Processing work together in perfect harmony.

But it all started when we…

CONNECTED A POTENTIOMETER
We attached the potentiometer’s outer red and black wires to power and ground, and connected the middle wire from the potentiometer to the Analog input pin 0 on your Arduino board.

SENDING SERIAL OUTPUT
Used the following Arduino program to send serial output of the values as bytes out to the computer:

int analogPin = 0;
int analogValue = 0;

void setup()
{
// start serial port at 9600 bps:
Serial.begin(9600);
}

void loop()
{
// read analog input, divide by 4 to make the range 0-255:
analogValue = analogRead(analogPin);
analogValue = analogValue / 4;
Serial.print(analogValue, BYTE);
// pause for 10 milliseconds:
delay(10);
}

CHECKED SERIAL OUTPUT
We opened the Arduino serial monitor and using the default settings of parsing at 9600 baud, we played with the potentiometer to see the output (or scrolling) of ASCII values.

Turning the potentiometer at different speeds affected the output (numerals, versus capital and lowercase letters). Click here to see it in action.

VERIFYING SERIAL PORT
We loaded a Sensor Graphing Sketch program to Processing. But first, before putting it into action, we verified the correct serial port.

MAKING A GRAPH
After verifying, we played the graphing program in Processing. This program basically demonstrated how serial output can be used to drive communication between different software components (in this case Arduino and Processing). And here’s the result:

Lab #8 Motors

Wednesday, November 17th, 2010


Parts we used:
H-bridge, diode (brownish red colored little fellow), TIP-120 transistor (three legged black square), small DC motor, 10 µF capacitor (the black cylinder). We also used the breadboard, hook up wire, Arduino, potentiometer, switch, 1K Ohm resistor, 10K Ohm, resistors (or similar), wire stripper, multimeter.

HOOKING UP ARDUINO BOARD, ADDING POTENTIOMETER
Hooked up the Arduino to the breadboard, and then we added a potentiometer with the middle “output” wire connected to analog pin 0.

ADDING MOTOR
We soldered wires to the motor, and connected the motor wires to power and to the center collector pin of the TIP120 transistor. Then we connected the output end of an LED to the same center collector pin of the transistor. Then we added a diode with the input end of the attached to the right-side emitter pin of the transistor. This diode will prevent a spinning motor’s “blowback” current from shorting out the circuit.

We connected a 1K ohm resistor to the left-side base pin of the TIP120 transistor. We wired the other end of that resistor to Arduino digital pin 9. To reduce noise in the circuit, we put a 10µF capacitor between the power and ground rails of the breadboard. The circuit was completed by connecting the right-side emitter pin of the TIP120 to ground. This is what it looked like:

UPLOADED CODE
Uploaded the following code to translate the analog input into digital output that moves the motor.

int motorPin = 9; // motor connected to digital pin 9
int analogPin = 0; // potentiometer connected to analog pin 0
int val = 0; // variable to store the read value
void setup()
{
pinMode(motorPin, OUTPUT); // sets the pin as output
}
void loop()
{
val = analogRead(analogPin); // read the input pin
analogWrite(motorPin, val / 4); // analogRead values go from 0 to 1023, analogWrite values from 0 to 255
}

LOOK, it works, and we made a 6 seconds video to prove it!

ADDED A SWITCH
Removed all components except the motor and the wires connecting power between Arduino and the breadboard, and then hooked up a regular switch (SPST) to the breadboard.

ADDED AN H-BRIDGE
By adding a bunch of wires to different places on the breadboard all of a sudden an H-bridge was hooked up. Amazing. This is what such an H-bridge looks like all wired up:

This H-bridge combined with the code below was supposed to let us control the motor to go in different directions depending on the switch being in ON or OFF position. We didn’t actually make it happen, and we are not sure why – even after troubleshooting for a while. However, we are pretty sure the answer is hidden somewhere within the delicious spaghetti of wires surrounding the H-bridge.

const int switchPin = 2; // switch input
const int motor1Pin = 3; // H-bridge leg 1 (pin 3, 1A)
const int motor2Pin = 7; // H-bridge leg 2 (pin 7, 2A)
const int enablePin = 9; // H-bridge enable pin
const int ledPin = 13; // LED
void setup() {
// set the switch as an input:
pinMode(switchPin, INPUT);
// set all the other pins you’re using as outputs:
pinMode(motor1Pin, OUTPUT);
pinMode(motor2Pin, OUTPUT);
pinMode(enablePin, OUTPUT);
pinMode(ledPin, OUTPUT);
// set enablePin high so that motor can turn on:
digitalWrite(enablePin, HIGH);
// blink the LED 3 times. This should happen only once.
// if you see the LED blink three times, it means that the module
// reset itself,. probably because the motor caused a brownout
// or a short.
blink(ledPin, 3, 100);
}
void loop() {
// if the switch is high, motor will turn on one direction:
if (digitalRead(switchPin) == HIGH) {
digitalWrite(motor1Pin, LOW); // set leg 1 of the H-bridge low
digitalWrite(motor2Pin, HIGH); // set leg 2 of the H-bridge high
}
// if the switch is low, motor will turn in the other direction:
else {
digitalWrite(motor1Pin, HIGH); // set leg 1 of the H-bridge high
digitalWrite(motor2Pin, LOW); // set leg 2 of the H-bridge low
}
}
/*
blinks an LED
*/
void blink(int whatPin, int howManyTimes, int milliSecs) {
int i = 0;
for ( i = 0; i < howManyTimes; i++) {
digitalWrite(whatPin, HIGH);
delay(milliSecs/2);
digitalWrite(whatPin, LOW);
delay(milliSecs/2);
}
}

That’s NOT trash!

Monday, November 15th, 2010

THE CONCEPT
It’s not always easy being green. A lot of recyclable materials end up being disposed of as waste because citizens don’t fully understand the complex recycling system… That’s NOT trash! is the app about when, where and how to handle your waste and recyclables to help the citizens of NYC make their city a greener apple. The app will give the user an updated collection schedule based on where the citizen lives. It will also encourage the citizens to reduce waste and recycle more — by explaining how the recycling system works, by revealing recycling rates for the different neighborhoods, and through the general tone of voice of the app. The user can also manage notifications to get a reminder of when to take the trash or recyclables out.

THE PROCESS
But it all started three weeks ago, when I first came up with the idea for this recycling app. I made three wireframe sketches, using Skitch to get a rough look, and to prevent myself from going into too much detail.

I got good feedback on those sketches, and decided to go further the second week by adding more screens, and make the design a bit closer to the look and feel I wanted. I also got all the screens into a model called a wire flow, and mapped this flow to the different data sources I would use. This second week I did all work in OmniGraffle – the program I am most comfortable using.

I got a lot of useful feedback from my classmates after this second iteration. We discussed how to make the notification settings more minimalistic, how to better integrate all the features I wanted in the WHERE-section, and finally we talked about in what way it would make most sense to share an app like this.

I did not want this app to alert all social media every time the user recycled something, because that would probably be very annoying for both the user and his or her social circle. I consciously made the decision to put the Share this app-feature in a less intrusive location (in the ABOUT-section). My classmates thought no one would really share the app just like that, and wanted the context of the user’s green actions connected to the sharing. With their input, I did something in between – I still let people share the app out of context from the ABOUT section. But in addition to this, I will make the sharing option appear after the user has received a notification; not every time, but maybe about once a month. This way the user will not be too bothered, and the user’s friends will not get all spammed by the user’s green actions. In this wire flow, I fixed all these issues, to be ready to go on with the visual stuff:

Basically, what I did the second week of this process is how far I would normally go when it comes to the visual design. Then a graphic designer would be my savior. This time, however, I was left on my own to finish up the whole thing. I downloaded an iPhone kit for Photoshop, took a deep breath, and dived into the art of photoshopping to try to make the app all smooth and fancy. In the beginning it took me forever to find the different functions, but by forcing myself to go through all the screens, I got more efficient. I took a few short cuts by importing some elements from my OmniGraffle file, though… So the design might not be that fancy, but I do feel more comfortable using Photoshop now, which was my goal for this part of the assignment. This is a little sneak peek of the smooth and fancy version of my app:

To see more visuals, this pdf is the place to look.

Lab #7 Processing revisited

Saturday, November 13th, 2010

These people are freaked out. Why? Unless you click on the picture, you will never find out! In addition to these freaked out people, I have also made bouncing squares, blinking squares, squares that change color and snow men. It’s all here:

SquareLights
RaceTrack
ColorSquares
Bounce
Snow man
Freaked out creatures

The nine year old art director

Wednesday, November 10th, 2010

We got a short brief for this final project from the people behind the after school writing program 826NYC last week. Our mission is to redesign the blog Fish slaps a baby to meet their students (age 6-18) demand for a nicer looking, more flexible website that will better support the different kinds of formats and content they want to publish. In the future blog, the children will be able to choose between different, carefully designed templates to illustrate the feel of their blog post. These templates will be based on the students own creative ideas.

Our first meeting with the students happened tonight in their workspace, and we were all set for a creative brainstorming and moodboard session where the 826NYC students were in charge, and the SVA students their humble and curious assistants. Armed with paper scissors, I was helping several students finding the magazines and images that would best illustrate their ideas. The concept I will work with for the next weeks, is one that fits me quite well, considering that I’m a garden owner miles away from my garden. So why not grow a digital garden template based on these instructions:

CONCEPT IDEA: BEAUTIFUL FLOWERS
Flowers in gardens, especially roses. Favorite color is pink, but lilac and yellow is OK too. And sparkling things. Like her bracelets. One time when she played with her friends in a garden, she hid a bunch of rocks and the others had to find them. She also likes eggs and chickens, and she has seen someone kill a chicken once. With a knife. But that’s another story, and another concept all together.

Having a nine year old art director has been lots of fun. So far. We’ll see if I meet her expectations as the process evolves. I believe she was pretty happy with my paper cutting abilities, at least…

Spelling Magic

Sunday, November 7th, 2010

We needed to find a problem in the world, and then fix it through the use of physical computing. Our problem is that we simply hate spelling mistakes. To make people spell correctly you need to get to them early. We made a simple game for kids to play with, that will give them immediate feedback on whether they are spelling right or wrong. In the short video below we are spelling the word ART. This is a prototype, which means some other 3 letter words can be spelled, but unfortunately not all words. The game is limited because we have not made enough contacts in each letter space for all letters of the alphabet to be used.

THIS IS HOW IT WORKS

THIS IS OUR LITTLE SECRET

AND THIS IS THE MIGHTY GAME BRAIN
…or the code behind it if you like. Except that in this code example, the user has to spell the word CAT instead. I guess CAT is a bit more kid-friendly than the word ART. Anyway. Game brain coming up:

//PIN FOR THE LED LIGHTS CONNECTED TO PLACES ON BLOCK TRAY

#define LED 10 // the pin for the LED for first letter block
#define LED2 11 // the pin for the LED for 2nd letter block
#define LED3 12 // the pin for the LED for 3rd letter block

//THE CONTACT SPOTS ON THE BLOCK TRAY

#define P1X 2 // the input pin where the contact for block 1 is connected
#define P1Y 3 // the input pin where the contact for block 1 is connected
#define P2X 4 // the input pin where the contact for block 2 is connected
#define P2Y 5 // the input pin where the contact for block 2 is connected
#define P3X 6 // the input pin where the contact for block 3 is connected
#define P3Y 7// the input pin where the contact for block 3 is connected

//STORING STATE OF THE INPUT PINS FROM LETTER BLOCKS

int placeX = 0; // val will be used to store the state of the input pin
int placeY = 0; // val will be used to store the state of the input pin
int place2X = 0; // val will be used to store the state of the input pin
int place2Y = 0; // val will be used to store the state of the input pin
int place3X = 0; // val will be used to store the state of the input pin
int place3Y = 0; // val will be used to store the state of the input pin

//THE WORD THE USER MUST SPELL

String theword = “CAT”; // using a constant String

void setup() {
pinMode(LED, OUTPUT); // tell Arduino LED is an output
pinMode(LED2, OUTPUT); // tell Arduino LED is an output
pinMode(LED3, OUTPUT); // tell Arduino LED is an output
pinMode(P1X, INPUT); // and contact is an input
pinMode(P1Y, INPUT); // and contact is an input
pinMode(P2X, INPUT); // and contact is an input
pinMode(P2Y, INPUT); // and contact is an input
pinMode(P3X, INPUT); // and contact is an input
pinMode(P3Y, INPUT); // and contact is an input
}

void loop(){
//READING EACH OF THE LETTERS IN THE WORD
int letter1 = theword.charAt(0);
int letter2 = theword.charAt(1);
int letter3 = theword.charAt(2);

//READING EACH OF THE LETTER BLOCKS
placeX = digitalRead(P1X); // read input value and store it
placeY = digitalRead(P1Y); // read input value and store it
place2X = digitalRead(P2X); // read input value and store it
place2Y = digitalRead(P2Y); // read input value and store it
place3X = digitalRead(P3X); // read input value and store it
place3Y = digitalRead(P3Y); // read input value and store it

//CHECKING LETTERPLACE 1
// CHECK whether input from the block is HIGH-HIGH (A)
if (placeX == HIGH && placeY == HIGH) {
if(letter1 == ‘A’) {
digitalWrite(LED, HIGH); // turn LED ON
}
}

// CHECK whether input from the block is HIGH-LOW (T)
else if (placeX == HIGH && placeY == LOW) {
if(letter1 == ‘T’) {
digitalWrite(LED, HIGH); // turn LED ON
}
}

// CHECK whether input from the block is LOW-HIGH (C or R or F)
// Made the same pattern underneath the C, R and F letter blocks
// The child can then play with different words that can be spelled with _AT
else if (placeX == LOW && placeY == HIGH) {
if(letter1 == ‘C’) {
digitalWrite(LED, HIGH); // turn LED ON
}
}

//CHECKING LETTERPLACE 2
// CHECK whether input from the block is HIGH-HIGH (A)
if (place2X == HIGH && place2Y == HIGH) {
if(letter2 == ‘A’) {
digitalWrite(LED2, HIGH); // turn LED ON
}
}

// CHECK whether input from the block is HIGH-LOW (T)
else if (place2X == HIGH && place2Y == LOW) {
if(letter2 == ‘T’) {
digitalWrite(LED2, HIGH); // turn LED ON
}
}

// CHECK whether input from the block is LOW-HIGH (C or R or F)
else if (place2X == LOW && place2Y == HIGH) {
if(letter2 == ‘C’) {
digitalWrite(LED2, HIGH); // turn LED ON
}
}

//CHECKING LETTERPLACE 3
// CHECK whether input from the block is HIGH-HIGH (A)
if (place3X == HIGH && place3Y == HIGH) {
if(letter3 == ‘A’) {
digitalWrite(LED3, HIGH); // turn LED ON
}
}

// CHECK whether input from the block is HIGH-LOW (T)
else if (place3X == HIGH && place3Y == LOW) {
if(letter3 == ‘T’) {
digitalWrite(LED3, HIGH); // turn LED ON
}
}

// CHECK whether input from the block is LOW-HIGH (C or R or F)
else if (place3X == LOW && place3Y == HIGH) {
if(letter3 == ‘C’) {
digitalWrite(LED3, HIGH); // turn LED ON
}
}

//CHECKING IF BLOCK IS REMOVED

if (placeX == LOW && placeY == LOW) {
digitalWrite(LED, LOW); // turns the LED off*/
}
if (place2X == LOW && place2Y == LOW) {
digitalWrite(LED2, LOW); // turns the LED off*/
}
if (place3X == LOW && place3Y == LOW) {
digitalWrite(LED3, LOW); // turns the LED off*/
}
}

App in the making

Friday, November 5th, 2010

So I shared the museum app concept I made with my wonderful group last week. I can now add that all the concepts my classmates made are published here at the course website — with presentations and all. We are now in the process of making another app. Individual assignments this time. Am I excited about creating yet another iPhone app? Not really. But I do like my working title on this project; That’s NOT trash! It’s an app supposed to help New York citizens recycle, deal with special waste and so on. I might come back to you when I have more than some silly OmniGraffle icons.

And don’t get me wrong. Recycling is important, and I’m sure(?) apps can help change the world. But right now I feel I’m more in a reading/reflecting/researching mode. And it’s Friday night and I simply have to PRODUCE. Gah. I totally forgot what being a student really means. No real weekend, that is.

So. I might come back to you when I have more than some silly OmniGraffle icons — and hopefully I’ll also be in a better mood :/

Search the blog

...or browse through the archives.