1

The Listserve: Setbacks

Posted by Administrator on May 4, 2012 in Uncategorized |

Last week, I won The Listserve lottery, an awesome project by students at ITP where one lucky person a day gets chosen to send a message to their growing list of subscribers (it’s over 16,000 as of now). I could hardly believe that I won, as the odds are incredibly slim. The message went out to The Listserve on Tuesday, and since then, tons of people have written to me about how much the story resonated with them. Take a read. I hope it gives you some encouragement during rough times:


In 2006, I worked as a business journalist and did fun things like flying around the world to interview executives and reporting about what really rich people do with their money. I had a 9-to-5 job and an awesome salary. Three years later, the financial crisis hit and I, along with thousands of other people, was out of a job. So, for the first few days of my unemployment, I did what any other right-minded woman would do: I went to all of the sample sales that were happening during the daytime in New York and bought a lot of shoes. Eventually, my dwindling bank account forced me to open up my laptop and scour the Internet for jobs.

There’s no activity more disheartening than searching for jobs. Except watching an episode of “The Real Housewives of Atlanta” while you’re out of a job, which I did, and it sucked. I applied for 23 jobs, and after each rejection, I spiraled down a path of self-doubt, uncertainty and depression. I had no direction in life. I felt like I was underwater, and I didn’t know which way was up.

In my misery, I started to try new things. I learned how to cook. I took up tango dancing. I read Harry Potter in Spanish. I bought a harmonica so I could sing away my blues.

I dared to try all of these things that I never had the courage to do before. But my biggest dare by far was to abandon the job search and apply to art school, to a program called ITP. Never in a million years did I think I would apply to art school. But the next two years were the most fun, the most challenging and the most rewarding times of my life. I learned how to program phone apps, make robots, create art and do things that I never thought I was capable of doing.

When I lost my job, I was poor, eating cliff bars for meals and collecting free samples of eye cream from Sephora. Today, I am still poor, eating cliff bars for meals and collecting free samples of eye cream from Sephora. What’s different, however, is my preconceived notion of my career path and who I am. Hitting rock bottom was the catalyst for me to reinvent myself and try things I never thought I could do. Like, I used to want to be a journalist. Now, I want to be a NBA basketball player. ;p

So, we will all undoubtedly hit many setbacks in our life. But embrace them because it’s a good kick-in-the-pants to try something new. Your “failures” could turn out to be the best experiences of your life.

0

Dino-Magic!

Posted by Administrator on March 9, 2012 in Spatial Media |

Updated: Here’s the demo video!


 

For my midterm project for the Spatial Media class, I partnered up with Jihyun Lee to create a Dinosaur Treasure Sandbox — a hands-on, interactive educational tool for kids to learn about archaeology, paleontology and geology. Kids can dig in the sand and look for dinosaur fossils. When they find one, the dinosaur animates and tells the story of his life. It’s Dyno-magic!

How it works:
We were able to accomplish this by using the Kinect to calculate the depth of the sand. At a certain depth, a virtual fossil was projected onto the sand. A few seconds later, the fossil transitions into playing an animated gif and starts the audio recording.

The Process:

First, we had to construct a sand box that was 4 feet by 3 feet (to fit the 4:3 ratio of the projector and computer screen). Fabricating a good box isn’t easy! We bought an 8X4 medium-density fiberboard (mdf) from Chinatown, and hauled it through Soho because we didn’t want to pay the $20 delivery fee (hey, we’re students!). Then we cut it, drilled it and assembled it with wood glue and a bunch of screws.

Me:

 

My partner, Jihyun:

Add a little paint and some wheels, and voila!

Then, we filled it up with sand and set up a nifty little projector/kinect setup:

At certain depths, fossils appear:

 

 

 

 

 

 

 

 

 

 

 

 

And then they become animations like this:
We’re still working on the video, but that’ll be up this upcoming week.

Updated: Demo video can be found here.

Tags: , , , , ,

3

