hacknyc intro / api intro stream of thought / liveblogging

 Saturday, March 24, 2:10 PM Hackny

office hours: node, js, api 101, python, ?__?

judged by awesomeness and nothing else

selected apis by vote and not sponsorship

Longtail — jwplayer (flash/html) — js api.
–embedded geodata. updates vwidgets on the side. -> api working better on ipad than on the desktop. O__o


JSON. events: { onPlan: …} –> vs popcorn ?__?
bitsontherun -> iphone on th erun video integrat w/ longtail video
parse.ly, zach and emmitt
Dash for publishers (semantic content) –> google analytics + higher level for online publishers

1. Extract: e.g. columbia professors -> identifies all the “entities” (topic or idea) -> marks it with tags
[REDACTED], POST w/ test and returns (5-10sec) url to check status (query for working/done). Returns text with
1. -> any page

2. ~rich structured article data API?
json, jsonp (call directly from js/ajax), and xml outputs
2 -> for articles already indexed in parsely database

entity swapping (rep vs dem), mad libs, historical reader

=> nyc startup ecosystem, full time student

nytimes api, Brad
17 APIs

throough documentation with preview w/ api request tool.
Facets: >40 facets (complex and robust APIs)
complex in general

~does not yet support jsonp
aviary.com erin and ari -> web api
photo editing toosl for you as the developer to integrate.
aviary.com/ios (sdk) -> very simple to use. crop, rotation, effects … want us to build next instapaper etc. Not intrusive (blended into app)

very quick integration, cross platform (web, ios , android)
www.aviary.com/webwww.aviary.com/code-generator (including a js w/ editor)
they will post to our app (and we decide how implement security)
android: has sample app in ADK download
you choose tools available in app

movable ink.com
=> #hackny irc.freenode.net
put dynamic content into email (generate content that goes into email when opened). (crop tool to pull from website).
e.g. bottom of email: shows progress of selected donorchoose project. donorsig.com/capture
htrml5 support, streaming from site into email o___O (beta)

rest api prolly not needed. movableink.com/api/docs

4sq, aditya
very powerful, used even for own web client internally so you have almost as much power
very easy to setup and get going quickly = good choice for beginners

users, venues, tips
developer.foursquare.com/apishowcase or something
-> timehop ^__^
oauth, restful
also many libraries for almost any language ^__^ yay wrappers
ordr.in, felix (sp?), david
stupdendously easy way to add food ordering to hack (rich structured data to menu and can submit food delivery orders)
e.g. ordr.in/devleopers/restaurant
there are also utility apis around restaurant (saved user profiles, restaurant taxes, etc.)
restful, jsonrific
yep libraries

tumblr. dereck, john? bunting

json console to mess with

ruby client

client.posts(“onetinyhand.com”, false. {:limit => 1})
“give me the first post on here”
client.posts(“onetinyhand.com”, false. {:tag => “kim jong il”})

will be open sourcing ruby client (not tested)

10gen, francescapasha, barriesegal
prezi ~
mongodb, nosql, document orientd, open source, schemaless DB
relational databases mostly in DB class.
docs nested in collections, great for working things out on the fly. eg hackathon.

rdbms (tradtl) vs mongo
table -> collection, row > document, column > field, index>index, join (takes a long time)>embed** (relations between difft collections, amke documents fster), can add as go.

create relationships between data

use mydb
var hackathon = “authoer”:”fra”, “title”: “hack”};

_id –> autogenerated
db.blog.find({author: asf})
db.blog.update(P_id: post.id{ …….

query operators and update modifiers

db.blog.remove() (remove all objects)
db.blog.drop() (drop entire collection)

there is shell embedded in try.mongodb.org
tutroail, next, …. ….
api.mongodb.org (drivers for different langs. python on of the strongest) -> python OH knows some mongoDB

etsy API, christopher
800k active users / 13 mill active listeners
100+ countries
14k+ people to make living

search by color, listing info, put up listing, anything can do by web
can access own sales data (metricly!)

-> create new app on the left, or documentation -> api ref


wangsandneeds.me (twitter crawl)
codeascraft.etsy.com (blog)
nodejitsu, charlie, paolo
(10+ people on irc often)
@indexzero, @hij
loves open source, node.js
anything community -> os
company/corporation -> our ip, proprietary

js low barrier to entry, sophisticated network

nodjitsu, public cloud ~__~ “jitsu” is public command line for deploying
develop.nodejitsu.com (deploy from web)

mongo or couch, … can choose database

smart snapshots (git tags -> tarballs) (yay rolling back producting bugs)
do not need git (do all version management for you)

github.com/flatiron (after ny building) –> decoupled tools for logging, routing, … very convenient for getting started with

~node-chat, MIT license

clone, cd it.
node server/server.js (uses socket.io, allows realtime web porgramming)
yay~~ talk to self on localhost…..

npm install jitsuyou should be donig it right now (npm = package manager for node

in that dir, jitsu deploy (reads package manifest) & need extra properties, which prompted for. (0.6.x) = latest version of js

hackny-chat.jit.su (soviet union)
ambassador’s email: s2012ambassadors hrm at hackNY.org
donorschoose NYC, oliver, cto
nonprofit, website where public school teachers push best ideas for schools they can’t afford, founded by public school teacher in teh bronx, does actually work (35 mill donations, delivered over 120 mill since inception, 6 mill students). yep, microfinance (real people donating small amounts)

garage developers on their own time will build things and make it moar awesome

~> naive about reaching out. at beginning, no one used it @__@
but now strategic asset

25 mill projects ~ yay long tail properties (topical and geographic diversity of proposals)

can query by location, zipcode, radiate out, or by latlong, point radius / boudning box,
classroom subject, e.g health and wellness
teachforamerica corps members
keyword search

subject area in
amount needed, teachers name, locale info, photo, short essay by teacher, can support transactions (talk offline), campaign level donations (impact statistics in real time)

~starbucks: w/ wifi: show nearest classroom project to where they are
~sonic: ask customers to pick projects they donate to
~chevron: based on where pumped gas, fund projects nearby
~amazon?: willing to buy one give one, classroom project which requst same thing
~ email sig: based on sender, choose which projects by sender’s whims (music, bronx)
~ running commitments for donations
~ 4sq mashup, recs by places visited in the past

and don’t care if we are the main focus or not, just build things awesome πŸ™‚

donorschoose.com -> play around w/ frontend search
api is essentially programmatic access to frontend
demo api key is full featured (no need to wait)

and has “prepaid” gift cards if we want to testdrive the donation process
samir yay at nextbigsound.com for api key
next big sound
analytics and insights for the music industry
premium products: dashboard to understand impact of key events on performance (key metrics)
methods: artist search, profiles, metrics

returns json, can query artist or

bookmarklet ->
~kickin?__?~ api not present ^__^

hackerleague page for listing!!!
48hrapps, hacklympics, boxxy?
john, tumblr, python, ruby, php, mysql, redis?, mongo…
rob specter, twilio, python, js, ruby
john 2?, cofounder of hackerolympics, 48hrapps
zach, parsely
aditya, 4sq, data science, not js (python, perl)
john goodwin – social data and analysis, cofounder of a company
dan from something, rby on rails,
5pm, oh, nodejs, dan rm201
6pm, api 101, rm102
5:30 rails
7pm python

demo on sunday -> make sure project on hackerleague

“you draw nyquist with d-contour?”


One of my classmates made this last week. ^__^

In 6.302 (Feedback Systems) we’re supposed to have learned nyquist stability criterion (which, by the way, results in some fairly weird-looking plots[1]), and they were on the test today.

Of course, I’m about three weeks behind the class and just learning about root locus XD oops. Spring break = time to catch up on classes ?__?

[1] e.g.


I submitted a doodle of nyancat as one of my quiz answers. Clearly, just as there is a “model a butterfly in solidworks” challenge created due to my ineptness, there should be a “create a feedback plot that looks the most like nyancat” challenge πŸ™‚

how do I machine shop [at MIT]?

sup dawg heard you’d like to machine things at MIT, here’s what’s up:

Step 1: Get inside the TARDIS


Step 2: Arrive in China

Step 3:  Make friends in China and tour factories

Okay I lie. this is actually a machine shop and not a factory, but here be precision prototypes ala Charles’s outsourced hubmotor casings made
Also, protip: if you ever do visit a factory, don’t be like me and pretend to be a factory worker and **** up all the parts while working 5x slower than everyone else >__<;;;

Step 5: profit!!!11!!

… …

Oh right. Sorry. I’m supposed to not fail 2.671 and graduate so I will start on MIT machine shops now.  First, I’ll overview the generally accessible shops, then I’ll go over waterjet / lasercutter access. In particular, I will address this as a major-neutral FAQ instead of a pictorial / virtual tour of machine shops around campus.

Q: How do I learn to machine?
A1: Edgerton shop training. 
Sign up for the Edgerton shop training waiting list right now. Seriously, right NOW. All you have to do is send a measly email and it takes upwards of a semester to get off the waiting list.

“The monthly training program is conducted in the evenings and consists of twelve hours of hands on instruction, showing the basics of milling and lathe work by making two small parts”

At the end you even get to take home this beauty which you created from stock rod and bar:


It’s also IMHO much more actually useful than your two weeks of 2.670 (which are more like “heyyy guys check out these tools at your disposal, j/k we set them up for you) or even 2.007 and 2.008 if you don’t take the initiative and swim counter-current, the shop guys (bless their hearts) will do a lot of the setup work for you in order to keep the class running smoothly (esp. toward the end of semester, when you know what you want to do but so does everyone else).

When I took 2.007 I contemplated taking advantage of my free time / their free time early in the semester, but was told they wouldn’t tolerate non-class projects “just to learn machining.” I now think that’s false, but it’s still nerve-wracking for someone like me to just go up to them, esp. since at the time I didn’t know what sort of beginner level projects I could try out just for fun, so I just ended up skulking around MITERS.
A2: Take “How to Make (Almost) Anything“. 
This is much more of a crapshoot, as it’s offered only 1x a year to 40 people (usu ~150 people apply). However, they actively try to create a “class” of different background each year: undergrads, grads, architecture, media lab, no “making” experience, machining experts, all have a chance of getting in.

For reference, this is the prof on CNN and at TEDtalks, and this is the class website as well as the subject listing.

Q: What shops are open to me to work on personal projects as an undergrad?

A: Hobby Shop, Edgerton, MITERS. 

It’s also an open secret that you can judiciously use your UROP shop access for personal projects; see later in this post for more info on UROP shops (the biggest ones are Media Lab’s and CSAIL’s). In addition, several dorms / some students have their own mini-machine shops.

  • Edgerton
    It’s right behind CSAIL. Entrance is to the right, under the external staircase.
    • Who it’s open to:
      • “The Edgerton Center Student Shop provides training in the use of machine tools, access to them, and guidance in project planning, to any current MIT student.”
    • Types of Projects: 
      • “Once you’ve completed the course, you’re free to use the shop whenever you want, whether it’s for a class project, a student group you’re working with, or your own fun idea” (src)
    • Safety: 
      • Either take the shop training class or test out of it and just take an hour-ish edgerton shop familiarization lecture
    • Hours: 
      • Open “business hours”, aka “9 to 5”-ish.
    • Cost: 
      • Free
    • Noteworthy Equipment: 
      • CNC mills and lathe
      • welding (mig, tig, stick)
    • Sometimes staffed by students
  • Hobby Shop
    Almost next door to the student center. Entrance 1: door under white box (right part of image)
    Entrance 2: door under white box (left part of image)
    • Who it’s open to:
      • “Membership to the Hobby Shop is open to MIT students, staff, faculty, retirees, alumni/ae, and their spouses”
      • “Today, the Hobby Shop provides a place for any MIT student, regardless of major or experience, to work with a wide range of well maintained machines and tools and to receive instruction, as well as practical design and building advice. 
      • “The Hobby Shop now offers its own classes” (mostly IAP ones around specific projects, I think)
    • Types of Projects:
      • “Projects can be academic or personal, serious or just for fun.” (src)
    • Safety:
      • Don’t really need machining experience (the instructors will help you when you have your project in mind), take the shop orientation and you’re set
    • Hours:
      • B
      • Business hours
    • Cost:
      • $30 / term (spring, summer, fall) or $75 / year
      • Noteworthy Equipment: 
        • More woodworking tools than anywhere else
        • CNC mill and lathe
        • Waterjet (membership + $2/minute)
        • Equipment List (with pictures even! very nicely done)
    • MITERS
      Same building complex as MIT Museum (across from Random / Shaw’s). Entrance 1: under white box (to left of yellow truck)
        Entrance 2: Under white box
      • Who it’s open to:
        • “We are a student group promoting making things for the fun it. We are MIT’s only student-run shop, and we do not receive funding from any MIT department.” (src)
        • Open to everyone, but especially MIT undergrads
      • Types of Projects:
        • “It’s a member-run creative haven and build-anything-you-want, if-you-break-it,-fix-it space.” (src)
        • Class projects, UROPs, and projects-just-for-fun all welcome, as long as you contribute back by keeping the shop clean and hanging out with us
      • Safety:
        • Edgerton shop training highly recommended
        • Only open when a keyholder (student who’s hung out a lot, i.e. know the quirks of MITERS’s equipment, and has taken Edgerton training) is there
      • Hours:
        • Whenever a keyholder is there, aka almost 24/7. Once you become a keyholder yourself, you can go whenever you want (though if you’re working w/ power tools, must have at least one other person with you).
          • When I took 6.131, lab closed at midnight and we’d all migrate to MITERS to pull an all-nighter
      • Cost:
        • Free (our budget comes from students like you volunteering on our behalf at Swapfest (src)
      • Noteworthy Equipment:
        • EE lab as well — components, power supplies, oscilloscopes, pcb etching
        • welding a possibility, email our list directly for more details
        • Manual lathe, numeric read-out (not CNC) mill
        • Equipment List (with pics)

    ~~~following WIP, to be fleshed out~~~
    Waterjet: media lab (24/7), CSAIL (24/7), architecture bldg10 4th floor (24/7 I think), 2.007, hobby shop … idk other shops (16?)

    • UROP or take classes @ media lab and sign up for their shop training right away (24/7 access)
    • UROP @ CSAIL and sign up for shop training right away (24/7 access)
    • course 4 major

    Lasercutter: media lab (24/7), CSAIL (24/7), architecture (24/7), 2.007?, commercial shop by 2 MIT alumni: danger!awesome right near Central T stop / Toscii’s, … idk other shops (16?)

    • urop / class @ media lab
    • urop @ csail
    • csail
    • be course 4 major
    Shopbot (giant CNC mill): media lab, possibly UROP w/ MIT Museum?
    Injection molding: yea right. take 2.008 and make friends with the shop guys?

    Vacuum forming: media lab (24/7), architecture (24/7), 2.008

    small CNC mill, milling / etching: roll your own for ~$200 with waterjet and scrap Al

    Stock: MIT central machine shop, McMaster-Carr, Turner Steel
    ee-ish: hobbyking, ebay, amazon surprisingly
    silicon molds / plastic / food-safesmooth-on
    through ECAT vendor for your UROP: digikey, mouser, jameco

    Appendix, LMP

    The Manufacturing Lab in building 35 will be open for extended hours on Tuesday’s & Thursday’s from 5 – 8 PM for use as a trial period under the following criteria starting next Tuesday 2/28/12:

    • Students will need to meet with the technical instructor prior to starting any work and sign in & out on the evening sign in sheet.
    • There will be a maximum of 8 students allowed in the shop.
    • This time is for Mech E students only
    • Graduate Research and SB Thesis; UROP; and personal projects can be done during this time with priorities in that order.
    • No course work can be done during this time.
    • This time cannot be used for any non-MIT project, or for extramural consulting work.
    • Not all machinery will be available for use (IE: waterjet, injection molder, 5 axis mill).
    • Students are required to supply their own raw materials.
    • You can reserve a spot in advance by emailing bbuckley@mit.edu
    • Should you not show for a reserved spot you will not be able to reserve a spot in the future.
    • We will not be able to support and teams or clubs during this trial period but may be reviewed in the future.

    Mary Boyce, John Lienhard and Bill Buckley

    Appendix, online resources
    no substitute for learning in person!




    analog oscilloscope tips and tricks

    yay 6.302 labs and analog oscilloscopes

    Lab 1A

    • 10-90 marks to the far left of the screen –> line signal up at 0-100 (use “var” [see Fig. 2] to resize voltage divs as needed), then use 10-90 marks + the cursors to measure 10-90% rise times
      Fig1. thanks Shane for unwittingly donating this image
    • function generator has “sync” output –> trigger off of that
    • “to give yourself some more time to make the measurements, you can increase the intensity of the beam so the persistence lasts longer. Also triggering off of the signal generator’s ‘sync’ line can help produce more regular triggering. The scopes generally trigger better on high frequency signals, so for those measurements that are not frequency dependent, using higher frequency input signals may produce results that are easier to handle.”
    Lab 1B
    Fig 2. thanks Lim Siong Boon for unwittingly donating this
    • if you have more than one output option selected, also select “chop” to show them simultaneously, otherwise scope will show one signal, then the other
    • to show “add”d result, turn off all the other buttons (it only adds ch1 and ch2, depressing those buttons does not help it)
    • no need to unplug the scope probe, simple switch output to “GND” to get where the ground line is (for zeroing)
    • Not a oscope tip, but 
      • wrt the amp: there are rail-to-rail amps and the other ones are almost rail-to-rail. the amp / rails limits how fast your system responds at high freqs
      • impulse = frequency response because in Laplace = 1, aka sweeps all the freqs
      • step is just frequency response settled to DC
      • voltage driven, response to input limited by back EMF; current-driven, not so
    List will be updated as term goes on

    Interaction Design | guest lecture, JoEllen Kames, 21w.789


    a semester compressed into 3 hours
    UX design, IxD, Industrial Design

    Going from Interaction Design to Interface Design

    We are defined as mobile application. How does it relate to someone’s life?

    Why not jump straight into making it?
    * Define if need to get information from elsewhere
    * e.g. weather and stocks
    * Drawing a picture -> extremely powerful for getting on same page

    Also, show in 5 to 10 minutes to people who decide future of your project

    HCI: using metaphors. 2007: future of the phonebook?
    2007: motorola owned the phonebook. and we were a walled garden (no things from other mftgs). mostly own own OS and had a lot of control. some look into social networking. realize that things may be beginning to change. when talked to people, not envision phonebook but rather friends. google was working on android, iphone come out but very app-based. motorola supporting 8 different platforms at time.

    more hubs and spokes.

    before and after metaphor: how does it make people’s lives better?
    at the time, had to do everything manually. type in each person’s phone number. After: hope to make it more like learn what friends up to than management heavy.

    3rd mental model: how do people think about the people in their lives? how did they cluster / organize them?  it is an anthropomorphic well-known phenomenon that they validated with their own data collecting.

    2007: can be able to manually form groups. But wanted a much more fluid structure. > favorites.  go from 30 contacts avg to 300, 400, 500 > how to manage that information.

    How to integrate data from other sources (not happen at the time)?

    Model: determine who need to ask to do work (flickr, yahoo, etc.) -> diagramming it

    Content types: from demanding to … patient ones… how to give Content a Behavior on a device.

    User type: students, faculty, everyone (?___? hard to design for but common e.g. for weather)

    Motorola has common archetypes of people (amalgated from real people). Very specific: what devices, what media, their life story.  A lot of back and forth, but now fairly fixed ACROSS projects –> but does depend on the type of project. Segmentation of people. Have twelve (making whole device, not just an app!). From leading edge people to …

    administrator often forgotten -> are the views / behaviors of your system different?

    so for us, maybe lump all students together.

    ^– more high level
    structure, flow, and process:

    In reality: do go back and forth, since when have an idea hard to not sketch it out

    undoing wireframes is expensive and tricky

    also at information architecture: business owner, designer, and engineers all agree at use cases and use flows. Explicit among stakeholders -> saves a lot of money. Esp since once people see screens, engineers can get very attached to them. so efficient to get buy in earlier on.

    For world today (not in 2007) there are fairly standard operating systems.
    understand conventions of OS working with

    iOS: very clear and approved guidelines
    Android: less wild-west, ice cream sandwich: much more codified how it will look / interact: google suggesting will look better like ice cream sandwich

    Where does back button? Android: hardkey, iOS: softkey at top.

    • What is goal of user 
    • then how it is achieved (send message to send messag,e or to meet up with friend.
      • life, experience, end goals.
      • life: take care of people they love, have a harmonious family
      • experience: do they want to have fun or just get something done,
      • end goals: when find app in store, what expectations have after invest time / money? must match goals very quickly or else may use once and discard at spring cleaning
    • Input methods
      • all in mobile, is there kyboard, voice, gestural (shake it), webapp, 
      • views: calendar (month, day, agenda)
      • individual contact, whole list, or visual view,  all contacts, can be complicated depending on amt of info
    • key path scenarios:  going through app
      • use case clusters
      • engineers pretty used to it
      • very specific: address or not address , set specific scope and priorities
      • first column: core to system (ship) or important (to vision) or nice to have
      • other cols: platforms and such, feasible or not
      • what implement by end of semester or not, prioritize implementation and can think in phases, can have placeholders structurally even if to reveal to end users initially
    • (more like websites than mobile apps) information organization: top down, you decide categories and then fit the stories, or draw categories by looking at all the stories that you have
    • mobile: tends to be pretty sequential because of screen size: do one thing at a time. Hierarchical: common as a site map unless applying job / purchasing something, becomes sequential
      • trickier on small screen because: C may be most interesting in app, may need to be pushed to beginning so they get value. Not first in how you think they should do, but in delivering value to them
      • 2d contacts, and then 3d contacts to groups
    • Interaction model: How to filter: 
      • contacts, A-Z, by location, by upcoming meetings, people with recent updates, 
        • individual contact: communication history, groups they were part of, shared events, 
    • Hardest part of app: facebook not want to be next to twitter, myspace, not on same page, etc. Struggle to make legal agreements and desired ux. Explain from UX why best interest from them to be together.
    • All of the boxes are numbered and represent unique screens (see ppt)
    • Will go back to sketches for new apps / versions -> due to variation between blueprint and what actually got built
    • Sketch out possibilities before building
      • list boring to interact with, how to make it more lively > a carousel
      • vs. undo built things to do better way (not necessarily more efficient, but also just visual explorations)
    • A few notes: no right visual language, although there are common standards
      • box for screen, diamond for (???), 
      • key is to be consistent with design language
      • make sure to think about the background where info comes from
    Interface Design
    Standards of best practices: Wodtke:
    • way posting -> of state
    • avoid getting in error state
    • make sure you realize some people new to smartphones, unlike you the expert
    • and other resources are way more specific
    Ice cream sandwich and iOS: have very specific look n feel / conventions
    2007: no clear platform, so screens are platform agnostic
    There were dropdowns and touchscreens before iPhone (e.g. in China, with stylus)
    • dropdowns are tricky, avoid them
    • there are conventions, e.g. radio buttons vs checkboxes etc.
    • dropbox in middle of screen unheard of in 2007
    their design 2007: when people using Razor, and a closed-lid interface (secondary screen when closed), this is months after iPhone released -> moving to touchscreen interface
    people have data plans, easy APIs for webservices, internet
    facebook: only one mobile guy at time, they are tiny startup in palo alto. number one mobile manufacturer Motorola at time.
    screen capable of displaying it all, interface rich enough to navigate all -> device to device interaction is a new paradigm and not all in same ecosystem -> can it interact with old devices? beyond walled garden of own stuff (internet of things!)
    • solve a real need that people have -> makes their life better in some way
    • and keep iterating
    • and some fairy dust for making it delightful
    and have more basic, static -> dig through menus to find it
    wireframes are pretty static -> mix of screens and flows. in end state very sequential medium, so end up screens and flows.
    e.g. how to create contact from scratch
    Codification of prototype: how are we trying to communicate with with this prototype -> print out and put above desk
    • games are a new type of prototype
    • used to get a group of people to build consensus
    Books: about face 4 (not 3) now
    pick 3 or 4 use cases: and we will evaluate each other at next class. so classmate will work through use case via paper.