Tag Archives: braindump

Khan Academy has hands on projects now / general web roundup

Hands-on projects at Khan Academy? So it begins.

In fact, there’s even a “lead of applied learning” position at Khan Academy (ran across this while browsing the SXSWEDU schedule)  who is “focused on leading and supporting a variety of strategic initiatives and creating project based learning content.
Vibrobots / brushbots: an alternative to using toothbrushes (and cutting up new ones or something) for a class is to use business cards! See howtoons: “Introducing Gami-Bots!“. Pretty awesome.

In other news, I am going to linkdump from facebook because it’s hard to search through facebook posts.

There’s actual less-derpy flying hexapods now:

Now they just need to write the code to make it dance… Also apparently going to be on kickstarter soon, like everyone else’s projects ever.

Additionally, there’s a simulation game for making robots covering things like drivetrain tradeoffs now/soon/in-the-making! Exciting.

I discovered pinterest, or rather pinterest for hexapods:

2009? How did I miss this? ^^


it actually walks! http://www.kineticcreatures.com/pages/modding-with-lego

That same term, lasercut mechanism, on google pops up a BS in MechE thesis by one of my classmates, @JoshRamos
It’s a paper about trying to make a lasercutter. Has good background information, so goes on my toread list.
According to +peter krogen on facebook,

Peter Krogen · mmm laser cutter made of legos Its a shame he didn’t build it in 2012, then he could have used the new 2w 445nm diodes (which have much better beam quality) that were available a few weeks after he turned in his report.

Additionally, discovered this on a list of startups at the ongoing San Francisco Hardware Meetups, a folding portable kayak:

origami kayak!

Finally, I am going to be addicted to this site, I just know it. There is now a robotics StackExchange site:

braindump: further research on online education and/or kits

general pedagogy

https://stellar.mit.edu/S/course/ec/sp13/ec.717/courseMaterial/topics/topic6/readings/Penick_Where’stheScience/Penick_Where’stheScience.pdf (restricted to class) (ugh, I hate that I can’t share this article, it’s an excellent one. It’s from 1991, sheesh).
The basic idea is, this teacher started out doing a cool demonstration in class, however, when students went to do it themselves, they did the bare minimum needed to replicate it without much enthusiasm. Then, the teacher switched it up — he asked students to predict the outcome of the experiment, and also structured the demonstration such that the students themselves came up with some of the lab procedures, like adding water to acid very slowly, that the teacher would then try. The students then were very engaged and eager to figure out whether the experiment would work out like they thought.

How global is online education?

Wow, it really is really all around the world. This is exciting to me. They’re really at a scale where they can have pocket communities form on google hangouts.

