Zeven Rodriguez

understandingnetworks

How Does Your City Feel?

understandingnetworks

Comments Closed


Share this post

How Does Your City Feel? captures the emotions people feel in their cities by measuring them in the contents of local real-time Twitter messages.
What are people feeling in New York City? Seattle? San Francisco? Sad? Happy? Angry? Love?
When you visit, please choose a city and click an emotion to see the results. If you click only on the city, you will see a graph of the emotions measured by the statement, “I feel…” The mapping is created instantly via Google Charts API by parsing XML from Twitter’s search results. How Does Your City Feel is coded with Javascript, and AJAX. So far, I’ve been tickled by the different moods each city exhibits. San Francisco appears more relaxed while New York shows more emotional volatility. When New Yorkers feel love, they really express it – same goes for anger! See the screen shots below for more examples.
How Does Your City Feel? was created by Cindy Wong andZeven Rodriguez.
New York City

San Francisco

Seattle

Read more

Connections: Final Project Proposal

mobilemedia, understandingnetworks

1 Comment


Share this post

Connections is an multiuser interactive installation that uses a mobile web application as a collaboration tool. The system uses various nodes to accomplish this. The mobile application is the input method. A computer with a projector and arduino control the output. A server processes and syncs all communication between the computer, arduino, and mobile application.

Goal
This project is to highlight the importance of peoples connections. We emit alot of noise in the world, but at at some point we make that connection with someone that drowns out the rest of it.

Here is the working display. The selects 2 bottom squares.

How it works?
The user visits a website. They will be greeted with this application.

There they select a color the represents them, followed by selecting a block that will start emitting connection particles. Simultaneously a block (of the same color) will appear in the center “arena”. This is a worm hole for particles. So, if you create a red emitter you create a red collector. Particles have strong rules that attract them to the worm holes. The particles can only make connections once they are in the center “arena”. When particles start emitting they will have there own sound. Finally, at some point 2 different particles will make a connection. Once particles make a connection their combined tone will drown out the rest of the emitting particles.

connections
Laying out a pattern to cut out the foam. This was used to fit the the LED blocks.

Connections
This the first fitting of the blocks on the foam

Connections
Rune making the connections for the LED blocks


Testing the interfacing between the computer and led blocks


Running the web app with projection display

connections
Our most excited user.

Next Steps

  • Fix power issue. Because we are stringing so many of these addressable LEDs. They have a voltage drop off of .3 volts. We are going to address this by using multiple power supplies
  • Skin the front
  • Create more graphical interaction when particles connect

Issues

  • We found that decoupling the ground and the data by adding a .1 microfarad cap and 1k resistor in parallel fixed some syncing issues. We found that when we touched the wire the data and clocks would sync up. Eric Rosenthal gave us the idea of decoupling ground and data. We still had issues at the end of the 64 leds with sync

Read more

Traceroute Miami and New York

understandingnetworks

Comments Closed


Share this post

For Understand Networks, we had to run a traceroute on 24 sites. I did it located in Miami and New York. I wrote a python parser that takes in a large text file with all of the traceroutes and sorts what IPs were hit the most. I ran the traceroute on windows with this command tracert thensite.com >>master.txt. The >> appends to the end of an existing file. One thing I noticed with these maps is that most of my traffic was routed through the same IPs.

This is the site I used to make the map.

http://www.topwebhosts.org/tools/ip-locator.php

import re
from operator import itemgetter
def makeDict(site):
    superList = list()
    tempList = list()
    ip = str()
    timeList = list()
    avTime = int()
    map = dict()
    textAddress = ' '
    siteLister = list()
    for line in site:
        line = line.strip()
        siteLister.append(line)

    for i in range(4,len(siteLister)):
        if i >=4:
            listSplit = siteLister[i].split(' ')
            for num in range(0,len(listSplit)):
                    if 'ms' in listSplit[num]:
                        if ('<1' in listSplit[num-1]):
                            timeList.append("1")
                        else:
                            timeList.append(listSplit[num-1])

                    if re.findall(r"bw+.",listSplit[num]):
                        if re.findall(r"b(d{1}|d{2}|d{3}).(d{1}|d{2}|d{3}).(d{1}|d{2}|d{3}).(d{1}|d{2}|d{3})b",listSplit[num]):
                            tempList = re.findall(r"b(d{1}|d{2}|d{3}).(d{1}|d{2}|d{3}).(d{1}|d{2}|d{3}).(d{1}|d{2}|d{3})b", listSplit[num])
                            tempList = tempList[0]
                        #print tempList
                            for word in tempList:
                                ip = ".".join(tempList)
                        #print ip
                        else:
                            textAddress =  listSplit[num]
                            #print textAddress
                    if (len(timeList)==3):
                        avTime = (int(timeList[0]) + int(timeList[1]) + int(timeList[2])) / 3


            if ' ' in textAddress:
                textAddress = ip

            #map[ip]= [textAddress,avTime]
            superList.append([ip,textAddress,avTime])
            textAddress = ' '
            avTime = 0
            timeList = []
            tempList = []
            ip = ' '
    #print map
    return superList
    #print map.keys()

