Archive for the ‘uncategorized’ Category

Linux Screen [session management utility]

Thursday, February 7th, 2013

terminal

Screen is a unix/linux application that allows you to run multiple processes from an interactive shell, such as Apple’s Terminal application. This nifty utility also allows you keep processes running when you close out of an interactive shell session (if you have experience working with interactive shells, you know that when you close a shell the processes running in that environment will stop running).

Screen is extremely useful for working with the Raspberry Pi, or any other remote computer to which you connect using ssh. Here are two scenarios that illustrate why I love screen. If you are intrigued, read on to learn how to use screen.

  • You are logged into the Raspberry Pi, using ssh, running an http server that publishes data from a sensor connected to the RPi. All of a sudden you get a “Connection Closed” message. Your session is abruptly closed and your http server gets shutdown because it was linked directly to your session. If you were running your http server using screen, then it would have continued running even when your session ended.
  • Let’s say that you want to run two different node servers on a remote computer. You could open two separate ssh connections to the remote computer, and start-up a node server in each one. In order to keep the servers running you will need to keep both sessions open indefinitely. With screen, you can connect to the remote server and create two separate screens, each one running its own node server. Best of all, you can log out of your session and the screens will continue to run the node servers.

Now that I’ve given you my description of what screen does, and why it rocks, here is a the official description from the man page: “Screen is a full-screen window manager that multiplexes a physical terminal between several processes (typically interactive shells).” Check out the Screen User’s Manual for more details.

Quick Start Guide to Using Screen
I am not a screen (or Unix/Linux) expert. So here is my short cheat sheet with all the screen commands that you will need to get started using this powerful utility.

Find Out What Screens are Running: When you run the command below you will get a list of all screens that are currently running. The name of each screen will be preceded by a process number and followed by the screen’s status. When the status is “attached” that means that a session is currently logged into that screen; “detached” means that the no one is logged into the screen.

$ screen -ls

Create New Screen: In order to create a new screen just run the command below, replacing the screen_name with an alphanumeric identifier. You can create two screens with the same name, though I don’t recommend it. If you do so, you can use the unique process id to differentiate between them.

$ screen -S screen_name

Connect to Existing Screen: To connect (or attach) to an existing screen you need to know it’s name or process id number. Then just run the command below using the appropriate identifier.

$ screen -r screen_name

Detach from Screen: To detach from a screen just use the key stroke combinations described below. Note that to “detach” means to disconnect from a screen without closing it. After detaching from a screen I always confirm that it is still running by using the list screens command described previously.

'ctrl-a' followed by 'd'

Closing a Screen: To close a screen you need to use the key stroke combinations described below. Remember that when you close a screen it will shut down any processes that were running in the screen.

'ctrl-a' followed by ':quit' then 'enter' key

Interactive Spaces [making physical spaces interactive]

Sunday, July 22nd, 2012

Earlier this week Keith Hugues from Google released a new open source project called Interactive Spaces. This project provides a software platform for making physical spaces interactive. This software enables you to link multiple different inputs and outputs within a space so that they function in a choreographed manner.

This software is similar to the ECS project from the Lab @ Rockwell. One of the descriptions that has been used for ECS, and is also applicable to IS is that this software provides the backbone for a local Internet of Things.

Interactive Spaces in Action

Over the past several months we (at the Lab) have been working on a project for Google that uses this software (the picture above was one of the projects that we developed for this Google project – picture taken from the Google Code page for IS). After several months of working with initial alpha and beta versions of this project, a stable version was released about a month ago, and now it is about to become available for anyone to try out.  Here is a brief description of IS from the google code page:

Interactive Spaces works by having consumers of events, like the floor, connect to producers of events, like those cameras in the ceiling. Any number of producers and consumers can be connected to each other, making it possible to create quite complex behavior in the physical space.

This is an initial source release. As the final licenses are finished, there will be a binary release. Please see Downloads for a PDF file for documentation. This documentation is in progress.

I don’t know many details about the internal workings of Interactive Spaces. Here is a brief overview of what I do know (you can always explore the source code available on the IS code repo to learn more): it was developed in Java and uses the Open Services Gateway initiative framework. Out of the box it supports scripts written in other languages that can run on the Java platform (such as python/jython), and integration of native applications (though the process is somewhat confusing until you get used to it).


Emote [Thesis Presentation]

Saturday, May 21st, 2011

Here is the presentation for my thesis project Emote. It was delivered on Monday, May 9th. Below the video is a slideshow featuring from my presentation slides.

Emote [Thesis Presentation] from Julio Terra on Vimeo.

Here are the slides:


Sensor Channels and Agent-World Circuits

Thursday, February 10th, 2011

