>get >put closing reception - panel discussion

Last night was the closing reception for the exhibit >get >put. The panel discussion from the evening can be viewed on this ustream. The panel discussion begins about 15 minutes into the ustream and is then followed by three performances about an hour and a half into the ustream. Enjoy a few pictures from the evening:

Video streaming by Ustream

Good Company Group Pitch Day

Good Company Group's pitch day went well. The company's have come a long way in crafting their message and focusing in on their target audience, customer acquisition, and business model. The summer  accelerator program was a great place to meet and work with a group of motivated and world-changing people. Each of these companies all have a social mission and they're doing it in an economically feasible way. They're focused on scalability for the greatest amount of impact.

Good Company has also attracted new businesses to the Philadelphia area as a result of their socially conscious accelerator. And some exciting news, which we learned about at the pitch day is that Good Company Group is finalist for Bloomberg's Mayor Challenge.

The companies presenting on the pitch day include Wash Cycle Laundry, psGive, PaperWool, Ziyron, StartSomeGood, EdiBikes, PhilanTech, TuvaLabs, and Regalii. Well done guys!

Enjoy the pictures from that night:

Listless Lincoln

Over the weekend, I was playing around with my girlfriend's cat, Lincoln. The idea hit me to immortalize him in the halls of the internet. You can interact with him here. Enjoy.


Mentoring Progress Report

The mentoring progress report is another building block for a mentoring system. The purpose of the progress report is to create a simple way for mentoring organizations to keep track of the businesses they're mentoring.

I imagine the progress report being filled out at least once a month or before an entrepreneur requests for mentoring. The first iteration of the progress report is below.

If you take a look at the mentoring system below, the mentoring progress report is section six: follow-up.

Visualizing Mentoring Conversations

To discover a way to measure the efficacy of a mentoring session, I listened and re-listened to a recording of a mentoring conversation. I was trying to discern themes in the conversation to help make it easier to compare different mentoring sessions. I noticed five major themes: questions, examples, application, current/past strategies, and future strategies.

Questions are denoted by red lines, and appear every time a questions is asked.

Examples: Real world examples are used in several ways by both the mentor and entrepreneur. They’re used to learn from competitors’ strategies. Some times examples of potential customers are discussed to notice how a market segment may be profiled for product-market fit. Other times, they’re metaphorical to convey a concept about human nature and business strategy.

Application: Whenever an example is presented in conversation, it is then applied to the entrepreneurs current situation.

Current/Past Strategy: Current/Past Strategy denotes whenever the mentor or entrepreneur discuss where the entrepreneur’s business currently is or has been.

Future Strategy: Future Strategy is a discussion about steps that can be taken to move the business forward.

The following two infographics are my first attempt at visualizing a mentoring conversation. They are both visuals of the same conversation, however, the larger graphic includes the questions asked by both the mentor and entrepreneur.

Noteworthy Observations:

1. During the course of this mentoring conversation, there seems to have been a shift between the 18:00 to 22:30 minute mark, where the mentor begins providing strategic advice. I believe this shift occurs because the mentor has figured out what to focus on with the entrepreneur, and where to delve deeper in order to sketch next steps for the entrepreneur to tackle.

2. Towards the end of this mentoring session, 31:30 and onward, the entrepreneur shifted towards applying what he’s learning from the examples to his own business. This is particularly noticible when the applications appear without a preceding example on the entrepreneurs side of the conversation. The entrepreneur is taking the example the mentor has provided and is directly applying the pedagogical purpose of that example.

This second infographic of the mentoring session is too busy and requires a simpler way to convey the key questions asked by the mentor.

Back to Table of Contents.

Simulating the Future of Political and Cultural Forces

Adam Kahane gives a great example of a nine day workshop he gave in the Republic of Columbia between conflicting political groups. He noticed that the same types of tensions and conflicts apparent in the larger country revealed themselves within the microcosm of the nine day workshop. As the workshop progressed, the conflicting sides co-created four different stories as scenarios that might unfold for the future. After sixteen years passed, Adam re-visited Columbia and met with an intellectual from the country. The intellectual pointed out that every one of those stories unfolded in a prophetic nature.

Adam's discussion and example of this group workshop he facilitated reminded me of the type of design that human centered designers are trained to do. This is the same type of facilitation performed by IDEO, the same type of design taught at the d.school at Stanford, and the same design I've learned at MiD at UArts. Part of what I find innovative about the curriculum at MiD is learning how to design and facilitate the experience of a group workshop. Designing group workshops requires a certain experience with human groups and being able to leverage how small and large groups work. These are based on psychological practices developed by Wilfred Bion and experienced through the Tavistock model. One key element about a group's life is that it parallels the life of an individual from birth to death, over the course of a workshop. This means that a group experiences anxiety, fear, tension, conflict, sadness, happiness, and complex emotional states that resemble an individual. As long as the individuals of the group are committed to staying a part of the group, the group will continue to grow. Growing as a group implies emotional maturity, just as individuals become emotionally mature with age. Each individual within the group brings past experiences, various cultures, and thought processes that determines the conflicts the group will face, which at times become representational of larger forces in the culture. For example, these forces can include racial differences, language barriers, gender differences, political differences, etc. Furthermore, these conflicts arise as the group is working towards a common task, which Bion calls the work task. I think this observable phenomenon about group life can be applied to make sense of what Adam Kahane is saying about the national tensions and conflicts reflecting in the microcosm of the nine day workshop.