Open Mic: Connecting people through stories

Posted by Administrator on January 27, 2012 in FUSE Labs |

Last summer, I interned for Microsoft Research – FUSE Labs. I had a wonderful experience, and under the mentor of Greg Melander, I created Open Mic, an app that enables people to create their own, NPR-like broadcast and easily share it with the world. More information about this project to come.

A special shout-out to Lili Cheng, Greg Melander, Dan Marshall and Flynn Joffray for their help and support in developing the app!

Tags: , , , , ,

0

The Women Entrepreneurs Festival gives it straight

Posted by Administrator on January 26, 2012 in Uncategorized |

I have been to many conferences and entrepreneurial events in the past, but there was something different about the 2012 Women Entrepreneurs Festival. It was more than the fact that most of the attendees were women; the real difference was that the discussions and keynote – given this year by Arianna Huffington – didn’t focus on down-and-dirty business tactics; it was about real life issues and the personal obstacles women face in an arena traditionally dominated by men.

Huffington set the tone for the evening, speaking humorously about a failed relationship.

“I was in love with a man that was twice my age and half my size,” she laughingly said. As a result of this experience, she moved to New York where she eventually started The Huffington Post. “To think that that all of this happened because a man didn’t want to marry me!”

She spoke about being a mother and about how playing multiple roles constantly attributed to her sense of guilt. “When they took the baby out, they put the guilt in,” she joked. She noted that women are their own worst critics, and they often waste too much time feeling guilty about the things they should have done when that energy would have been better spent elsewhere.

She stressed the importance of self-care, citing a time when she went on a college tour with her daughter. At night, she conducted business from her hotel room. The following morning, she fainted from exhaustion and hit her head on a table, breaking her cheekbone. She realized then that she needed take care of herself, which included getting a full eight hours of sleep every night.

Rarely, do you find such openness at a business conference, but Huffington broached subjects that I found real and refreshing.

The mood of the festival itself also struck a different tone than other conferences. When I first walked into Paulson Auditorium, I immediately noticed the warm, amenable atmosphere. Arianna Huffington had said that you need at least one supporter to succeed in whatever you do. At the festival, I found hundreds. Words of encouragement, inspiration and advice echoed throughout Tisch Hall, and I felt that the festival organizers succeeded in their efforts of creating a supportive network of women entrepreneurs.

At the end of the evening, I began to realize that the success of my future start-up is more than just getting your elevator pitch right. Beneath it all, it’s the little things – the encouragement you receive, your ability to prioritize, and the investment you make in your physical and emotional well-being – that really makes all the difference.

 

0

Exploring telecommunications

Posted by Administrator on December 19, 2011 in Uncategorized |

For my final project for Rest of You, I experimented with a new way to teleconference. Rather, I took the old way and added — and subtracted — a couple of key elements.

In an article written in InformationWeek in June, the president of IT consultancy Yeoman Technology Group, Mike, said that he only used video conferencing for casual discussions. He’s found that the prolonged, formal discussions are difficult because there’s a greater pressure on visual cues, like eye contact, in high-intensity situations.

In fact, even though video conferencing is readily available, a majority of workers simply do not want to use teleconferencing tools. It seems like a great solution for those who cannot attend a business meeting, but it’s hugely unpopular. Human interactions are quite complex, and there’s something about the current video-conferencing model that doesn’t seem to work.

John Tang is a researcher at Microsoft and works on the Embodied Social Proxy (ESP) project. ESP is just a computer on a cart, but it occupies the space that the person would have occupied in a team meeting. He’s hitting on something but I believe there are other reasons why teleconferencing does not work: 1) Those who are teleconferencing in are stuck inside a box — a computer screen, 2) we can clearly see that the person is not in the meeting room with us, but somewhere on a beach sipping a margarita and 3) because of the way the camera is situated, you can’t meet that person’s gaze. Simply put, I don’t think video chatting is real enough.