What I found most interesting about Andy Clark’s piece “Re-Inventing Ourselves: The Plasticity of Embodiment, Sensing, and Mind” were his notions regarding how our senses enable us to connect to the world, and how we are able to unconsciously extend the perception of our body to encompass new possibilities for actions provided by “external resources.”

Sensors as Channels
Andy Clark describes our sensors as high-bandwidth channels that allow environmental factors to influence our behavior on a continuos basis. When we are performing a task we “open a channel” by tuning our focus to relevant sets of sensory resources. These high-bandwidth channels provide continuous streams of information that are used to guide our behavior. Clark uses the term “Agent-World Circuit” to refer to the agent-world couplings enabled by sensors channels.

This model of sensors as channels does a great job at describing the continuous process of feedback and adjustment that is at the core of DJ mixing. For a DJ to mix two different tracks they must tune in to their “auditory channel” and use the continuous stream of audio information to guide adjustments to the tempo of the tracks being mixed.

Extending Our Body Schema
The body schema refers to “a suite of neural settings that implicitly define a body in terms of its capabilities for action.” This part of our brain is extremely plastic, and can be trained and calibrated to integrate external resources into its definition of the “body”. According to Clark, our ability to extend the body schema is what makes us “profoundly embodied agents” rather than mere tool users.

One question that interests me related the concept of Body Schema, is how does this concept relate to the experience of flow.


Processing and Posterous: Authenticated HTTP Requests

Tuesday, January 4th, 2011

Over the past couple of weeks I have been working to aggregate all the data for the MoodyJulio project into a single database. This process has been rather painful so I am happy to report that I’ve been able to make a lot of progress on this project over the past week.

My first success was achieved last week, when I finished reading and processing a few million lines of data captured via my mobile tracker. All told I have upload over 4 million data entries into my project database. These entries feature my heart rate, galvanic skin response, along with basic information about my mood/emotion and a timestamp.

My latest success was in figuring out how to use the Processing and the Posterous API to download data from my personal mood journal. Though the Posterous API is quite simple, I have little experience working with web service APIs and the documentation available online is skimpy at best. Also, the Posterous API requires http authentication, which took me a while to sort our.

After a lot of research and hard work I was able to get Processing and Posterous to play nice together. To help other inexperienced Processing developers who want to use web APIs that require http authentication, I have put together a simple Processing sketch that makes this an easy task. Below is the code the I developed for this very purpose.


Biomimicry: Design Inspiration from Nature

Monday, September 6th, 2010

Earlier today I started to read about Biomimicry, a concept that I will be exploring throughout this semester in my class “the Design of Living Systems”. Biomimicry is the examination “of nature, its models, systems, processes, and elements to emulate or take inspiration from in order to solve human problems” (quote from wikipedia). The term biomimicry was popularized by Janine Benyus, in her 1997 book with the same title. Here is a video where Janine talks about biomimicry and shares several examples.

The Biomimicry Institute, which was founded by Janine, is a not-for-profit organization that is focused on promoting the study of nature to inspire the design of services, products and technologies. They help connect scientists and designers, provide resources for educational institutions, and support creation of public policies that aim to leverage biomimicry as a source of solutions.

AskNature.org is a project born out of the Biomimicry Institute. Its aim is to create a community that brings together scientists and designers to collaborate on the design of sustainable solutions to problems of all shapes and sizes.


Transportation Alternatives & The 100-Mile Century Ride

Saturday, September 4th, 2010

Transportation Alternatives

I just joined Transportation Alternatives (TA), an organization that advocates for the rights of cyclists, pedestrians, and public transit users in New York City. I am a frequent user of public transportation and an avid bicycle rider and I strongly support the goals of this organization.

This past week I joined Transportation Alternative and signed-up to participate in the NYC Century Bike Tour with a team from Habitat Music. We will ride 100-miles through Manhattan, the Bronx, Queens, and Brooklyn. As a group we have committed to raising $2,000 for Transportation Alternatives.

