Last Thursday, Eric Rosenthal was on the floor, giving office hours to everyone. I had a great chat with him, which really encouraged me.

Lately, I like everyone else, has been stressed at the uncertainty facing us post-graduation. It occurred to me that in ITP you learn things that are so undeniably useful… yet also so useless in the current job market. I said to Eric: it’s not like you can get a programming job after taking ICM, or an engineering job after taking Basic Analog Circuits, or be a carpenter after taking Intro to Fab. What’s ITP good for?

I caveated this question by letting Eric know how much I have appreciated his example. He seemed to make a career out of doing strange, unconventional and mind-blowing amazing stuff. Who else do you know got the US Navy to fund him conducting research into light using antennas shaped after the human cone cell? Who else is working on a project that he gets to send into SPACE. Like, actual space up in the sky. How did you manage this? I asked him.

Eric replied, “look – corporate America is full of people with an amazing depth of knowledge… but a very narrow focus. So for instance, if someone is working on LCD screens, they know everything there is to know about how to make LCD screens, how each component operates, how long it takes to produce them, etc…. but it would never occur to them to use and LCD screen as a light filter. It would never occur to them to use it for something that they’re not used to, because their focus is narrow. They cannot see beyond their focus.”

Eric said that he made his career out of being the guy that knows about a lot of things, so that he can connect the dots where everyone else that does not. He said that at one point in this life, he managed 120 PhDs for a research project, and meanwhile he was someone who never graduated from university. (I never asked him why this was). His point was that the generalist and the specialist both have their roles, but generally the jobs that are out there are specialist jobs.

For me, this broke an unconscious assumption I held that, for some reason, jack-of-all-trades were no-good, lazy people who never had the discipline to learn any one thing properly. I think this assumption lies at the bottom of contemporary capitalist culture, where everyone is expected to be a good little cog in the machine… except for visionary leaders, who are the ones who give the orders. I think Eric is a visionary person, and I think he is a leader or else he could not have accomplished what he has.You can only know what is “recently possible” if you have an operational knowledge of what’s out there. In this way, I think Eric embodies the ultimate ethos of ITP: know a broad range of things, Eric knows what is possible and able to connect to create a “recently possible”.

So in Eric Rosenthal style, here’s the good news: ITP gives you special abilities that not too many people in the workforce have, even “artists” may not have this breadth of knowledge. ITP gives you this ability through practical, workable knowledge of several different fields, whether your mix be: psychology, PCD board design, Node.js and Unity or something else. This gives you an ability to connect dots in a unique way.

Here’s the bad news: you (I) need to find out own place. Because your ability to connect the dots is dependent on the stuff you know, the world where you can have the most value as dot-connector will be different for everyone. It’s like one of Bruce Lee’s tenants of Jeet Kune Do: The Truth in Combat is Different for Every Individual in This Style. Adapted for ITP job searching, it would be “The Most ITP You Can Be In The Work Force is Different for Every Individual ITP Graduate.” But you will need to find that place yourself.

All in all, it’s positive news There’s a promised land, but you might take time to get there. And being a generalist is no better or worse than a specialist, it’s just a different role.

[Journal] Did a rooftop party gig

rooftop party

Summary: Had a productive week last week, not just for thesis, but for my art career overall. I learned good stuff about: showing art, the artist-curator relationship. I also made observations that will be incorporated into my current career strategy.


So I showed the 24×48 lightbox at an event on Saturday that was described to me as a “rooftop party for finance bros” and that was a pretty accurate descriptor although that characterization of the event misses out how awesome being on a rooftop is and that finance bros are still people, and some are super cool and some are not. Also: I have never seen so many people drink out of giant wine glasses in one place.

Anyways I put the lightbox up in this event in the hopes that maybe someone would want to buy it. I wasn’t sure how precisely that would happen, but my curator got me this gig, she knew the guy who threw the party since apparently, all Hungarians in New York City know each other. So she was there and I was there and there were DJs spinning house (one of which is actually a founder of the Flatiron school). I also met other wealthy people and it was an interesting look into the young financial elite.

pearls before swine

The whole thing was super awkward. I felt the art was not respected. The majority of the people could not give two shits about the light art. People put their empty drinks up on the table the lightbox was displayed. At one point, a half eaten nacho on the napkin was in front of it. The barbacks did a good job cleaning it though, so it wasnt so bad. But the whole thing felt awkward. Like I was really reaching for it there. Like this was just one step above setting up a hawker stand near Central Park and selling “I LOVE NY” logos stencilled on an MTA map.