http://learn.media.mit.edu/syllabus.html The Media Lab Learning Creative Learning class, which actually has a tremendous following and is really cool.
(g+ community: https://plus.google.com/communities/106132864609383396284)

Gears, serving as models, carried many otherwise abstract ideas into my head. I clearly remember two examples from school math. I saw multiplication tables as gears […] I am sure that such assimilations helped to endow mathematics, for me, with a positive affective tone that can be traced back to my infantile experiences with cars.[…] First, I remember that no one told me to learn about differential gears. Second, I remember that there was feeling, love, as well as understanding in my relationship with gears. […] the “body knowledge,” the sensorimotor schemata […] It is this double relationship–both abstract and sensory–that gives the gear the power to carry powerful mathematics into the mind.

Wah, cool,
Crowdsourced video captioning and translation! This is excellent. I will often spend a long time typing up video transcripts just for my own reference, so cool to be able to not just have it for myself, and also a really convenient interface online. Now someone should just hook this up to those language learning programs online… ALSO. Why can’t I type things and the software automatically figure out where in the video it belongs? I think that is definitely a do-able thing.

I am particularly interested in session 2 (interest-based learning) and session 5 (open learning).
session 5 notes:

“how and when learn should be under control of learners” (well, maybe not below a certain maturity level) and “who participates” not limited
“we want to crack it open, what we’re learning, figure out how it works at fundamental level” “things that let us dive in and not just sit back and consume are incredible important” “also produce” “still hasn’t changed schools in which most learning still happens” “there is a strong notion of activism” “[teaching at university] I want to go, everyone gets an A today, if you still want to come back, great lets learn something”
(all of this conversation seems focused on university level)
are MOOCs example of what have in mind, do they fall short in some way?
do need to interrogate what mean by open (not slapping on a label)
letting anyone sign up for a class is huge, don’t want to diminish that at all
but do want to ask, is open enrollment sufficiently open?
never took a programming course, learned from being exposed to people way better than me
(me: i wish that were possible in the open source hardware community to the extent it is in the open source software community! how can we make that happen?)
idea of debugging ideas, all sorts of things in open learning,
often best way to learn, push yourself to maybe things start to break, 

toread: http://mako.cc/writing/unlearningstory/StoryOfUnlearing.html yay, pills. -.-

http://net.educause.edu/ir/library/pdf/ERM0811.pdf This reading is flaming awesome. 

It is unlikely that sufficient resources will be available to build enough new campuses to meet the growing global demand for higher education  

Open Educational Resources (OER) movement 

Light discovered that one of the strongest determinants of students’ success in higher education— more important than the details of their instructors’ teaching styles—was their ability to form or participate in small study groups. Students who studied in groups, even only once a week, were more engaged in their studies, were better prepared for class, and learned significantly more than students who worked on their own. 

In a traditional Cartesian educational system, students may spend years learning about a subject; only after amassing sufficient (explicit) knowledge are they expected to start acquiring the (tacit) knowledge or practice of how to be an active practitioner/professional in a field 

 “productive inquiry”—that is, the process of seeking the knowledge when it is needed in order to carry out a particular situated task


The recorded audio is now online http://sxswedu.com/audio, and I’m guessing they won’t have recorded video

Online Learning
toread: http://www2.ed.gov/rschstat/eval/tech/evidence-based-practices/finalreport.pdf
“US Department of Education
Evaluation of Evidence-Based Practices in Online Learning
A Meta-Analysis and Review of Online Learning Studies”

I listened to two talks, which you can find if you go to the “audio” site and look up the titles. Some notes:

  • Project Based Learning: The 8 Essential Elements http://schedule.sxswedu.com/events/event_EDUP14902
    mostly “hey supply chains are actually difficult” and the actual implementation of a donorschoose but hyperlocal supply granting program instituted in El Paso, Texas
  • MOOCs: Hype or Hope? http://schedule.sxswedu.com/events/event_EDUP16136
    this is a big mess, e-commerce took 10 years: amazon is there, but what was in-between, cosmos delivered candy bars in the middle of night, …
    this is the phase we’re in: people are going to try weird stuff, it’s not going to make any sense, but we’re trying, that transformation is happening.
    change: not only matriculated students, now global. MOOCs are changing the concept of matriculation.

some talks i picked out to listen to in the future:

sadly does not appear to be online 

Project Based Learning: The 8 Essential Elements

The Double Bottom Line for Education Entrepreneur
This panel will discuss social entrepreneurship in education and look at examples of education social ventures that have successfully scaled.

Tinker Tailor Solder Ply: Why Makers Rule in EDU
Hear how makers are helping kids unlock their creativity while applying their STEM know-hows — and, in doing so, shaping how we rethink the value and purpose of an education.

Nation in Decline: Why We Suck At Science & Math

Meet the Educational Stars of YouTube

Breaking the Mold: New Models for Learning (K-20)

The Magic of Making: Engaging Students As Makers
We’ll look at the importance of creating makerspaces in schools, developing a community of practice around engaging kids as makers, and how online tools can enhance and extend the value of making to the broader community.

Think Outside the School: Learning is Everywhere
 How can we use social technology to foster peer-learning and to recognize knowledge acquisition regardless of where it takes place?

Based on the case studies of the Mozilla Open Badge project and E-180,

Digital Harbor Foundation
will share our experience designing a Common Core aligned tech and maker curriculum that helps place kids in real world paid internships.

Peer-to-Peer Marketplaces, Meet EdTech
they also allow their educators to earn meaningful income by teaching online

Open Education: Still a Chasm to Cross

The Problem Finders: Design Thinking Across School
learn about new techniques for getting the best ideas, language use, and higher order thinking out of students.

Not Another Zombie Idea: Customizable, Open Digital Content Transforming Learning
 also the future of concept-based (bite-sized) learning leveraging multiple modalities (text, videos, exercises,interactive learning objects) that will help students and educators transform learning experiences.


Some thoughts on expectation management versus just getting courses up and out there:

“Given the prestigious name of the institution and their reputation for ground-breaking methods developed in the Media Lab, my expectation was that, as part of the transition to on-line delivery, they would have taken time to prepare a clear and thorough presentation of the subject, taking academic lectures to a whole new level.”
“I’m afraid the lectures have the feeling of “oh bugger, I forgot to prepare anything, I will do it as I go along”. You can get away with this in real lectures, but for video presentation then I’m afraid it isn’t good enough.” … “With all the resources of MIT, it must surely be possible for someone to digest these lectures and present them in the form of mostly pre-made slides

Developing Countries
One of the stories that was exciting to me about 6.002x was a university prof or student in another country who was like, hey, I will take this and make it an after-school program, because this topic isn’t really taught at my university (or something like that). I think MIT’s model of hands-on learning (mens et manus) is definitely gaining momentum (not MIT-driven, of course, but still). E.g. Skoltech, SUTD, and based on my own conversations with people such as +David Li, China’s government is interested in supporting makerspaces.

Is this actually true though?

Are universities good candidates for foreign aid? Blattman thinks so;

Foreign aid’s educational blind spot http://chrisblattman.com/2011/09/03/7358/

Second, the aid community are on top of primary education like an overzealous mother. Tertiary education is pretty much ignored. The MDGs are both a cause and en effect of this sad state of affairs. 


The United Nations is to focus more strongly on higher education in developing countries, Qian Tang, UNESCO’s newly-appointed Assistant Director-General for Education, said in Paris last week.

braindump, playing around with flask / python / vim / bootstrap

So, I didn’t get into 2.72 build-a-lathe-you-can-sledgehammer-on class, which my brain had decided was my last salvation at actually believing I qualify for graduating as a mechanical engineer from MIT in June. I guess I’m just doomed to make shoddily put together things until I get real life experience or something. I guess the example that comes to mind is makerbot v1, but there’s also something to be said for getting something out the door instead of being worried about whether it is Acceptable.

It’s also supposed to snow a lot so school was canceled for today, so I decided to sulk by coding all day. Bletch, take that course 2. Or something. XD; There’s a course, 6.170 (no, not your grandmother’s 6.170, which was toned down into today’s 6.005; this is now software development principles through the view of web app dev apparently) which I might follow along with. It’s taught in ruby this  year, but it was taught in flask last year so there’s some nice material on stellar. http://stellar.mit.edu/S/course/6/sp12/6.170/materials.html

I’m now following this cool step-by-step tutorial, http://blog.miguelgrinberg.com/post/the-flask-mega-tutorial-part-i-hello-world.

*** why isn’t this a one-step process. oh holy robots f*** this is a crappy state of affairs that this takes me several hours to set up properly.


Starting over.

1) make pretty bash terminal (with colors).