So for my final project, I attempted to tackle these three issues. I first used a kinect to subtract my background. Then, I hid in a closet while I projected my image onto a high-back chair in the classroom. I situated the projector so that my image was life-sized. The “chair” (which I made out of foam core) had a little embedded camera int the middle so my real self could see the classroom. I then used skype so that we could hear each other.

This worked pretty well, but it still did not solve the issue of the eye-gaze. I couldn’t turn to look at people in the room.  So, I rigged up the chair with a servo motor and set up a synchronous communication system where if I pushed a button on my keyboard, I could swivel the chair right and left from across the internet. For me, coming from a non-programming background, that proved to be the most challenging part (but it works and the code is below!). Please note that this code has been adapted from here.

In theory, it sounds swell. I do feel it could solve a lot of problems with teleconferencing. In practice, it was a nightmare to set up. I was using 4 computers — 2 for the meeting room to project my image, operate the chair and have a skype session, and 2 on my side to operate the kinect and to view the classroom. Plus, the projector had to be set up just right in order for my image to be life-sized.

I do think that this could be useful if everything is more consolidated into one machine — perhaps a super chair with everything, including the projector, embedded in it. I hope to explore this topic more next semester in my Spatial Media class.

 

CODE

**Kinect Code in Processing**

import ddf.minim.*;
import ddf.minim.signals.*;
import ddf.minim.analysis.*;
import ddf.minim.effects.*;

import librarytests.*;
import org.openkinect.*;
import org.openkinect.processing.*;

Minim minim;

Kinect kinect;
int[] depth;

int frontThreshold = 500;
int backThreshold = 800;

int depthXPicOffset = 30;
int depthYPicOffset = 30;

int w = 640;
int h = 480;

void setup() {
  background(0);
  size(w, h);
  kinect = new Kinect(this);
  kinect.start();
  kinect.enableDepth(true);
  kinect.enableRGB(true);
  kinect.processDepthImage(false);
}

void draw() {
  background(0);
  loadPixels();
  fill(0);
  PImage myImage = kinect.getVideoImage();

  // Get the raw depth as array of integers
  int[] depth = kinect.getRawDepth();
  // We're just going to calculate and draw every 4th pixel (equivalent of 160x120)
  int skip = 1;

  for (int x = 0; x < w; x += skip) {
	for (int y = 0; y < h; y += skip) {
	  int offset = x + y * w;
	  int rawDepth = depth[offset];
		if (rawDepth > frontThreshold && rawDepth < backThreshold) {
		  int imageOffset = x - depthXPicOffset + (y + depthYPicOffset) * w;
		  if (imageOffset < myImage.pixels.length) (pixels[offset] )  = myImage.pixels[imageOffset] ;
				}
			}
		}
		updatePixels();

	}

**Server-side code in Processing to Control Chair rigged with Arduino and Servo Motor**
import processing.net.Client;
import processing.net.Server;
import processing.serial.Serial;
Server myServer;
int endOfMessageChar = 10;
Client myClient;
int socketPort = 10002;
String ip = “128.122.151.249″;
boolean serverRole = true;
String displayText = “Nothing Yet”;
static String[] args;
// String testString = “”;
int degreesToMove = 0;
// static public void main(String _args[]) {
// args = _args;
// PApplet.main(new String[] { “Chat” });
// }
void setup() {
size(256, 256); // Stage size
noStroke(); // No border on the next thing drawn
// Print a list of the serial ports, for debugging purposes to find out what your ports are called:
// println(Serial.list());
getParams();
if (serverRole) {
myServer = new Server(this, socketPort);
println(“Starting a server at port ” + socketPort);
} else {
myClient = new Client(this, ip, socketPort);
println(“Connecting as client at ” + socketPort + ” on ” + ip);
}
PFont myFont = createFont(“Arial”, 18);
textFont(myFont);
}
void draw() {
// listen to client, should be able to do this with ClientEvent but this seems not to work with Clients created by the server
if (myClient != null) {
String whatClientSaid = myClient.readStringUntil(endOfMessageChar);
if (whatClientSaid != null) {
displayText = “Got: ” + whatClientSaid;
}
}
background(0);
if (degreesToMove == 0) { //
//text(displayText, 20, 20);
text(degreesToMove, 20, 20);
} else {
text(degreesToMove + ” Press Enter To Send”, 20, 20);
}
}
public void serverEvent(Server someServer, Client _newClient) {
myClient = _newClient;
println(“We have a new client: ” + _newClient.ip());
}
void tellSocket(int _whatSerialSaid) {
displayText = “Told Socket ” + _whatSerialSaid;
if (myClient != null) myClient.write(_whatSerialSaid + “\n”);
}
void keyPressed() {
if (key == ENTER || key == RETURN) {
tellSocket(degreesToMove);
degreesToMove = 0;
//testString = “”;
} else if (key==CODED){
if (keyCode == RIGHT){
degreesToMove++;
tellSocket(degreesToMove);
}
if(keyCode == LEFT){
degreesToMove–;
tellSocket(degreesToMove);
}
}
}
void getParams() {
if (args != null) { // running as an application
if (args.length > 0) socketPort = Integer.parseInt(args[0]);
if (args.length > 1) {
ip = args[1];
serverRole = false;
}
} else { // running as an applet
String isItThere = param(“socketPort”);
if (isItThere != null) socketPort = Integer.parseInt(isItThere);
isItThere = param(“ip”);
if (isItThere != null) ip = isItThere;
}
}
**Client-side code to receive commands from Server**
CLIENT: ******
import processing.net.Client;
import processing.net.Server;
import processing.serial.Serial;
Server myServer;
int endOfMessageChar = 10;
Client myClient;
int socketPort = 10002;
String ip = “128.122.151.249″;
boolean serverRole = false; //false means this code is the client-side
String displayText = “Nothing Yet”;
static String[] args;
int degreesToMove = 0;
String testString = “”;
String whatClientSaid;
Serial myPort;
//void main(String _args[]) {
// args = _args;
// main(new String[] { “Chat” });
// }
void setup() {
//println(Serial.list());
myPort = new Serial(this, Serial.list()[0], 9600);
size(256, 256); // Stage size
noStroke(); // No border on the next thing drawn
// Print a list of the serial ports, for debugging purposes to find out what your ports are called:
// println(Serial.list());
getParams();
if (serverRole) {
myServer = new Server(this, socketPort);
println(“Starting a server at port ” + socketPort);
} else {
myClient = new Client(this, ip, socketPort);
println(“Connecting as client at ” + socketPort + ” on ” + ip);
}
PFont myFont = createFont(“Arial”, 18);
textFont(myFont);
}
void draw() {
// listen to client, should be able to do this with ClientEvent but this seems not to work with Clients created by the server
if (myClient != null) {
String whatClientSaid = myClient.readStringUntil(endOfMessageChar);
if (whatClientSaid != null) {
int degreesToMove = int(trim(whatClientSaid));
displayText = “Got: ” + degreesToMove;
myPort.write(degreesToMove);
}
}
background(0);
if (testString.equals(“”)) {
text(displayText, 20, 20);
} else {
text(testString + ” Press Enter To Send”, 20, 20);
}
}
public void serverEvent(Server someServer, Client _newClient) {
myClient = _newClient;
println(“We have a new client: ” + _newClient.ip());
}
void tellSocket(String _whatSerialSaid) {
displayText = “Told Socket ” + _whatSerialSaid;
if (myClient != null) myClient.write(_whatSerialSaid + “\n”);
}
void keyPressed() {
if (key == ENTER || key == RETURN) {
tellSocket(testString);
testString=”";
} else {
testString = testString + key;
}
}
void getParams() {
if (args != null) { // running as an application
if (args.length > 0) socketPort = Integer.parseInt(args[0]);
if (args.length > 1) {
ip = args[1];
serverRole = false;
}
} else { // running as an applet
String isItThere = param(“socketPort”);
if (isItThere != null) socketPort = Integer.parseInt(isItThere);
isItThere = param(“ip”);
if (isItThere != null) ip = isItThere;
}
}
**Arduino code**
#include <Servo.h>
Servo servoMotor;
int servoPin = 4;
int pos = 0;
int incomingCommand = 0;
void setup(){
Serial.begin(9600);
servoMotor.attach(servoPin);
}
void loop(){
if(Serial.available() > 0){
//read incoming byte
incomingCommand = Serial.read();
Serial.println(incomingCommand, DEC);
int servoAngle = incomingCommand;
servoMotor.write(servoAngle);
}
}

 