Nonetheless at a certain point, I said fuck it and kicked back and just started to enjoy myself. It was an epic rooftop, the greatest I have ever been on in NYC, and I got three drink tickets for three $20 cocktails, and the party was $50 entrance, so I suppose I got paid in drinks and admittance to the party – which I am decidedly not OK with overall, but – meh – one time, this actually turned into a pretty good time. I meet very interesting people including a male asian pornstar who kind of broke every single stereotype of my own people and gave me hope for humanity.

alls quiet

There were definitely people interested in the art, and I enjoyed explaining it to them… But they weren’t there for the art – my art was there for them. A subtle but important difference… they didn’t come to see me, I came to see them. While it was fun, and I’m glad I did it, I don’t think I’ll do that again. I dont want to come to see them, I want them to come and see me. Or maybe in the beginning you gotta go see them and then they decide to come see you? I dunno — this is an unresolved question for me… I mean, you gotta hustle no matter what, so I dont want this to be an excuse for not hustling.)

I also learned a lot about the curator-artist relationship. Your curator is like an actor’s Hollywood agent. She finds you buyers, promotes you to galleries, gives you advice on presentation (which is honestly the weakest part of my game and has always been). I made the acquaintance with a more established artist recently and what I took away from his advice is that you need to partner with people who believe in you as strongly as you believe in yourself. This is why it’s useless to bang on galleries doors in the hopes of “convincing” them to show your work. If they they’re not into it, no direct action is going to change that. Maybe they’ll change their mind somewhere down the line, but you don’t control that. Their potential future support is not on a timeframe useful to the struggling artist here and now. Viola helps me because my success is her success, and likewise, her success is my success. It’s actually kind of a beautiful thing.

me and vio

I also find that curators are different animals than artists, just like how hollywood agents are different animals than actors, or how spies are different animals than intelligence analysts. Brains and brawn together. The curator is able to talk-the-talk and walk-the-walk in a way that I think most artists would be embarrassed to. They are able to hard-sell, pull moves, use whatever means necessary to get something done… at least they are able to do it in a very different way than an artist. Beyond that they have a way of thinking and mindset that is highly strategic, observant… but in a way that is embodied in action, not just in abstract thought. In contrast, Artists quietly sit in a corner and make art, and are somewhat afraid of people. I’m generalizing but you know what I’m saying.

At 10pm, I wheeled the thing back to ITP, half drunk and very tired. But it was a nice learning experience and I was happy. At the very minimum it was a lot of information and learning that took place, despite probably not having any financial pay off. A lot of things to chew over in the head. Lot of “inputs”.


Understanding Networks: RESTful interface

Roxanne and I decided to specify a concept for the RESTful interfaces assignment.

I am still unsure about the concept of a RESTful interfact, and how it differs from how the internet usually works. It would help to get an example of a non-RESTful interface on the internet. But it seems like RESTful describes how we usually interact with the internet. For example, I go on YouTube, I type in “flock of seagulls” in the search bar, and the website returns a representation of their stock of resources corresponding to flock of seagulls. I then select the video I want, and YouTube provides me with that resource. To my knowledge, this is how all websites work. Is this is RESTful?

Our concept:

  • a website-controlled 50-pixel LED strip, where each user will be able to see what color the current strip is and what pattern is being run on it.
  • The user will be able to select their own color, and select one of three patterns on it (the patterns based on fastLED and Neopixel demo-reel default patterns).
  • The interface will be based on the last user’s commands, so if you change the color/pattern of light, it can be changed the moment after you submit it. (This will be one of the challenges to the interface, how to handle competing user commands).



Understanding Networks: Packet Analysis Assignment

Packet Analysis Assignment

My house Wi-Fi  has the internet IP address of I learned that there was a public vs private IP addresses and that the 192.X.X.X range was reserved for private use.

This afternoon on Wireshark, I ran a short 64 second trace that captured 4049 packets. I based this analysis on that trace.

How much of your network traffic is inbound? 

the filter ip.dst== yielded: 2502/4049 packets (61% of traffic inbound)

How much is outbound?

the filter ip.src== yielded: 1466/4049 packets (36% of traffic outbound)

