Skip to content
Jan 7 12

Testing OpenExo While Walking

by eliot

Here’s a video of me testing the hip actuation while walking wearing the current version of the exoskeleton I’m building (more info at openexo.com).

Nov 20 11

Easy Python Layouts With Django Templates on Google App Engine

by eliot

I’m working on a Python app and my natural tendency is to create a default layout a la Ruby, CakePHP or many other MVC frameworks. This layout acts as a main wrapper around the rendered view file. It contains the main HTML tags including HTML HEADER and BODY tags. Let’s call this file layout.html and store it in our main app directory (or within a sub-directory like /views/ would make sense too).

So a simple layout would look like:

We want to reuse that layout for all of our views across the site which is  a little tricky on Google App Engine because the approach in the template examples I’ve seen all use an approach where single files are merged with template values, rendered and then written out as the response. So when outputting the homepage using a file in the app directory index.html as the view, the recommended approach looks like this:

The goal though is to always render our view file within our general layout. The above approach would always need the wrapper HTML as given in the first code example above in each view. So index.html would need the main wrapper HTML as well as say if we were rending the view about.html in a separate request handler.

Here’s a function that will first render the view (e.g. index.html, about.html) with any template values we pass it.

Once this rendered view is returned we can that pass this as the “view” value to our general layout.html and output it. So the request handler would like this:

It would be fun and useful to develop a simplified layout and view rendering class further out to make the syntax even cleaner in the request handler.  Also, items like a page’s unique title tag could be passed in with the layout_values as well as page specific js and css. Also, this code could easily be adapted for use outside of Google App Engine.

Oct 17 11

You Need to Break Things to Make Things – Coping With This Truth

by eliot

The past week I’ve been working on migrating all of the breadboard-ed connections and circuitry for the OpenExo to a proper circuit board and project enclosure.

So basically going from this:

The mess that is the breadboard exo's breadboard wiring. This is right before transferring all of the connections to a proper circuit board and enclosure

To something more like this:

connections from mini-din connector (which receives mini-din cable from servo motor) to board complete. need to add some additonal components and connections to proto board though (e.g. resistors)

In doing so though, I ended up breaking the following things:

  • LED light on main power switch. I might have fried it from too much heat soldering wires to large tabs.
  • Force Sensitive Resistor tabs destroyed (why do they make them so damn thin and fragile!?)
  • 3 surface mount trimmer pots ripped off of the main servo PCB. (This one may not have been my fault. I suspect that this creature may have been involved…)

I think it’s a universal rule, sort of like Murphy’s Law, that things will inevitably brake as you make.

The question then becomes, how do we deal with this? How do we cope with the setbacks and frustrations of building? How do fail fast and keep iterating? Whether it’s building open source exoskeletons or relationships, “the road is long” and full of potholes.

Accepting the fact that the setbacks and the frustrations are part of the equation. You can’t build something without these. With this acceptance comes an increase in tolerance of the setbacks.

How else can we increase frustration tolerance?

I had a conversation with Phillip at sprout the other night about this. In the world of software development and programming, one has to have or be developing a high tolerance for breaking things while building. Software creation is a constant cycle of failing and fixing very quickly. There is a nice tight feedback loop involved with which one can see very quickly when something breaks and that the train needs to be backed up to be worked on some more. In one hour of programming it’s not inconceivable that I could experience dozens of these cycles. Programming naturally builds up a tolerance to the frustrations and setbacks of building. That’s why a project like Scratch, an easy-to-learn and use programming language, is so exciting. Regardless of its users going on to continuously program software throughout their lives after learning Scratch, it inherently develops tolerance to the failures and frustrations of programming and hopefully of other areas of building as well.

Working with others is also a surefire aid to overcoming the frustrations of building, breaking, debugging and fixing. Several friends and I recently took part in a data analysis and algorithm creation challenge sponsored by the City of Boston. It was trying at times. The fact we were working on it together is what made submitting a solution possible. If it was just me working on it, I’m not sure I would have made it that far working on it alone.

Also recently I was helping my friend put together a bike. When it came to setting up the rear derailleur, we were having trouble getting it to shift to the lowest cog. We were going to call it a night and just keep it as is but then, I believe through our collective will, we soldiered on and through trial and error finally got it to shift!

Building things ain’t easy. But we can set ourselves up to better handle the friction and push through the resistance.

Sep 11 11

My Uncle Jim on 9/11

by eliot

Jim Kristan is part of the minority. The Army veteran, who served 20 years in the service, has dedicated his life to honoring the 9/11 victims, particularly those of United Airlines Flight 93. Passengers tried to overtake terrorists on the plane, which eventually crashed into a field near Shanksville, Pa., where Kristan will attend a ceremony on the 10th anniversary.

The Kentwood man is president of the West Michigan 9/11/01 Memorial that was founded, Kristan said, to carry on the memory of that day. He drives a pickup emblazoned with more than $10,000 in airbrushed artwork commemorating the date. Included are elaborate images of the two World Trade Center towers exploding and firefighters running into the buildings. There are depictions of the Pentagon and the Statue of Liberty crying with an American flag in the background.

He said people appreciate his efforts, even if they don’t share his enthusiasm.

“This is my entire life,” Kristan said. “It’s totally engulfed me, and I’m up 18 hours a day thinking about it. It’s my mission in life to make sure people remember and make each other’s lives better.

“I’m one of the 1 or 2 percent. The other 98 percent have gone on to what they do. That’s all right. That’s life.”

From America is mostly back to normal after 9/11 attacks, but should it be?

Aug 9 11

Exoskeleton Prototype 2 Walkthrough

by eliot

Here’s a video I shot that gives a higher level view and walkthrough of the device I’ve been working on to help my Mom walk. I’ve been blogging more frequently about it at openexo.com.

Aug 7 11

Life is a Rough Draft

by eliot

Remember in grade school when there was a heavy emphasis on not only the final version of essays but also the rough drafts? There would be deadlines for those multiple rough drafts. First drafts and second drafts. I think that, similarly, life can be thought of as a rough draft comprised of a sequence of smaller rough drafts.

Relationship Drafts

My friend has been Internet dating and recently told me about his experiences. People finding him online, him finding others. Then a flurry of emails, text messages, voice mails and in some cases meetings in person. He calls it a ‘blur’. I tell him it sounds neat. He’s starting a lot of relationship drafts and learning a lot about himself and others in the process. Granted I understand how that process can also be taxing.

Over the past month or so I’ve been visiting sprout, an incredible maker/thinking/learning space in Somerville. There are a lot of people inning and outing there. Meeting so many people in a short span of time is a unique experience for me. Sometimes I’ll go home from sprout and question how I interacted with someone. Could that person have taken what I said the wrong way? Does that person like me?

Some relationships stick longer than others and the ones that don’t stick are important to think about too. They’re all drafts, all trial and error. Especially with relationships, the final, totally polished version is a myth. It doesn’t exist. There will always be rough edges to our relationships. Creating new drafts and revising others are what matter.

Unstarted Drafts

Some of those relationship drafts might end abruptly. But other drafts will never get a chance to be started.

And that’s okay in some cases. It’s necessary. Oftentimes the mind goes wild. We can’t actualize and release every draft into the world. I can’t try and make a connection with everyone I pass. I can’t try to write every blog post I think about. It’s not possible. The constraints are time and mental capacity. And those are real.

But there are also many reasons to not begin a draft that are flawed. I don’t have the skills to do that. That has already been done. I don’t want to fail. People won’t like it. People won’t like me.

I was talking with a friend at a party a couple weeks ago. He’s considering starting a blog about the space he’s interested in professionally.

“So why not start in on it,” I asked.

“I don’t know. It’s just that I haven’t blogged before and what if I’m no good. Then maybe future employers will find it and won’t hire me because of it.”

That exchange brings up an interesting point in that, for some people, there’s an expectation that exists that one should be a final version of what an employer (or a partner in a relationship) desires. And if there is that expectation and some people don’t keep drafting because of it and get feedback on it, how do we grow?

If you were to look at some old posts here at this blog you’d find some very primitive examples of code that I created. At the time though they stemmed from new insights. Although I can find flaws looking back at them, I am happy to have published those drafts because I know it was good for me. Putting them here was part of the process of recording, learning and drafting.

Those that find success in life never stop creating and revising drafts. Feedback from others is crucial to the process of revision. But feedback that inhibits the process of drafting, growing, and learning is stifling.

One question that lingers though is that, since we can’t pursue all draft ideas, how do we choose? How do we know when to stop revising? Is it just going with the gut?

Unsprung Drafts

Not all drafts need to be broadcast to other people. I guess it’s a personal thing on deciding which to share. Largely though, sharing drafts with other people is important to the process of drafting. Just like in grade school. Getting feedback on our thoughts can be very beneficial assuming that we value the perspectives of the people that are providing the feedback.

There are some drafts that are meant to be broadcast. Websites for instance (as long as they aren’t intranets) are meant to be shared with the world, or at least a subset of it. I’ve been helping C with a new website for her studio and it’s really ready to go. I think that it has been ready to make live for a couple weeks now. C has had some lingering issues with it though and, because of that, it hasn’t been launched yet. As a web developer, I have seen this same thing many times with clients. I I think it has to do with that notion above that, professionally speaking and perhaps otherwise too, there’s an expectation that everything comes polished and perfect. And if it isn’t, it really shouldn’t be exposed to the world. But I think that it’s just a matter of time before that societal belief diminishes. With the proliferation of web apps and software, there has been a growing acceptance that products and services can be released as ‘beta’. Sometimes this thing might not work as you expect. It might break. It’s a little rough and that’s okay. The truth is this has always been the case and will always be the case. Everything is in beta. Everyone is in beta.

If we keep that in mind and embrace it then I think we’d all be better off. Just in the case of the website, if we would have launched a couple weeks ago we would have had all this time to get feedback on it to make it better and get changes made more quickly. Those users that visited within the last couple weeks would have had a much better experience even if there were kinks to work out with the new site.

I do it too. I’ve been working on a new project called tinybatch.com. I have a lot of work into it. But I have these lingering questions about the value of the site and business. Is it too complicated for users to understand? What if no one wants to use it? Is it too similar to sites that already exist? And these doubts and questions have halted my continued development on it. My friend Matt was giving me a pep talk about it the other day and the truth is that my questions aren’t based in anything real. The only way to really answer those questions and to learn of new questions is to finish up the project and release it to the world. Let people try it. Get real feedback on it. Spring the draft.

Jul 4 11

Happy Birthday America!

by eliot

Happy Birthday to you America!

In honor of your birthday, I’ve created this alternative flag:

The stripes are zebra stripes to represent your animalistic nature and to remind us that we are all sharing a greater global animal kingdom.

The stars are displayed as a node map of the Internet. There are millions of nodes just as there are millions of people living in your boundaries. It’s to celebrate that, as individual states of being, each one of us is connected to the next in multiple ways.

The black star in the corner is to represent those in our society that our stateless. Those that have been disconnected from the network through discrimination, injustice, ignorance and intolerance. The lone stars of our country. But there’s hope. The nodes are slowly becoming more connected and less isolated.

You’ve always offered hope, America. Cheers to that.

Jun 10 11

Super Simple DC Motor

by eliot

It’s so simple and elegant. And it’s the smallest kinetic sculpture I’ve ever seen.

Apr 28 11

Embracing Resistance

by eliot

The wind pummels into me as I bike down Western Ave trying to get to work in the morning. Good. It works my legs more to help build my muscles up.

The water cooler bottle is empty. Nice. A chance to get my blood going changing it after too much time sitting at the computer.

A couple close friends are encountering another kind of resistance. And it’s tough. It’s supposed to be. But I am happy for them because of what they will gain from it.

It’s all in the framing.

Apr 16 11

The Happiest Man in Allston

by eliot

Allston Trains Cambridge St.

There is a man that stands on the sidewalk of the Mass Pike overpass on Cambridge Street looking out over the train yard and downtown Boston. He turns to me as I ride by, beckoning me with his hand pointing and his eyes glowing to look at the scene with him. His smile is coast to coast. “Yes, you’re right on,” I say with my eyes and my hands. “That’s a beautiful site. Thank you for sharing your joy with me. “