def sortIps(listBig):
    siteList = list()
    allMap = dict()
    bigSet = set()

    bigSetList = list()
    for i in range(0,len(listBig)):
        tempString = listBig[i][0]
        bigSet.add(tempString)
#
    bigSetList = list(bigSet)
# run through bigList checking every bigList[i][0] to see if it matches with bigSet[i]
    for i in range(0,len(listBig)):
        tempString = listBig[i][0]
        for j in range(0,len(bigSetList)):
            tempStringSet = bigSetList[j]
            if tempString in tempStringSet:
                if tempStringSet in allMap.keys():
                    allMap[tempStringSet]+=1
                else:
                    allMap[tempStringSet] = 1

    for w in sorted(allMap, key=allMap.get, reverse=True):
        if allMap[w]>1:
            print (w + " : " + str(allMap[w]))

bigList = list()
bigList1 = list()
masterSite = open('sites/master.txt')
masterSite1 = open('site2/master.txt')

print "MIAMI"
bigList = makeDict(masterSite)
sortIps(bigList)
print " "
print "NEW YORK"
bigList1 = makeDict(masterSite1)
sortIps(bigList1)



#for ips in bigSetList:
#    if allMap[ips]>1:
#        print (ips + " : " + str(allMap[ips]))

This is the output from the parser

MIAMI
  : 261
65.14.121.204 : 24
12.122.106.94 : 24
12.122.1.45 : 24
192.168.1.254 : 24
12.122.5.142 : 21
12.81.8.24 : 19
65.14.121.181 : 13
68.152.169.161 : 11
12.81.8.98 : 10
12.122.80.185 : 6
12.81.8.9 : 5
74.175.192.182 : 5
74.175.192.190 : 4
74.175.192.186 : 4
12.81.8.73 : 4
199.181.132.250 : 4
12.81.8.17 : 4
74.175.192.178 : 4
12.122.84.21 : 3
12.81.8.71 : 3
12.122.1.174 : 3
12.81.8.15 : 3
74.175.192.166 : 2
67.16.138.214 : 2
74.175.192.202 : 2
64.125.31.54 : 2
12.122.84.113 : 2
205.186.154.181 : 2
69.195.198.147 : 2
192.205.35.90 : 2
64.30.230.20 : 2
152.52.20.247 : 2
12.122.1.5 : 2
209.170.90.66 : 2
12.122.87.61 : 2
12.123.22.25 : 2
64.125.27.61 : 2
12.122.5.185 : 2
64.210.15.78 : 2
12.81.8.13 : 2
12.81.8.19 : 2
209.131.112.94 : 2
69.60.7.195 : 2
12.81.8.7 : 2
207.97.227.239 : 2
192.205.35.234 : 2
69.63.181.12 : 2
64.124.161.42 : 2
69.60.7.199 : 2
64.131.82.241 : 2
63.246.23.232 : 2
192.205.37.82 : 2
208.80.152.2 : 2
74.175.192.174 : 2
74.125.67.83 : 2
192.205.35.218 : 2

NEW YORK
  : 278
173.56.121.1 : 24
192.168.1.1 : 24
130.81.180.4 : 12
130.81.29.238 : 12
130.81.29.236 : 12
130.81.49.94 : 12
152.63.16.185 : 9
152.63.17.21 : 9
4.69.138.254 : 7
152.63.3.118 : 6
4.68.127.21 : 6
4.69.138.222 : 5
4.69.141.21 : 4
152.63.10.25 : 4
199.181.132.250 : 4
4.69.132.89 : 3
4.69.132.65 : 3
152.63.10.29 : 3
152.63.9.249 : 3
4.69.135.185 : 2
69.63.189.16 : 2
173.194.35.83 : 2
152.52.20.247 : 2
4.71.152.22 : 2
69.195.198.147 : 2
4.69.132.61 : 2
12.122.1.209 : 2
4.78.132.98 : 2
4.68.111.137 : 2
4.69.132.53 : 2
205.186.154.181 : 2
4.69.140.190 : 2
152.63.18.73 : 2
152.63.21.133 : 2
209.131.112.94 : 2
69.60.7.195 : 2
207.97.227.239 : 2
4.68.105.36 : 2
64.30.230.20 : 2
64.131.82.241 : 2
63.246.23.232 : 2
63.85.36.74 : 2
208.80.152.2 : 2
69.60.7.199 : 2
152.63.1.57 : 2
4.69.141.17 : 2

Read more