What portion of it is HTTP traffic? 

I learned that HTTP traffic is found using TCP filter port 80. I did not find any packets were HTTP.

How many devices are active on your network? 

If all the devices connected to my wifi network are 192.168.X.X then simply all devices are different devices using that wifi. I also learned these addresses are called IPv4 addresses. that’s me

What are their relative levels of activities? 

it was mostly my address and the router address that was active (out of the 192.168.X.X addresses) since I was the only on home at the time. Other roommate was home too, but not sure how active they were. I am unsure why my traffic show up as my IPv4 if everything to the internet went through the router anyway?

What sites are the most common sources and destinations for your traffic? 

The most common destinations from my router are GQUIC to “Payload (Encrypted)” or TCP to “50XXX [ACK]”

Understanding Networks / Traceroute Assignment

For my traceroute assignment I decided to traceroute three sites I frequently visit: YouTube (, BBC News ( and my website (

Summary of Analysis:

-for the first 8 routes (defining a route as 1,2,3 etc which appeared in Terminal sequentially) the routes were the name: “AS12 New York University”

-BBC veers off to England soon after, the other two stay in America. To my surprise my website never goes to Canada. They both go to middle America, mostly through Google servers.


-the ending location for facebook seems to be geolocated at the bottom of a lake?

“AS15169 Google LLC”
Geo-Location seems to be in the middle of the Cheney reservoir

17 * ( 3.912 ms 3.829 ms

Trace-route documentation:



Socially Engaged Art // Online Communities

The online community I started was on my website’s YouTube Fortune Telling / I Ching Machine, which is a fortune telling system that tells you your fortune thought YouTube videos. The program is based on the traditional fortune-telling method of the I Ching, otherwise known as The Book of Changes.

I showed this project at Maker Faire this weekend to great reception. People were very interested in this modern take of a very ancient divination system.

So I decided to make a comment forum on my I Ching Machine webpage.

I hope that people will discuss their fortunes, perhaps discuss their questions and maybe re-vitalize interest in this ancient book.

Understanding Networks: Assignment #1 Ball Game

The ball drop game took some doing but I managed to figure it out.

Most difficult was figuring out how the link up the Arduino Sketch to the Processing Sketch and ITP Sandbox Server. To be honest, I’m still not sure how it all works. All I know is that I stuck the BallDropServer IP address from the Sandbox and stuck it into the Arduino sketch, the BallDropClient sketch and it started working! (See video above).

Instead of a joystick, I used two potentiometers for the X and Y axis respectively. It was a while since I used both a button and pots, so I had to test both separately on a isolated Arduino sketch.

Here’s a photo of the way the Arduino was connected:


So I just got back to NYC last weeks from 3 weeks in Canada. The first week was in Montreal for the Chromatic Festival, May 26 – June 2, where I showed the Digital Rothko patterns.

Now that I’m back, I have a summer of works to do. First on my to-do list… finally get a handle of serial communication to the lightboard. By this I mean being able to send an jpeg image through P5JS through serial, to the arduino, which spits out the patterns on the neopixel matrix. This is the key to my mastery of this board, and key to the next idea for a piece that I have.

Right now the status is that I am trying to just get a one pixel red coloured gif image from P5JS to display on the very first LED pixel of the matrix, at position 0. The serial port is open, and arduino takes in comments from the serial monitor but it doesn’t seem to be showing what I am sending through P5….

June 20: All I’m trying to do is enter a value into the serial monitor and have the LED reflect that value in brightness. So if i enter 1, I will get a very dim white LED at 1,1,1.


-when you set the chat fromSerial, then everything you type in the Serial monitor will show up as you type it.

-P5 serial.readline() reads a string until it sees a newline character — this is in comparison to

-the atoi() function converts char to int. It is derived from the standard C libraries and there’s not much info on the arduino reference guide on it.

-BREAKTHROUGH (Clue): the topic of extracting ASCII values from chars (i.e. I type in 2 and it becomes the int 2, not 46 or whatever it is.) is a discussion topic which means many people have run into this problem and asked this question before.

-BREAKTHROUGH: int character = fromSerial – ‘0’; that’s what solves this whole thing. Now I can press on serial monitor and the LED is at level 1. AMAZING.

-now I need to create a system that takes serial input either at one or three digits for the range of possible serial values between 0 and 255. Hmmmm

JUNE 22 (Friday): The process is as follows: gives single chars

-these chars can be made into ints

-these ints can be concated into a string

-this can be mapped into the LED

PROBLEM: Now things are appearing in the serial monitor at differing order. I think this is at the heart of the mix ups with the INPUT. Right now, I’m trying to map on to a 3 item array.

BREAKTHROUGH (June 22 afternoon):

-able to input three numbers separated by commas and have these mapped into the first pixel LED.

THEN: -able to input a series of 3 and have them light up LED 1, 2, 3, etc consecutively and accurately.

PROBLEM: Unable to verify whether any serial information is being received over P5.

RECTIFIED: It was just messing with P5 Serialport and opening up the port

PROBLEM: P5 should be providing data with the correct format A,B,C, but somehow the arduino sketich is not responding to it, despite me verifying that serial. available is working.

JUNE 29: Got the thing working somewhat. I can grab the pixel values from a pixel image from P5JS using a one-item array, and then serial.write that 3 value data through P5 serial control. I get this on the arduino, have it show on the LED display, then spit back the values back to P5 which I see on Chrome’s Console. HOWEVER, the issue remains that this interaction happens once in a while and the system of transferring data is still unstable. I dont know if there is anything I can do to make it stable, or if this patch-work of P5 serial control is a work-around that is not meant to be stable.

Loadpixels(): from this processing article it seems like loadpixels starts the pixel array from the top left, going right, then down to the next row.

PROBLEM: I am trying to display this chessboard 10×10 pixel pattern, but the data coming out of load pixels seems to not be in the right order. After further experiments with loadpixel() it seems that it does not display the pixel information in the right order…

(SOLVED) PROBLEM: LoadPixels() gives you an RGBA value of each pixel. Which means there are 4 array elements for the first pixel. However, for a 100 pixel picture, I only get 100 array elements, which means only the data of 100/4 = 25 pixels. What’s up with that? SOLVED: it was simply the matter of adjusting createCanvas to 100,100 because it was on 1,1 when I was just doing one pixel

(SOLVED) PROBLEM: now that I’ve adjusted the canvas and image size to reflect it (10×10), somehow there are TOO many array elements. pixels.length gives me 10,000. Not sure why… since if there are 4 elements to each pixel and 100 pixels, then that would be max 400. So…. SOLVED: the problem was pixeldensity, which I guess was making it more pixels on the screen that the image was, and P5 automatically scales the pixel to the screen. Got rid of this problem by setting it to pixeldensity(1). Now pixel.length is 400 and all is right with the universe again 🙂

(SOLVED) PROBLEM: Uncaught TypeError: pixels.splice is not a function. Trying to splice the ‘A’ out of the RGBA of the pixels array, so every 4th element. But it’s not recognising splice as a function. Weird because I just made a separate array in the same program and splice works just fine. Also weird is that pixels.splice seems to crash the entire program, and no lines of code below it is used.

My working hypothesis at this point must be that there must be something different about the array that loadPixels() creates and a regular array I can create with just var array [blah0, blah1, blah2]. Proposed Solution is to find a workaround, since there’s not much I can do. I dunno, maybe the people who made P5 decided that splice shouldn’t be something you do to the pixel array. Anyways, I’ll try to make a new array and just have it be 300 elements and try to take out the 4,8,12, etc of the pixel array. I just need a mathematical way of doing this… SOLVED: I had to duplicate the array with a separate array function but not using array.slice but rather just doing it the manual way with a for loop. THEN with the new array, P5 allowed me to do splice. YES!

PROBLEM: I am attempting to gain a degree of stability in serial interations. I gained that through serial.write something in arduino in the serial.available statement that that spits it back out to the Chrome console through the P5 SerialEvent function. However no matter what I serial.write, it keeps showing up at “255” when P5 Not sure why…

JULY 2: PROBLEM: Still stuck on the same thing yesterday. The key to this whole thing is why the P5 spits out a 255 from the arduino’s kicked-back serial input…

This problem is pretty tough. I’m not sure what parts of the code are being written to serial by the arduino. Specifically the part that tells the program if you see a comma, do this –  I’m not sure that part is writing. So far I wrote a small flashLED() function which flashes the LED.

Having huge problems even reading serial data from P5 on the arduino now… not sure where the problem is located or if it’s just P5 serialport.