0

Machine Therapy

Posted by Administrator on November 26, 2011 in Computers for the Rest of You |
One of the subjects that have interested me during this course is how machines can assist, supplement and possibly enhance our bodies.  Normally when we think of machine therapy, we think about artificial organs such as the hearing aid.
Recently, however, Kelly Dobson has defined the term “machine therapy” as a new practice combining art, design, psychoanalysis, and engineering work in ways that access and reveal the vital, though often unnoticed, relevance of people’s interactions and relationships with machines.
For example, Sleep Sheep is a plush toy for babies that produces the sound of a mother’s heartbeat to get them to calm down or go to sleep.
Strangely, white noise is known to have therapeutic effects for those with insomnia.  For $30, you can get a white-noise generator like the one below, or just go to www.simplynoise.com and get as much white noise as you want for free!
Here’s a device called the “Hug machine,” which was originally intended to calm autistic kids.
And some Japanese inventors made the ultimate device — something to comfort lonely singles:
Kelly Dobson, researcher and Ph.D candidate at MIT’s Media Lab, focuses her work on addressing the largely unnoticed aspects of machines to design devices that could help us therapeutically.
One of Dobson’s work is called Scream Body, which allows a person to vent his or her frustration into a sound- proof device..  The device records the scream, and he or she can “let it out” at a more convenient moment.
Omo is another one of Dobson’s inventions. It’s a rubber egg-shaped ball that matches the breathing of those interacting with it and often times leads patterns of breathing to help calm the person.
While machines can help us therapeutically, they can also enhance us and give us superhuman powers.  Take Aimee Mullins, for example.  Mullins was born with out fibulae in her legs and was told she would never walk again.  Instead, with the help of prosthetic legs, she became an athlete, model and actor. What’s more, her prosthetic legs (she’s got a dozen pairs), she has redefined what the body can be.  Her legs grant her superpowers — speed, beauty and an extra 6 inches in height.
Stelios Arkadiou has taken the relationship with machines on a whole new level. Also known as Stelarc, he invented a third arm that could be independently controlled using muscles in his abdomen and legs.
Recently, I wrote about how our minds and bodies are ill-designed to handle today’s modern life.  I believe that we should start designing machines to look and feel less mechanical, and more like soft devices that might help assist and augment our human life.

1

Our stone-aged brains are ill-equipped for modern life

Posted by Administrator on November 26, 2011 in Computers for the Rest of You |

Earlier this semester, we were asked to read a primer on evolutionary psychology, which seeks to discover and understand the design of the human mind and determine which human psychological traits are the result of natural selection. As humans, we tend to think that we are smarter than animals because we are ruled by reason, unlike animals who are ruled by instinct. William James, author of Principles of Psychology, argued the opposite; humans are more intelligent than animals because we have more instincts, not less.

Evolutionary psychology forces us to take a step back and examine our natural competencies — seeing, hearing, falling in love, feeling hunger and sleep, longing for social experiences — and ask why is it that we see/feel/think/dream these things.  These things are only possible because there exists within us a very complex computational machine that supports and regulates these activities. What’s more, our minds are made to solve the adaptive problems of our hunter-gatherer ancestors, not today’s high-tech whirlwind society.

