Pseudo Code for Intelligently Determining TIF Districts

A diagrammatic sequence for determining a tif district.

Continue reading


Chicago Neighborhood Analysis Indicators

Class classification

1. Working class

2.Service Class

3. Creative Class (creative class diagram)

Compared Neighborhood

  • Wicker Park (Creative-hipster subgroup)
  • Pilsen (Working class neighborhood)
  • Englewood (Service Class Neighborhood)
  • Lakeview/Lincoln Park (Established Creative Class Neighborhood)
  • Logan Square (Potential Creative Class Neighborhood)

Chicago Neighborhood Indicators (chicago neighborhood analysis)


  • size
  • ethnic diversity
  • education level (>bachelor)
  • income
  • job

Existing building fabric:

  • typology
  • rent cost
  • house value
  • ownership
  • density

Transport and infrastructure:

  • distance to public transportation
  • traffic flow
  • parking availability
  • bicycle lane

local context:

  • restaurant
  • bar
  • coffee shop
  • grocery shop
  • farmers market


  • residential
  • office
  • commercial

public facility/service:

  • public school
  • safety
  • health

green space:

  • recreational park
  • playground
  • dog park

Comparison Diagram

 chicago neighborhood comparison diagram

calculating bicycle lane percentage over neighborhood


rawdata as
–join the table, #of bike route in a neigh, total length of bike route in a neigh
select n.pri_neigh,
count(s.f_street) as totalroutes,
sum(st_length(s.geom)) as length,
sum(n.shape_area) as neigh_area
from jur_neighborhoods as n
left join cty_bikeroutes as s
on st_within(st_transform(s.geom,3435),n.geom)
group by pri_neigh
limit 100
–divide total lenght of bike route by neigh area
select pri_neigh,
(r.length/r.neigh_area)*100 as percentage
from rawdata as r
group by percentage, pri_neigh
order by percentage


bicycle percentage table

Monitoring People by detecting cell phone

The intent of this post is to give potential ways of tracking people on CTA buses. There is currently no way of tracking individuals, nor who gets off at what stations. With the hopes of providing a prototype for a system that will give the CTA a more comprehensive analysis of their riders, several factors will be necessary.

1. There needs to be an accurate way to detect when a person boards the bus as well as when they get off.

2. There needs to be a way to detect multiple people and keep track of them as they shift through the bus.

The wide spread use of cell phones would offer one way of tracking peoples movements. Cell phone detectors are common in prisons as cell phones have become one of the largest contraband items in prisons. These systems are relatively inexpensive and they are non intrusive, meaning they detect the radiation given off by phones and do not actually monitor phone usage. This second part is important because it allows us to track people without illegally monitoring their calls, texts, or data streaming. Here are links to the two most commonly used companies for cell phone detection.


This is geared more towards protecting a wifi network but it still is capable of detecting cell phone uses anywhere from 5-100 ft. If hacked and set with an aduino circuit board this would give the opportunity to monitor the radiation given off by cell phones with reference to location on the bus.

The second link is  to the far more common BVS systems cell phone detector


This system is as small as a deck of cards, which would be advantageous on a crowded bus. This detection is up to 75 ft which allows it to detect anywhere on a bus. If properly used this could allow for detection of peoples cell phones when they get on the bus and when they get off, essentially allowing to track multiple people and to better determine what are the busiest bus stops.

The suggested prototype for this will not give the information on what the best bus routes but it will give the potential prototype for collecting the information necessary to determine this in the future.

The last link is for a tiny homemade motion detector. This is an alternative to cell phone detection but it would be difficult to get a comprehensive understanding of the amount of people on the bus as it monitors motion and cannot determine individuals

Using APIs: Not Quite as Hard as it Looks

By Dawn Foster
Using the APIs really isn’t as hard to use as people seem to think. In this post, I’m going to show you how you can make use of APIs (perhaps to gather data, or to carry out some automation) with no programming.

I used to think of APIs as some kind of magical, amazing constructs  that could only be used by people willing to write big chunks of code. But when I started using Yahoo Pipes, I noticed that other people were using APIs to gather useful data using what looked a lot like regular, ordinary URLs. Now, this isn’t to say that every API can be used without any programming skills, but using many of the APIs made available by services on the web really isn’t as hard to use as people seem to think. In this post, I’m going to show you how you can make use of APIs (perhaps to gather data, or to carry out some automation) with minimal programming.