You can support me and the Habitat Music team by making a donation to Transportation Alternatives on my personal fundraising page (http://ta.convio.net/goto/julioterra). You can also support Transportation Alternatives by becoming a member, joining the Street Activist Network, or volunteering. You can become a member for $36 to receive the following benefits:

  • Four issues of the award winning Reclaim Magazine
  • Copy of T.A.’s commuter cycling handbook “Biking Rules”
  • Discounts at 100 area bike shops
  • Over $30 discount on Kryptonite bike locks
  • NYC Cycling Map and more

Street Art Walking Tour – Vila Madalena, Sao Paulo

Wednesday, September 1st, 2010



View Graffiti Tour, Vila Madalena & Pinheiros – August 2010 in a larger map

I’ve been a fan of graffiti and street art since the late eighties and early nineties. To me, the most appealing aspect of this artform has always been its accessibility – in regard to both subject matter and location. My hometown of Sao Paulo has had a thriving street art culture for a long time, though I only became aware of it in the early 90′s when I returned to Brasil after living in Canada for many years.

More recently, the quality and quantity of street art in Sao Paulo has grown to rival that of other centers such as New York and London. I have a personal passion for the warm and colorful styles that have come out of this South American graffiti capital and have long been sharing with my friends the pictures and stories from my explorations. During my latest trip to Brasil I decided to put together the first in a series of street art walking tour maps for Sao Paulo.

These maps are intended for anyone with an interest in street art that happens to find themselves in this great metropolis. Vila Madalena is likely the neighborhood with the highest density of high-quality graffiti tags and artists in Sao Paulo. It has long been considered one of the cities coolest bairros and it is home to its most prominent street art gallery. Therefore, I thought it was an appropriate location to kick-off this series. I hope you enjoy.

Here is a link to a collection of all my Sao Paulo street art pictures from the past 3 and half years.


Reality is a Story

Tuesday, April 6th, 2010

This is an awesome TED video from Chimamanda Adichie. In this video, Chimamanda explores how the limited spectrum of stories that are told about Africa have had a negative impact on the the global community’s perspective about this continent. What I took away from this video is the importance that stories play in the process of creating reality at an individual and communal level.

On a personal level I realized how the stories govern how I feel about people, objects, and other entities. I also realize how the prevailing narrative regarding any one person or thing is extremely dynamic. Sometimes an emotionally charged story can overshadow a rich web of other stories that make up a relationship. An obvious example is when a person is so angry with a loved one that they are blinded to that person’s endearing attributes.

Thinking further about this topic a few days after watching this video I had another insight. The stories that are repeated most often in my mind become the leading strands in a pool of narratives that govern my relationships to the world around me – my wife, cat, family, school, friends, etc.

This leads to the following question:

  • What is the best way to leverage/control/transform my automatic meaning and story-making faculties to create a fulfilling life?
  • What practices can I put into action to enable me to better guide/control/transform the creation of these unspoken narratives in my mind? How can I insert new stories into the mix? How can reduce the rotation of existing stories? etc.
  • How can we design systems that help people guide/control/transform the unspoken narratives that they create about their own lives?

Of course we could get into a discussion here about meditation and other practices of quieting the mind. This is all very relevant stuff, as a matter of fact I have been incorporating these practices into my own life. That said, this is outside the realm of this current post though I plan to explore more fully in future years once I have more experience with such activities.


Designing a Street Game: Battle of Brooklyn

Friday, March 19th, 2010

Last week I decided to collaborate with Morgen Fleisig on a game submission for this year’s Come Out & Play Festival, which will be held in Brooklyn for the first time. Since submissions are due on March 19th we are scrambling to put together the mechanics for our game, which is named after and inspired by the Battle of Brooklyn.

The main inspiration for developing this game was to create an experience that brings to light all of the different layers of history that can be found in Brooklyn. This includes but is in no way just limited to the historic Battle of Brooklyn.

Before I proceed with sharing the initial ideas we have for the game, let me provide a very brief overview of this historic battle. Since I am just learning about it I took all of this content from the Brooklyn Online website. Morgen was the instigator in regards to the game concept.

The Battle of Brooklyn took place in 1776 shortly after the revolutionaries declared independence from England. It was a very brutal battle, British soldier went so far as to impaling revolutionary soldiers that were captured. Luckily for the revolutionaries the weather played to their advantage, holding back the British ships for a few days and providing time for Washington and his artillery to escape.

Now back to the game idea. From a high-level perspective we want to create a game where two separate teams are fighting for territory around the Prospect Park and Gowanus Canal area of Brooklyn. We have been going back and forth on the extent to which we want to create mechanics that mimic the battle from 1776.

For example, do we want to teams of different sizes (e.g. the brits had a much larger army)? What about making one team easier to spot than the other (e.g. red coats vs. guerilla-like revolutionaries)?

One interesting navigational mechanism that we are considering is giving players a historic map of Brooklyn to guide their battle for territory. Players would need to be able to use this historic to find their way around modern day Brooklyn.

In regards to the scoring mechanism we are still considering many different possibilities. These include using GPS-tagged pictures, leveraging chalk drawing, incorporating physical interactions between players, or integrating found objects in creative ways.

Over the next week, as we continue to evolve this game idea, I will share additional updates here. Please provide us with your thoughts and input to help us make this game as fun as possible. Our goal is to have you want to come out and play it as well!