in ~/.bashrc,  comment out #force_color_prompt
then in ~/.bash_profile, add the line:
source ~/.bashrc

2) make pretty vi.

I chose not to use the install.sh script *shudders* It’s hard to undo and puts an insanely long .vimrc that I can’t understand onto my computer. So I followed the instructions

1. make ~/.vim directory
2. download pathogen, I kept forgetting to do this
3. add a gazillion plugins with git submodule add, as directed

3) ugh escape key = caps lock


4) backup dotfiles on github


…except, I just want that .vimrc file, so yea. I should stop using install scripts I don’t read through. *sigh*

5) update minibufexp
using https://github.com/fholgado/minibufexpl.vim.git

instead of https://github.com/sontek/minibufexpl.vim.git bundle/minibufexpl

note! http://stackoverflow.com/questions/8953777/vim-not-an-editor-command-minibufexplorer

Sometimes window arrangement gets messed up, so use
:vertical resize 20 
to get unmaximized tree explorer back.

Now, back to flask


~ note: python run.py doesn’t work; have to do ./run.py (?).

part V

If you try to run this code, there are import errors

ImportError: No module named openid

Appparently since Grinberg wrote his post, the pip install flask version is >= 0.8, so the syntax is now from 

from flask.ext.login import LoginManager

instead of 