Construct the URL

This first thing you need to know is how to construct the URL. Each API is slightly different, so you need to review the documentation for the

API you’re interested in. Most of the time, the documentation will include examples that you can tweak to get the output that you’re after.

For example, here is the documentation for the MediaWiki API’s backlink query. It can return a list of pages that link back to a specific page that you are interested in. It includes an example URL that looks for all the pages that link to Wikipedia’s home page. I’m going to tweak that so that it finds 10 links to the Star Wars Wikipedia page.

Let’s break down that URL and see how it’s made up:
 — This is the place on the web where the API lives. Here, we’re using Wikipedia as an example, but you can replace this first part with the URL of any MediaWiki installation.
action=query — fetch the data requested in the rest of the URL.
list=backlinks — list pages that link to a specific page.
bltitle=Star%20Wars — the specific page with the title “Star Wars” (note that %20 represents a space).
bllimit=10 — limit to 10 results.

I simply took one of the default examples listed in the API documentation and made only minor changes to gather the information that I was interested in seeing.

Available Formats

API calls can return a variety of formats depending on the service. I usually start out by returning the data in HTML or XML that I can easily view in a web browser to make sure that my query is correct I’m getting the results from the API that I expect. I’ll then sometimes switch to another format, like JSON, if I want to download the data to use for some other purpose later.

Let’s take a look at another example. Here is the documentation for Twitter’s GET users/show function, which returns all of the available information about a user, including description, URL, link to profile image, last tweet, count of friends / followers, and much more. Again, I can simply modify the provided example query to return the information I’m interested in:
 — Version 1 of the Twitter API.
users — users section of the API to gather information on a user.
show.xml — display the output as XML.
screen_name=geekygirldawn — the user that you want information about (geekygirldawn)

Rate Limiting

Keep in mind that most APIs have some kind of rate limiting, which means that you can only make so many calls to the API from a given IP address or account in a given amount of time before they cut you off. For Twitter this limit is 150 API calls per hour. This is to prevent people from abusing the API and putting too heavy a load on the servers, but it also means that you might be playing with some API calls to get the parameters just right when you are suddenly cut off. Don’t panic. Go have a drink or a snack, and come back in an hour or so to try again.

API Keys

Some APIs require that you sign up for an API key. This is usually to keep track of your requests, and you should think of it as a little like a password that shouldn’t be shared with other people. In many cases, an API key is what the API uses to rate limit your requests.

Combination for More Power

With some additional programming expertise, or using a tool like Yahoo Pipes, you can start to combine these APIs to get some really interesting information that can’t easily be gathered in other ways. For example, I have one Yahoo Pipe that:
starts with an RSS feed of all of my WebWorkerDaily posts
takes each link and runs it through the BackType API to see who has posted the link to Twitter
then uses the Twitter API to see how many followers each person who tweeted the link has
and finally it formats all of this information into a new RSS feed in the form of “username (num of followers): Tweet text” that I can view in my RSS reader

What are your favorite tricks for using APIs to gather interesting data?

Though Thomas has already mentioned in the first class, however, from my point of view, this is a good example for the very beginner to learn how to use it to collect data.

Umapper, tool to map tweets

The UMapper plugin is a universal mapping platform that makes it a snap to create engaging maps and add them to your blog posts.

Microsoft Bing, Google Maps, Yahoo, OpenStreet and CloudMade are all supported by this truly universal plugin.

Home page of Umapper:

The latest from (@umapper). The easiest way to create, distribute, track, monetize online maps. See for more info.


UMapper is a universal map authoring application, which allows users to create interactive maps and distribute them online. UMapper works with map providers such as OpenStreetMap, Microsoft Virtual Earth, Google and others.

The current version supports points, lines, polygons as well as geonames and Wikipedia search.

UMapper is built using proprietary mapping API UMap. Saved maps can be exported as KML or ActionScript 3.0.

UMapper map authoring application is available as a plugin for WordPress.

Read more: