Things learned over the last two or three weeks (?? time flies):
UROP:
Op-amp filter design and optimization (picking resisters for gain values, differential amplifiers to boost range of ADC)
Piezos, transducers, FSRs, tiny light sensor SMDs
A bit of Rhino (boolean operations), more solidworks tricks (features: add and subtract)
Relearned the lasercutter, observed cutting of 1'' diameter clear cylindrical acrylic
Mold making and casting (Sil 325, 6, rubber)
Shopbot CNC to STL to Gcode -- for milling out wax mold
SMD soldering (zero resistors and tiny components!)
Circuit debugging (multimeter-ing ahoy and battery plug schematics)
AVR programming (avrdude, ISP cable, usbtiny programmer, ISP vs. serial, why the USB port fail on my netbook, codeblocks setup, ladyada tutorial), atmel datasheets, DDR ports pins pin-numbers
Code for America:
What makes a good API wrapper (auto-completion triggers are good, documentation is good),
Code coverage coverage.py, pep8, vi setup (nerdtree, Janus, other people's github dotfiles)
Github / git
Need to learn Jenkins for continuous coverage
Life:
EL wire (http://members.shaw.ca/ubik/thread/order.html, Jordan's "the best conductive thread everhttp://www.bekaert.com/en/Product%20Catalog/Products/B/Bekinox%20conductive%20fibre%20based%20-%20filament%20based%20products%20for%20anti-static%20textile%20applications.aspx -- 30 ohm/yard"), conductive thread resistances
RFID reader / card scanner costs, wireless setup costs
McMaster ordering, parts finding (robot marketplace, summary of surplus sites: http://www.nostalgickitscentral.com/info/parts.html, ebay is trustworthy), steel ordering (Turner Steel)
MIG welding
A bit of Eagle routing (simple 555 circuit), toner transfer ironing
PCB / flatbed epson printers (epson = piezoelectric printheads, http://en.wikipedia.org/wiki/Inkjet_printer)
Also, resolved to ask infinite questions! That way, when more girls show up at MITERS, I can answer their questions :) I have to live up to the title of a being junior now...
Showing posts with label daytoday. Show all posts
Showing posts with label daytoday. Show all posts
Sunday, July 17, 2011
if (advantages == disadvantages)
I admit it. At MIT, sometimes I'm a miserable ungrateful human being who wishes I'd started learning programming when I was seven. 'cos everyone around me seems to have done so, gotten bored of it, and then picked up another field to master too between seven and eighteen. o__o
Then I ran across this:
http://learnpythonthehardway.org/book/advice.html
That, I know, is a problem with my attitude. I'll always think there's more to something than there might actually be, because I've decided to worship the acquisition of some skills. Programming, the mill/lathe/lasercutter/waterjet, simply being knowledgeable... Wah, why is there so much stuff to learn?
In other news, at Code for America, we did rails training [edit: I first wrote this post 6/28/11]. The impression of ruby+rails I got was:
"RVM Synaptic apt-get wait the internet hold on let's try gem install"
"oh now gems won't work because I have a semi-right version of ruby but not gems"
"uh...
*terminal freezes for 30 seconds with no indication anything happened after I hit enter*
...yay UI fail"
Code code code. Feeling a bit overworked as I try to finagle my "it's summer" brain into working on my Media Lab UROP (mostly me learning electronics), code on Code for America work (which I admit is hard to do alone, and not nearly as fun as when I was at the office and everyone was chilling out and working with each other and I could feel not guilty about pestering everyone with questions), and working on My Own Projects. Due to aforementioned balancing act, I'm constantly swinging between "oh it's hopeless, why don't I know anything / why am I so behind" despair and "ahhhh this stuff is due" frenzied work.
Mmm... My Own Projects. Like cloning the hexabot Instructables. I love the feel of electric vehicles... so much quiet power. <3
Then I ran across this:
http://learnpythonthehardway.org/book/advice.html
I've been programming for a very long time. So long that it's incredibly boring to me. At the time that I wrote this book, I knew about 20 programming languages and could learn new ones in about a day to a week depending on how weird they were. Eventually though this just became boring and couldn't hold my interest anymore.So, on other days, I remember to be glad that I have so much to learn and so many people around me to teach me. Because programming, for me and for now, remains a wondrous activity that I've sought to learn how to do for years and still don't really believe I know how.
That, I know, is a problem with my attitude. I'll always think there's more to something than there might actually be, because I've decided to worship the acquisition of some skills. Programming, the mill/lathe/lasercutter/waterjet, simply being knowledgeable... Wah, why is there so much stuff to learn?
In other news, at Code for America, we did rails training [edit: I first wrote this post 6/28/11]. The impression of ruby+rails I got was:
"RVM Synaptic apt-get wait the internet hold on let's try gem install"
"oh now gems won't work because I have a semi-right version of ruby but not gems"
"uh...
*terminal freezes for 30 seconds with no indication anything happened after I hit enter*
...yay UI fail"
Code code code. Feeling a bit overworked as I try to finagle my "it's summer" brain into working on my Media Lab UROP (mostly me learning electronics), code on Code for America work (which I admit is hard to do alone, and not nearly as fun as when I was at the office and everyone was chilling out and working with each other and I could feel not guilty about pestering everyone with questions), and working on My Own Projects. Due to aforementioned balancing act, I'm constantly swinging between "oh it's hopeless, why don't I know anything / why am I so behind" despair and "ahhhh this stuff is due" frenzied work.
Mmm... My Own Projects. Like cloning the hexabot Instructables. I love the feel of electric vehicles... so much quiet power. <3
Friday, June 24, 2011
Code for America, Week 3: Why API auto-generator DNE
Well, aside from dreaming of rideable hexapods, during the day time I am working away on code for america developer tools project. Namely, I have been learning about how to write a python API wrapper, and attempting to learn how to write a good one.
Stackoverflow was not so helpful in this regard:
http://stackoverflow.com/questions/517237/howto-write-python-api-wrapper
Re: the autogeneration question that mashape.com is working on, RJ explicates:
Meanwhile, Zach, my fellow Python devtools intern, has been working on an awesome generic Python API wrapper template which is well-documented to boot:
Also helpful was studying the Sunlight Labs python code:
And looking at this, although perhaps it's not the best example:
These are all for the simple APIs, of course.
I've certainly learned a lot, but I'm also 100% the code I'm writing right is crap. That's okay though, I decided to forge ahead, learn things, and come back and fix it later. Otherwise, I'll never get anything done.
Oh also look we're on the internet!
http://codeforamerica.org/2011/06/15/meet-the-2011-cfa-interns/
And also fellowship applications are open~
2012 Fellowship Application
Application Deadline: 8/1/2011 | Program Start: 1/4/2012
Online application: http:// codeforamerica.org/fellows/ apply/
Learn more: codeforamerica.org/ fellows
Nominate a fellow: c4a.me/fellow-nom
info@codeforamerica.org | @codeforamerica
The office is in downtown San Francisco, and the area is ... awesome. You peer out the office window and Instructables is across the street, delicious food is plentiful, close-by, and varied, there's random talks and people coming by, and you'll get emails like "github drinking night" or some such. The office has an awesome atmosphere of teamwork and getting things done.
That's my "I'm homesick for a place I spent a week in" spiel :) I haven't had face-to-face contact with people in forever, and today there was a hardware talk going on that I just pestered people until someone gave in and let me skype in. Then I realized how much I miss the office, haha.
Stackoverflow was not so helpful in this regard:
http://stackoverflow.com/questions/517237/howto-write-python-api-wrapper
Re: the autogeneration question that mashape.com is working on, RJ explicates:
I think you'll be hard pressed to automate this. Few if any APIs come with a machine readable description of what they are and how they work. This is because it's really hard. It'd be a great thought exercise to try and come up with a schema or ontology for APIs, but even if you did almost no APIs would use it so it wouldn't matter anyway.
Incidentally, the core of REST is this very thing -- self-descriptions of how to consume an API that eliminate the need for the API's wrapper in any given language from needing to know any hardcoded information about resources provided by the API. (e.g. the wrapper doesn't have to know that the Person resource is provided by the URL route /people/
Almost no so-called "REST API" is truly a REST API, because it does not provide this self-description. What people latched on to by calling things "REST" is that its simple, state-less, idempotent, and based on the 4 actions get / create / delete / put. Everyone conveniently leaves off that last requirement of REST because it adds more complexity and the way everyone implements API wrappers is by saying "let me read the API human documentation and poop out some Python that can do everything it's capable of".
another reason why auto-generating an API wrapper would be hard -- people, especially programmers, are highly aesthetic. Every target language has their own community standards and principles for how things are supposed to work (e.g. "Pythonic") so your wrapper generator will have to somehow account for this to not offend the programmer's sensibilities. My gut feeling is that most machine-generated wrappers will be stuck in some kind of uncanny valley where it'll feel crappy.
I think Google Protocol Buffers are a good example of this. While they are awesome, no way would you think that the code auto-generated for interacting with a protobuf was written by a human, because all the method names are very machine-like (i.e. pluralizations aren't quite English -- think "num_citys").
Well, you're right that this kind of thin-wrapper [edit:
around an API is not very expressive. As a Python API writer, I think I would far prefer something similar to how the Django ORM expresses database queries. Something like this would be nice:
class Business(RESTResource):
..
type = ... (enum type)
zipcode = ... (string)
..
businesses = Business.get().by_zipcode(zipcode).filter(type=business_type)
(nevermind that zipcode is not l10n-considerate)
Meanwhile, Zach, my fellow Python devtools intern, has been working on an awesome generic Python API wrapper template which is well-documented to boot:
Also helpful was studying the Sunlight Labs python code:
And looking at this, although perhaps it's not the best example:
These are all for the simple APIs, of course.
I've certainly learned a lot, but I'm also 100% the code I'm writing right is crap. That's okay though, I decided to forge ahead, learn things, and come back and fix it later. Otherwise, I'll never get anything done.
Oh also look we're on the internet!
http://codeforamerica.org/2011/06/15/meet-the-2011-cfa-interns/
And also fellowship applications are open~
2012 Fellowship Application
Application Deadline: 8/1/2011 | Program Start: 1/4/2012
Online application: http://
Learn more: codeforamerica.org/
Nominate a fellow: c4a.me/fellow-nom
info@codeforamerica.org | @codeforamerica
The office is in downtown San Francisco, and the area is ... awesome. You peer out the office window and Instructables is across the street, delicious food is plentiful, close-by, and varied, there's random talks and people coming by, and you'll get emails like "github drinking night" or some such. The office has an awesome atmosphere of teamwork and getting things done.
That's my "I'm homesick for a place I spent a week in" spiel :) I haven't had face-to-face contact with people in forever, and today there was a hardware talk going on that I just pestered people until someone gave in and let me skype in. Then I realized how much I miss the office, haha.
Friday, June 10, 2011
Code For America, Week 1: 10 Internets of Awesome
It's the start of my google summer of code 2011 internship at Code for America, a week Dan Melton, our CTO, has termed the "bootcamp." Whew. It's been a crazy week for me. I didn't know what they expected, since I fall into a lot of categories:
- Female
- From MIT
- Not a full-blown CS major
- Haven't had a real programming job before
- Have never contributed to open-source code
The first few days or so I lived in constant fear that they would find out they hadn't gotten what they'd bargained for (I seriously considered resigning). I'm closer to believing that they'll accept me the way I am, clueless and all. For a while I wondered: was I only here (despite my lack of expertise in python/github/FOSS development) because I was a female or because I was from MIT? Then the feminist side of me came out and was like "screw that I shouldn't have to think those thoughts, I was admitted for better or for worse so let's just get on with it."
Anyway, for me it's been a whirlwind tour of once again, getting over my aversion to asking for help. WTF, it's pretty obvious I'm completely inexperienced, why am I still afraid to show the extent of my uh lack of anything in my brain?
Hehe. Ah well, it's Friday, which is open labs (work on whatever you want), and I'm in a happy mood and fine with the fact that I still need to improve myself.
Learned/learning this week:
Github, git
Serious python development: nose, mock, coverage.py
Vi plugins: minibufexplorer, janus, solarizer, nerdtreeexplorer
Dotfiles .bashrc .vimrc .coveragerc
How to be humble and also how to not run away and hide in my dreams
APIs and devtools and how to write wrappers, RPC, JSON, XML, REST, http headers, chrome inspector navigator
App deployment (in 5 minutes o.o) and some of the services out there
Continuous integration server for python
Fabric, python eggs
Mashape
Talks this week:
Coda Hale, metrics
DJ Patil, LinkedIn / color
Twitter product head, cofounder random questions
Tuesday, May 31, 2011
summer 2011 budget
[Edit] 6/13/11
Haha, so I screwed up. So now I have the time but not really the money to make things. _sigh_
New Budget:
In, 5000
2400 travel, housing, taxes?
500 donate
200 gifts
500 on books
200 on food
1200 on projects: 200 on hexapod, 150 on diy dtg, 500 on evt, 200 misc., 150 ?
100 for room / building
[/end edit]
In:
4400
5000
=9400
Out:
2000 - taxes
2400 - housing, travel
=5000 left
800 - donate
200 - gifts for friends
=4000
500 on books / textbooks
500 on UROP related stuff
=3000
Projects~
500 for a scooter
1500 for a 3d printer?
=1000
100 for a 2d tshirt printer
200 for room furniture building supplies
500 for misc. supplies to play around with
200 for food
= 0
Haha, so I screwed up. So now I have the time but not really the money to make things. _sigh_
New Budget:
In, 5000
2400 travel, housing, taxes?
500 donate
200 gifts
500 on books
200 on food
1200 on projects: 200 on hexapod, 150 on diy dtg, 500 on evt, 200 misc., 150 ?
100 for room / building
[/end edit]
In:
4400
5000
=9400
hopefully covered by psc:
980 in travel expenses (Nicaragua)
Out:
2000 - taxes
2400 - housing, travel
=5000 left
800 - donate
200 - gifts for friends
=4000
500 on books / textbooks
500 on UROP related stuff
=3000
Projects~
500 for a scooter
1500 for a 3d printer?
=1000
100 for a 2d tshirt printer
200 for room furniture building supplies
500 for misc. supplies to play around with
200 for food
= 0
Wednesday, May 25, 2011
humans
sometimes it seems as if literature has such power to inspire and heal, and technology such power to drive humanity to destruction. but I suppose it goes both ways, and I should stop trying to pretend I'm not human. People are irritating, I'm a person, I'm irritating, and you know what? Who gives a piece of cake, it's fine that I'm human and flawed.
Mmm, cake. :D Yay indulgences of life during the summer... Wait, this is terrible, during term I justified it as stress-eating. >__> <__<
Wikipedia says of monasticism,
but I will still totally take up immortality. To have infinite time to learn things, why would anyone give up such a chance? Am I merely out of touch with being human, with passion and emotion and such, that I am only dimly able to fathom people who wish to die as their loved ones die?
Mmm, cake. :D Yay indulgences of life during the summer... Wait, this is terrible, during term I justified it as stress-eating. >__> <__<
Wikipedia says of monasticism,
Sādhus strive to treat all with respect and compassion, whether a person may be poor or rich, good or wicked, and to be indifferent to praise, blame, pleasure, and pain.Well, screw that, I'm not at that stage yet and have no desire to reach it. I want to be human and love and hate and not censor myself...
but I will still totally take up immortality. To have infinite time to learn things, why would anyone give up such a chance? Am I merely out of touch with being human, with passion and emotion and such, that I am only dimly able to fathom people who wish to die as their loved ones die?
Sunday, May 22, 2011
End of Year 2
Hmm, another year over. Was it successful? Hard to tell... life goes on.
Reading: the Invisible Gorilla
Planning: 1 week at home, 1 week at MIT, 1 week at San Francisco, then another few weeks at MIT, two weeks in Nicaragua, then term starts again.
To do this summer: make a t-shirt printer, help with CADing a lasercutter gantry, make a hat alarm clock, and finish an ecommerce site. Oh, continue work on hexapod.
Currently: spending 5 hours trying to get a freakin' file to unzip. Windows *shudders* GUI webhosts *shudders* :(
Reading: the Invisible Gorilla
Planning: 1 week at home, 1 week at MIT, 1 week at San Francisco, then another few weeks at MIT, two weeks in Nicaragua, then term starts again.
To do this summer: make a t-shirt printer, help with CADing a lasercutter gantry, make a hat alarm clock, and finish an ecommerce site. Oh, continue work on hexapod.
Currently: spending 5 hours trying to get a freakin' file to unzip. Windows *shudders* GUI webhosts *shudders* :(
Subscribe to:
Posts (Atom)