from flaskext.login import LoginManager

See http://flask.pocoo.org/docs/extensions/ (I arrived there from this post

resetting from zip file

Mm. At this point, I just downloaded the microblog-0.5 zip file, unzipped, did the whole virtualenv / pip install flask ordeal, ran ./db_create.py and ./db_migrate.py, and everything is now dandy.

part VI.

I didn’t have an image for my email address (well, I’d used plus addressing when signing up for Gravatar but not when signing into the google openID thing, and I didn’t feel like restarting my browser to disassociate myself from the google openID thing). The gravatar took a few seconds to update. To check the code was working, I used

u = Users.from app import db, models
n = users[0]   #In my case, when I print, I get
‘http://www.gravatar.com/avatar/’ + md5(n.email).hexdigest() + ‘?d=mm&s=’

This spits out
which worked just fine in the browser, and upon refreshing the app, showed up in the app as well instead of the mystery-man human outline icon.

Well. Now I know why all those silly web-apps make me sign up for gravatar instead of letting me upload pictures. Because it’s easier to use someone else’s service…

Hmm, speaking of which. Adding facebook is surprisingly not so straightforward. Apparently it doesn’t play as nicely with openID (they’re not a provider). Drats, time to make more openIDs.

part vii

I was kind of confused by this part (he explains in more detail later), but keeping the None values works and you can enter whatever into the email address for the admins list.

nrw@ubuntu:~/Dropbox/mblog $ sudo python -m smtpd -n -c DebuggingServer localhost:25
From: no-reply@localhost
To: you@example.com
Subject: microblog failure
Date: Sat, 09 Feb 2013 15:09:04 -0000

Exception on /edit [POST]
Traceback (most recent call last):
  File “/home/nrw/mblog/flask/local/lib/python2.7/site-packages/flask/app.py”, line 1687, in wsgi_app


IntegrityError: (IntegrityError) column nickname is not unique u’UPDATE user SET nickname=?, about_me=? WHERE user.id = ?’ (u’dup’, u”, 2)
———— END MESSAGE ————

This is pretty nifty! I’m doing the viewing emails in terminal thing. Sorry all you all pine users, but this is a novelty to me.

…okay I get bored and skip to the section I actually care about, the CSS section.


Or more specifically, https://github.com/miguelgrinberg/microblog/commit/56d1d46326a79d9a3b9b6178ac02fe75c89625ad.
Really? That’s all there was to it? The transformation is really nice.

Customizing bootstrap


Final conclusion:

bleah all that, let’s just use the internet.


 holy hexapods, ignore the following, 


because I decided to startover. which involved doing the cd ~/dotfiles, ./install.sh restore, then also doing the ls -la and removing all the remaining symlinks, which looked like
sudo rm .weechat .Xdefaults .xmonad .screenrc .pythonrc.py .pdbrc .pdbrc.py .mutt  .msmtprc .inputrc  .hgrc .gimp .fonts .dir_colors

oh robutts what is my life. this is why I’m not course 6.


vim + python

I had an intermediate step where I realized I should probably fix up vi so, y’know, it actually behaves acceptably with python (like recognizing tabs and such).


*blinks* I’m still a bit confused, since I followed the instructions instead of just using the install script. Not actually being course 6, I’m not sure which parts of my ~/.vimrc folder I should put up on a git server (github). *shrug* I can always recreate it now. (I lost my dotfiles after google summer of code ’11 and missed them for a while). https://github.com/nouyang/dotfiles

Yuck. Ignore previous paragraph. I can’t get the leader key to work. (What is that leader thing? Turns out maps to by default.)  

 The symptoms look like this. also relevant, following this gal’s example I just reinstall everything.

So, I end up removing my entire .vim folder and reinstall with the sontek install script. Which requires I install ruby first… Whoops, it says rake: command not found.