Since these national tensions and conflicts reside in the individuals at the workshop, it seems that the group became a simulating environment for the different political forces. It's a simulation in the sense that we may  observe how the conflicting political forces may mature together - in another sense, they become as one individual, developing emotionally over time. Those political forces from sixteen years ago played out their growth over a period of nine days because that's how long the group had to mature. By the end of the workshop, the group had completed the task and had completed its developmental cycle. Those nine days simulated the future sixteen years.

Following this train of thought leads to applying facilitation workshops as a tool for simulating the future of organizations, nations, and the global political climate. The purpose would be to simulate an outcome in order to prepare for that outcome, whatever it may be. Preparing for outcomes by means of simulation is something humans naturally do. This is evidenced by the development of mathematical and physical models of the world. If facilitation workshops can be used as simulations of political and cultural forces, then humans should design facilitation workshops to predict certain outcomes for a melting pot of cultural and political forces.

Tutorial: Using Xuggler in Processing

It took me a while to figure out, but Xuggler is a powerful audio and video java wrapper of ffmpeg. For a recent art project of mine titled "Lo and Behold, I am become as a God," I had to use Xuggler to sync audio and video in real time. In the processing forums, there's a lot of questions about how to use processing to sync audio and video in real time, but the GSVideo library doesn't capture audio, it only captures video. Another option is GSPipeline, which can sync audio and video, but seems to only work well in Linux - I haven't tried Mac To write a program that can capture audio and video in java within Windows 7, I turned to Xuggler.

The follow steps are what I've done to make Xuggler operate with Processing 2.0b5 or 2.0b6 with Windows 7 64 bit:

Step 1: Download and Install the Xuggler 64 bit Build for Windows. Available here.

Step 2: Download the necessary Xuggler jars, I've zipped them together and can be downloaded from here. I've placed the jars files in the zipped folder within my processing sketch, in a folder called 'code.'

Step 3: You can either download and run my example code from here (jars included), or look at the example code below the video.

Here's an example of some work I did with Xuggler in processing:

My next tutorial will be about how to set up the Youtube data API with processing, to be able to automatically upload these videos to your youtube account.

import java.awt.image.BufferedImage;
import java.awt.image.ImageObserver;
import java.util.concurrent.TimeUnit;
import java.awt.*;
import processing.video.*;
import javax.sound.sampled.*;

IMediaWriter imw;
IStreamCoder isc;
BufferedImage bgr;
int vidRate = 30;
long sTime;
long fTime;

Capture cam;

final int audioStreamIndex = 1;
final int audioStreamId = 1;
final int channelCount = 2;
int sampleRate;

AudioFormat audioFormat;
AudioInputStream audioInputStream;
TargetDataLine aline;
AudioFormat targetType;

byte[] audioBuf;
int audionumber;

int widthCapture=640;
int heightCapture=480;

boolean recording;

void setup() {
  size(widthCapture, heightCapture, JAVA2D);
  cam = new Capture(this, widthCapture, heightCapture);

void draw() {
  if (cam.available()) {
    image(cam.get(), 0, 0);

    if (recording) {
      if (imw.isOpen()) {
        //video recording stuff
        long cTime = System.nanoTime()-fTime;
        if (cTime >= (double)1000/vidRate) {
          bgr.getGraphics().drawImage(cam.getImage(), 0, 0,
          new ImageObserver() {
            public boolean imageUpdate(Image i, int a, int b, int c, int d, int e) {
              return true;
          imw.encodeVideo(0, bgr, System.nanoTime()-sTime, TimeUnit.NANOSECONDS);
          //audio recording stuff
          if (aline.available() == 88200) {
            int nBytesRead = aline.read(audioBuf, 0, aline.available());//audioBuf.length);//aline.available());
            if (nBytesRead>0) {
              IBuffer iBuf = IBuffer.make(null, audioBuf, 0, nBytesRead);
              IAudioSamples smp = IAudioSamples.make(iBuf, channelCount, IAudioSamples.Format.FMT_S16);

              if (smp!=null) {
                long numSample = nBytesRead/smp.getSampleSize();
                smp.setComplete(true, numSample, (int) audioFormat.getSampleRate(), audioFormat.getChannels(), IAudioSamples.Format.FMT_S16, (System.nanoTime()-sTime) / 1000);
                smp.put(audioBuf, 1, 0, aline.available());
                try {
                  imw.encodeAudio(audionumber, smp);
                catch(Exception e) {
                  println("EXCEPTION: " + e);
          fTime = System.nanoTime();

public void keyPressed() {
  if (key == 'r') {
    if (!recording) {
      recording = true;
  if (key == 's') {
    if (recording) {
      recording = false;

void avSetup() {
  audioFormat = new AudioFormat(44100.0F, 16, channelCount, true, false);
  sampleRate = (int) audioFormat.getSampleRate();
  DataLine.Info info = new DataLine.Info(TargetDataLine.class, audioFormat);
  try {
    aline = (TargetDataLine) AudioSystem.getLine(info);
    println("audio line");
  catch (LineUnavailableException e)
    println("unable to get a recording line");
  int bufferSize = (int) audioFormat.getSampleRate() * audioFormat.getFrameSize();
  audioBuf = new byte[bufferSize];
  targetType = aline.getFormat();
  audioInputStream = new AudioInputStream(aline);

void avRecorderSetup() {
  imw = ToolFactory.makeWriter(sketchPath("D:/myVideo.mp4"));//or "output.avi" or "output.mov"
  imw.addVideoStream(0, 0, IRational.make((double)vidRate), widthCapture, heightCapture);
  audionumber = imw.addAudioStream(audioStreamIndex, audioStreamId, channelCount, sampleRate);
  isc = imw.getContainer().getStream(0).getStreamCoder();
  bgr = new BufferedImage(widthCapture, heightCapture, BufferedImage.TYPE_3BYTE_BGR);
  sTime = fTime = System.nanoTime();


Context for Mentoring: A Mentoring System

My meeting with Aaron Mclean went well. I presented the first version of the mentoring system to him and he provided feedback and filled in missing information about how the match making system could actually work. I took my notes from the meeting and created a second visual showing the complexity of the mentoring system. I've realized that the Request for Mentoring form is a small piece of the puzzle. The following visual is still a rough sketch, it's missing a few more pieces: the business readiness intake and the follow-up form still need to be designed. The match making system will need front-end mock-ups and an architectural sketch of the back-end system that will make everything electronic.

Our discussion also went over what the business readiness intake would look like and how to measure the efficacy of a mentoring conversation. I learned that the business readiness intake is dependent on the entrepreneur's level of commitment and passion for the business, but will also be greatly influenced by their stage in life. The entrepreneurs life stage is determined by whether they're in college, graduated, married, single, children, siblings nearby, etc. All these social pieces of information reveals the entrepreneurs competing commitments, responsibilities, available social capital, and safety nets. To measure the efficacy of a mentoring conversation, I learned, is based on asking questions during the mentoring conversation to make sure the mentee is following. From observing mentoring conversations, this seems to be true. 

Update: Another key element I've finally gotten around to designing is the follow-up section, which I'm currently calling the Mentoring Progress Report.

More to come...

Back to Table of Contents.

Photos from the >get >put Opening

Pictures from the art opening last night at little berlin:

Lo and Behold, I am become as a God

The art opening went really well this evening! Little Berlin's museum goers contributed their voices and contours to the art piece. If you too want to contribute, you can go and visit little berlin's show called >get >put. The piece will be on display from now until the 30th of November. A link to the youtube playlist is here.


Title of art piece: Lo and Behold, I am become as a God

Short bio of my piece: “Lo” - the first letters ever sent over the internet. Meant to be the word "login," the internet crashed after the second letter was sent from UCLA to Stanford. These two letters have now come to symbolize "lo and behold" - giving weight to the significance of the internet's birth. I find M. Square's journey in Abbott's Flatland to parallel our human journey with the internet; experiencing the internet as a space for individuals to create new bodies, a place to upload our minds into a land that is eternally virtual and for the moment, virtually eternal. It seems that John of Patmo's Revelation has come true – his vision of a new earth, a new heaven, and our new bodies. John writes as if he saw the internet, “Lo, a great multitude, which no man could number of all nations, and kindreds, and people, and tongues,” all spoke together (Revelation 7:9 KJV). This new medium may make us feel as a God, but it still reflects humanity's basic anxiety of death and our will to overcome it. We will to upload our minds into new bodies, into a land that might be eternal and endless. This art piece is our crowdsourced bodies and voices experiencing an ascendance, an upload, into a new dimension where all knowledge is available with a single download. I'll end with Abott's words, “Lo, the secrets of the earth, the depths of the mines and inmost caverns of the hills, were bared before me.”

Halloween Night: Setting up at Little Berlin

Just a few shots from last night's set up. Building the upload booth for my piece and placing the projector stand onto the ceiling.

Rhizome: The Download

Check it out! The Rhizome's put up a downloadable piece for the exhibit >get >put. There's short bios of each of the contributing artists: Alexandra GorczynskiA. Bill MillerGiselle ZatonylDerek FrechTravess Smalley, and myself. The gallery we're showing our pieces is little berlin, between November 2nd to the 30th. Come visit if you get the chance. 

The image below is from the Rhizome, and is a compilation of downloadable pieces contributed by each of the artists.