In the reading, authors Ledia Comides and John Tooby list five principles in thinking about psychology, which can be applied to any topic — sex, conformity, aggression, sleeping, eating, etc.  They encouraged us to think about the following questions:

1. Where in the brain are the physical circuits and how, physically, do they work?

2. What kind of information is being processed by these circuits?

3. What information-processing programs do these circuits embody?

4. What were the circuits designed to accomplish in a hunter-gatherer context?

To practice this way of thinking, I made up a new exercise: Every time I feel or do something, I think about it evolutionary psychology terms.  For example, I’m hungry equates to “there is a deficiency of nutrients in my blood so my hypothalamus sent a message to my stomach to become active and growl.”

This is what my morning was like:

1. I awoke and I looked around the room — that is, my eyes detected electromagnetic radiation in the form of wavelengths of the visible spectrum and transformed that energy into a signal my nervous system could pick it.  My nervous system informed me that I was a pig and I needed to clean my room ASAP.

2. I trudged to the refrigerator and found nothing edible, thus – a slight imbalance in my brain chemistry, probably lower-than-normal levels of serotonin, norepinephrine and acetylcholine, sent a message to my amygdala and hippocampus to make my mind and body feel disappointed and hungry.

3. I thought about final projects and school work and immediately, my drama-queen of a hypothalamus suffused my blood with adrenaline and cortisol and mobilized my body’s flight-or-fight response. Stress, as it turns out, has the same physiological responses as when our hunter-gatherer ancestors sensed danger. It may have promoted survival back in those days, but given the longer periods of stress exposure in modern life, it can cause severe health consequences.

Phew.  Trying to think about all of the circuitry going on with just these 3 little activities makes me realize how truly complex our human brains are.

It also makes me think about how ill-equipped our brains our for modern life. The fight-or-flight response may have been beneficial for our ancestors, but how do we manage it to deal with everyday stresses? This is something I hope to further explore in my final project for this class.

 

0

The power of imitation

Posted by Administrator on October 10, 2011 in Computers for the Rest of You |

In Marco Iacoboni’s talk on mirror neurons, the neurologist explained that humans have special cells that are designed to help us imitate others. Studies show that the area of the brain that activates when a person grabs an object also activates when a person simply sees someone else grabbing an object. Imitation, as it turns out, is a powerful way of communicating between people because it allows us to feel what other people feel. In other words, our circuitry is designed for us to feel empathetic toward others. It is a system that promotes social interaction.

Interestingly, as I was learning more about mirror neurons, National Geographic aired a tv special on brain games. One of the scenes showed a man cutting his finger with a knife. As you watch that scene, it’s almost impossible not to wince. Mirror neurons are coming into play here, and I could imagine that the person in the scene was me, and I had cut my hand with a knife!

What I found most interesting was the correlation between the activity of mirror neurons and social behavior; it seems that the more a person imitates others, the more he or she empathizes with others and the more social he or she is. Children with autism have “broken mirrors,” or a lack of activity from mirror neurons.

All of this can be tied back to our previous reading on Evolutionary Psychology, which implies that everything that we do can be traced back to pure physiology and that we are hard-wired to make the choices that we do. As humans, we naturally seek out groups and social activities.

I do not believe this discounts the idea of free-will; Even though we are prone to feel or believe one thing or another based on pure chemical and physiological factors, I believe we can still make are own decisions that disregard this. Simply becoming aware of the effects of evolutionary psychology on ourselves can lead us to make logical conclusions with or against what are genes might be trying to persuade us to do.

 

0

Posted by Administrator on October 4, 2011 in Fashion Technology |

Jen Ho and I were inspired by animals who carry their homes with them.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

0

Stuy-Oval: The Fountain

Posted by Administrator on September 13, 2011 in Fashion Technology |

 

Copyright © 2010-2014 Anh's Playground All rights reserved.
This site is using the Desk Mess Mirrored theme, v2.0.2, from BuyNowShop.com.