later: on the leaderkey (set as a comma) not working

…for some reason,

nnoremap : ;

makes the leaderkey not work! wtf ?__? computers.

installing ruby on ubuntu

Conveniently enough, 6.170 sp13 is taught in ruby so I get this link off the slides.

 curl -Sso ./rails-installer.sh https://raw.github.com/rkjha/RailsOnUbuntu/master/rails-installer.sh

(I downloaded the non-raw file first by  accident). And following the rest of the instructions, 15 minutes later, after restarting gnome-terminal, I’m set.


rails new helloworld
cd helloworld
rails server

Then I visit and see a “welcome to ruby” page. yay.

Other notes / things I add…

Okay, excellent, now I have lots of things installed on my computer and insanely long dotfiles I don’t understand… Oh well. Some further notes and modifications:

(With following tutorials, as usual, I have to remember to

:set paste

Or else each line I paste in with ctrl-shift-v gets indented.
Apparently the reason is that the terminal can’t tell pasting from a lot of text being typed in at once.)


“Common command line typos
cmap W w
cmap Q q


” Swap ; and :  Convenient.
nnoremap ; :
nnoremap : ; “NOTE: Holy crap this breaks the key. take this line out.

” Spaces are better than a tab character
set expandtab
set smarttab

” Who wants an 8 character tab?  Not me!
set shiftwidth=4
set softtabstop=4

” This is totally awesome – remap jj to escape in insert mode.  You’ll never type jj anyway, so it’s great!
inoremap jj <Esc>
nnoremap JJJJ <Nop>

“{{{ Paste Toggle
let paste_mode = 0 ” 0 = normal, 1 = paste

func! Paste_on_off()
   if g:paste_mode == 0
      set paste
      let g:paste_mode = 1
      set nopaste
      let g:paste_mode = 0

” Paste Mode!  Dang!
<silent> <F12> :call Paste_on_off()
set pastetoggle=<F12>

NOTE: If you are in paste mode, the “jj ” mapping will not work. Also, if you set mouse mode on, you can’t copy-paste out of the terminal. And if you set line numbers on, when you copy-paste the line numbers get copy-pasted too. And on gnome-terminal (or ubuntu?) F10 seems to map to pulling down the toolbar options, so I used F12 instead. I also changed this tab-spaces = 4 instead of 3, because python.

Sontek mentions buffers versus tabs, and last time I only ever used tabs, so I read up on this here:


 set hidden

Oh, and I turn off line numbers and displaying all the whitespace by commenting out the set list and the set number in ~/.vimrc.

other things to read:

So now, some of the shortcuts I can use:
:e  to open a buffer, and ctrl-6 or :b1 to go to whichever buffer is open.
>> and << for indenting
to turn on/off paste mode
😡 to save and close (NOTE! I have, as mentioned, mapped ; to 🙂
:nmap to look at my shortcuts

resetting .bashrc for ubuntu, not mac

Meh, as usual with the internet, the .bashrc on sontek’s site is for mac osx and not ubuntu. I wanted to color my prompt, so I reverted to the default .bashrc
Note that thanks to using the install script, I have a bunch of symlinks and the file I actually want to edit is ~/dotfiles/_bashrc …

and uncommented the “force_color_prompt = yes” line. Then I ran

source ~/.bashrc

to force reload the file and voila! color! yay. See https://help.ubuntu.com/community/CustomizingBashPrompt if you don’t know what I’m talking about, although note there are typos in that (e.g. they have color_prompt instead of force_color_prompt)

back to flask / jinja

lol. that took forever and a few inches of snow. It’s now… 1900. and snow’s supposed to get heavy around 9pm. Okay! Time to get going.

/note to self: productive = keep door open and headphones in. otherwise, i feel jittery with the door open for some reason, I close it, and then I fall asleep in an unmotivated heap. =__=;; derp hopefully this too will pass with time. also, being productive feels nice, no matter what particular item i choose to finish on #infiniteprojectlist.

Also, an interesting way to keep track of time passing (usually I use onlinevideoclock.com or tomatoi.st), set my netbook to go to sleep every 30 minutes and use it to play music while working on my desktop.