Friday, July 1, 2011

Fun Google maps satellite image find

I found this image on Google maps satellite images the other day.

It's a E-3 Sentry taking off from Tinker AFB near Oklahoma City. At first I thought it was a KC-135 (and that's what it went out on Twitter as) but then I noticed the rotodome on top.

It's neat because you can see the sequence of images as captured by the satellite. In the first "frame", it's just starting to pull away from the ground, and by the last frame it's well off the surface and past the end of the runway. You can also see the procession of the rotodome- the band of gray in the disk shows the rotation.

Tuesday, June 21, 2011

What is the propagation speed of a yawn?

On the bus the other day, as I was rolling past waiting commuters on Marquette Ave in downtown Minneapolis, I saw a yawn traveling along through the crowd. Or at least, that was the appearance- it may have just been that people were randomly yawning as I passed. Regardless, that got me thinking: what is the propagation speed of a yawn through a given crowd?

We should be able to express that as an equation, if we choose our parameters wisely. First, let's define "speed", for the purposes of this exercise, as the time required for a yawn to travel a given distance through a crowd in any direction. The reason for that wording will become clear later.

So, that brings us to the equation:
V = d * q * (m / r) * f(C)
d is the average delay between when a person sees a yawn start and starts yawning themselves
m is some distance factor (it can be observed that someone closer is more likely to inspire a yawn than someone farther away- m will have to be determine experimentally)
r is the average distance between crowd members
f(C) is a function of the crowd shape, orientation of individual members to each other and crowd activity

f(C) can be thought of as a "crowd quality" metric, and it will be different for linear crowds (people waiting for the bus, but all facing the sreet), crowds where there is no orienting factor (people waiting for a concert, for instance, who may be facing any direction based on where their friends are), queues, or spectating crowds. It is also likely that by being similarly primed mentally will factor into f(C)- a room full of bored college students is more likely to propagate a yawn quickly than people waiting for a bus, all with different degrees of boredom and internal mental activity.

Now, let's consider directionality. If we pick two arbitrary points and attempt to measure the propagation time between them, we will get a false sense of the travel time because of the meandering of the yawn through the crowd. It is thus better to simply pick a "patient zero" and then watch for a yawn to occur in any person at a given radius away from that person. The resulting scalar value is the speed of a yawn, or perhaps the "speed of lassitude".

Wednesday, June 1, 2011

Why Dunbar's number matters

So, I cast a fairly wide net in terms of things I passively track for potential food-for-thought. Blogs and tweeps, books, articles, etc- I try not to limit myself too much because I can skim pretty quickly across a fairly vast swath of content, even if it IS just a drop in the bucket.

This morning, the following tweet came through, from Tim Hurson:
To ourselves we are a complex of thoughts and feelings. To others we're just a bunch of behaviors.
Really not engineering related, of course, but it meshed well with something else I saw come through my twitter stream- a post about Dunbar's number, which is the supposedly optimal group size of human culture: the number of people that you can conceivably know about and care about. That group of about 150 individuals is your monkeysphere, and people outside of it are, to some extent, not really people in your mind.

I think there's a little more to that tweet than the 140 character limit allows. See, to people who consider you to be inside their monkeysphere, you are a collection of behaviors, and they have collected a series of behaviors to build a heuristic representing you and your expected reaction to future stresses.

To people who do NOT consider you to be inside of their monkeysphere, you are nothing more nor less than what you are doing at the moment. If you cut them off in traffic, you're a jerk. If you hold the door open, you're a nice guy.

The tricky part is, we all have people in our lives (co-workers, fellow bus commuters, hackerspace members) who consider us to be inside their monkeysphere, but we consider to be outside of our own, and vice-versa. This can cause major friction when someone behaves in an unacceptably familiar manner.

I guess my point is, the next time somebody irritates you or angers you, consider the Venn diagram of your respective monkeyspheres. If there is no overlap at all, there's a very good chance that the conflict is highly situational and not due to some intrinsic defect in either of your personalities. If there's a possibility of asymmetrical monkeysphere inclusion, ask yourself if you would change your judgment of their actions if you were closer to them, or if their actions would make sense if they were closer to you (or if they think they are closer to you than you think they are). And if you are within each other's monkeyspheres, then it's probably worth it to deal with the conflict as well as you can before it becomes a major problem.

Thursday, May 26, 2011

UptownMaker goes to the Faire

This past weekend I attended Maker Faire in San Mateo. It was an absolute gas (does anybody use that phrase anymore?)! I'm going to do a few quick posts highlighting my favorite sights- all my pictures and videos are on my Picasa site.

I'll start out with my favorite first: Miss Haley Who, swamp kirin wrangler.

This lovely fellow is a mechanical swamp kirin. He stands about nine feet tall and though he looks ferocious he's really quite gentle.

Haley Who, aka halo seabat, built this majestic creature as a gift for her little brother, Seth. It seems Seth was a bit heartbroken after their father explained that the few remaining wild swamp kirins in the east were best left unmolested in their natural habitats, and halo took pity on her brother, building him this mechanical version.

The pair of them wandered about the grounds, charming the pants off of just about everybody they met. Haley's disarming smile, the kirin's gentle gait and their tender interplay softened the overall image to the point where I never saw even the smallest of children exhibit any fear at all- mostly they wanted to touch the kirin, stroke its legs, even kiss it on the nose.

It felt magical, and I'm a happier person for knowing Haley and her kirin friend are out in the world.

Tuesday, May 24, 2011


This was originally going to be my calling card for Maker Faire. It's a very simple implementation of Osamu Tamura's AVR-CDC project, realized without a board. I had planned to make it a small device that can be plugged into a USB port and observed on a terminal spitting out information about me. The Great Global Hackerspace Challenge project took a lot out of me, though, so I didn't get it done in time.

The blobby on the left is an I/O module- three input switches, three output LEDs, and a reset switch and power LED. It plugs onto the header that is currently being used for programming. The circuitry is pretty simple: 100nF bypass capacitor, the 5V in from the USB port goes to the positive supply pin through a 1N4001, and the USB D+/D- are connected to a couple of the I/O pins.

Some words about that 1N4001: it was chosen specifically for its high forward voltage. See, the USB input wants a 3.6V input or so, and the AVR doesn't want to run at the 16+MHz needed for this project below about 4V. Originally, following the schematic on the project home page, I was using a red LED as a voltage drop. The AVR never ran stably- the voltage (about 3.3V) was just too low. Now, it's running at about 4.2V, and the 68-ohm resistors between the AVR and the USB limit the current to just a few mA, and everybody's happy.

Right now, I'm up to my elbows in the source code of the original project, removing the serial I/O code and replacing it with easily used hooks for internal functions. Ultimately I'll bend it to be programmable through the Arduino interface- for now I'm working in AVRStudio5. Once I have it all done I'll release all the deets so anybody can make one. I may also make a PCB and sell kits for it through NoCube, and probably just the pre-programmed IC, as well.

Inductive power

About two years ago I decided I was going to figure out a cheesy inductive power coupling circuit. I sat down one Sunday, started plugging some stuff together and this is what I ended up with:

This is the circuit I brought with me to the "bring-a-hack" dinner at Harry's Hofbrau that Jeri Ellsworth organized on Sunday night. You can see that the LED in the jar is lit- the jar is really just a gimmick and the little parasite works better outside the jar.

The circuit is very simple: the IC in the middle is a 12F683 that I programmed up to be a square wave generator (someday I'll blog that project, but for now, I'll just say that the oscillator frequency is jumper selectable and it can be set to either update constantly when powered or set and forget the output frequency and duty cycle) running at 50% duty cycle and (approximately) 71kHz. The square on the right is a bit of ~28ga magnet wire wrapped a few times around four screws. Power is delivered to it by a transistor- the coil gets driven by the full umph of the 9V while the PIC runs on the 5V regulator to the left.

Efficiency is TERRIBLE. Because I'm driving the transistor hard with a square wave I lose energy into the higher-order harmonics, and then I'm half-wave rectifying the output with the LED. If I made the drive waveform more sine-like and added some joule-thief circuitry to the parasite I'd see much better results. But then, this was never intended to be a huge project, just proof-of-concept.

One last thing, if you're thinking of doing this yourself: every hand-wound parasite is going to have a slightly different optimal frequency. The circuit as I made it was basically an LED, a 100nF capacitor and a coil all in parallel. Depending on the resonant frequency of the LC circuit, you'll see better results at different frequencies.

Monday, April 11, 2011

Do you see nouns or verbs?

A friend of mine recently posted to Twitter a picture of an object that his 19-month-old identified as "K".

That got me to thinking- clearly, she knows what a "K" is, but it doesn't exist in the "privileged class" of objects that we arbitrarily refer to as "letters". Hence, she was able to spot a "K" someplace an adult would never even look for one.

At her age, she still sees nouns everywhere she looks. That doorstop LOOKS like a "K" so she identified it as such. As adults, we live in a world of verbs. We look at that object and see a doorstop- which is to say, we see what it DOES rather than what it IS.

There's an important distinction there, for makers and artists especially. We tend to be so wrapped up in the verb form of the world that we forget the noun. My personal experience with this has also been that even when I succeed in considering an alternative solution to a problem, I STILL verb-ify my solution, artificially limiting my pool of potential objects to a small pool.

I'm trying to break out of this habit but it's a difficult thing to unlearn. I'm paying more attention to what my daughter does with the things she picks up, how she investigates them for the intrinsic properties of form rather than the extrinsic properties of their intended uses.

I'm also trying to challenge myself to come up with descriptions of things that I salvage, descriptions of form rather than function.

It feels like writing left-handed.

Tuesday, February 15, 2011

Atmel's XMEGA- What's the deal with 'A' and 'D' families?

Too busy to blog lately. I need to change that. Today I'll be doing lots of gateware builds on a project so I'll have some free-time.

I attended a seminar last week about the picoPower capabilities of Atmel's UC3, Atmega and Xmega processors, and it got me hankering to start working with the Xmegas. It did not, however, give me a good answer to a fundamental question: what the heck is the difference between the 'A' and 'D' family of Xmega parts?

Some Google searches failed to turn up a result, so being a good little creator of value, I thought I'd do the research and make a post about it. For more information about the Xmega in general, EMSL have a good starter article. In short, they are high-ish pin count, 3.3V microcontrollers that add some really nice features to those available in the Atmega parts.

They come in two flavors- 'A' and 'D', with 44, 64 and 100 pin count devices and QFN, BGA, and QFP package options. They also have scalable program memory sizes from 16k up to 256k. The big question I had was, why 'A' versus 'D'?

In short, it's peripheral availability. 'D' devices are lacking a few peripherals:

  • DMA controller
  • Battery backup system (providing dedicated battery backup supply option)
  • 32-bit real-time counter
  • AES and DES cryptography engine
  • EBI (external bus interface- supports SRAM and SDRAM)
  • DAC (non-PWM digital-to-analog conversion)
  • JTAG support
That seems to be the real difference between the two families; obviously it's up to you to determine if this is a limiting factor.

Some of the things I'm most excited about involve the DMA controller, the DAC, and the EBI, so I'll probably be working with the 'A' parts. But that's just me...

Wednesday, January 19, 2011

Engineering definition: elegant

Elegant (adj.): “I’m being an unnecessarily clever d!ck about this, and that’s going to open up a lorry-sized hole in my design that I won’t see because I’m being too smug about how clever this solution is. Oh, and it’ll be harder to fix, understand, build, troubleshoot, and use, but I saved $.000001 on each unit by committing untold future resources to solving the problems I don’t know I just made. It also took far longer to design than it would have had I done it in a more conventional manner, but that’s okay, because design time is free and per-unit cost is king.”

KISS is the alternative to "elegant", and frequently results in designs which are MORE elegant than trying to be clever produces.

Wednesday, January 12, 2011

The Power of the First Time

No, not that first time (well, not exclusively).

Think about the first time you did something that scared the hell out of you.  For me, the best example is the first time I set out to ride a rollercoaster and actually enjoy it.  Before, the tiny number of times I'd been on coasters were all profanity-laced panic-attack-like attempts to assert my masculinity.  This time, however, I decided to seize my fear and enjoy the ride.  It worked- that summer, and the two years thereafter, I bought a season pass to the local theme park and racked up literally hundreds of out-and-back trips, and I made a couple of special trips to other theme parks to hit THEIR coasters, too.  Something that had been previously unimaginable became a source of tremendous enjoyment to me.

What about the first time you used a tool you'd never used before?  I was terrified of the vertical milling machine until the first project I used it for; now I can't imagine NOT having access to it.

Or the first time you used a skill?  What spurred this post was my maker's notebook project.  I'd considered doing something like that for a very long time, but never did.  Now that I've done it, a whole new world of possibilities is opened up.  I used some hot glue to repair an engineering notepad that had lost its cardboard backing this morning, basically using the same process I used for the maker's notebook.  I'm starting to collect scrap paper (all those orphan printouts from around the printer, for starters) to make future pads.  It's too easy NOT to do that, now that the skill is in my stable.

My point is, never underestimate the power of doing something once.  Whether you're scared to do it, or think it'll take too long, or think it'll be too hard, you have nothing to lose by giving it a shot.  If you succeed, even partially, the second, third, and fiftieth times will come almost without thought.

Monday, January 10, 2011

A Maker's Notebook

I've long suffered from notebook envy.  Not envy of any particular notebook; I just always wished I could be one of those people that carries a notebook around and jots down notes on everything- stuff they want to look up, buy, make, write about, talk about, whatever.
I never HAVE been one of those people, for a number of reasons.  I'm scatterbrained, so even if I did have a pen and notebook, they'd have to be pocket-sized so I can not have to carry them around, or I'll lose them.  I hate writing (I actually have a mild learning disability which affects my ability articulate ideas with a pen and paper), so I'm not likely to be writing draft blog posts or a novel in my notebook.  I can't draw for crap, either, and I don't have much interest in developing that skill.  I also never found a notebook I really liked- they're too big, or too rigid, or the paper is too thin, or they are lined/gridded wrong.  I'm very Goldilocks on this.

I like the Maker's Notebook for a number of reasons: the pages are numbered and gridded, there's an elastic band to hold it shut, and there are pages of reference material in the back (although I think most of the reference material is stuff I'd never use).  I don't like how big it is, the spacing of the gridlines (1/8" is too small for me), or the fact that it's hardcover.

I also don't like the idea of buying my maker's notebook.  It seems...contrary to the whole spirit of the thing, I think.

So, what to do?  Make my own, of course!  I did a little research into what's involved in binding a book, and it turns out it's really quite easy.  The process I followed is:

1.  Draw up my pages (link goes to a ZIP file of the pages I made):  I used Inkscape to make a template page, then I used a Python script to change the page numbers and create a new SVG file named according to the pages it contains.  I only numbered the odd pages and didn't attempt to print on the back- I found that the printer I was using was too unreliable for my tastes (pages printed duplexed were off by a millimeter or two in both axes) to create two sided sheets.  The pages are 85mm by 125mm, 5mm minor grids marked by "crosshairs" and 25mm major grids marked by lines- the last 10mm on the spine edge is unprinted to provide for margin.
2.  Print them off (link goes to a PDF of the pages in one file):  I printed the pages onto resume paper- I don't figure I'll be printing any resumes anytime soon so I might as well do SOMETHING with it.  I didn't want the paper to be thin enough for the ink from my pen to bleed through (a problem I had with my last Moleskine notebook), and I was hoping to be able to write on both sides without even seeing the writing on the other side.  I was partly successful- the ink doesn't bleed at all but it can be seen through the page.
3.  Cut them out:  I used a guillotine-type bypass paper cutter for mine, and cut the pages out one sheet at at a time.  I used a flashlight to silhouette the cutting edge so I could line up the edges better.  A slide-type cutter would probably work better.
4.  Align the pages:  Align the to-be-bound edges by rapping the stack edge-on on a table (think about the move you do when shuffling cards, between the fun flippity-flippity-flippity parts, to realign the cards.  But more cautious.).  Once you have a nice, well aligned stack (you'll only be able to get the binding edge REALLY straight), take a couple of binder clips and secure the stack by clamping them over the edge OPPOSITE the binding edge.  Then, create a nice, solid edge on the binding edge by taking some pieces of stiff material (I used thin sheet aluminum but wooden or steel rulers, cut glass, paint stir sticks, or anything else of that ilk would work) and clamping them along the edge with another pair of binder clips.  In the picture, the edge clamp pieces are a little short- they are sized for a different sheet but you see the idea.  Make sure that the clips and clamping pieces are at least 2-5mm from the edge; less than that and you'll get glue on them, but more than that and the pages will not be tight enough (they'll want to spread as they absorb glue).
5.  Smear the glue on the spine:  I used fancy-shmancy bookbinding PVA, but regular old Elmer's Glue-All should work just fine, since that's pretty much the same thing.  I've also seen websites recommend Gorilla Glue and hot glue as well, but I can't vouch for those first hand.  It's nice to get something in a pot, though, like I used, because you can brush it on more readily with a tool, then.  I used a foam paint brush and it worked perfectly.  Start with a light coat and work it into the spine a little (by light coat, I mean, cover the entire spine, but not so thick you can't see the "grain" of the paper stack through the glue).  Then, immediately, paint a slightly thicker layer over that (thick enough that you can't see the grain anymore, but not so thick it threatens to drip or run).  Let this dry for a few hours; when you come back you'll likely find that you've got a few places (or maybe many places) where the glue has thinned, soaked in, or otherwise become transparent enough that you can see the grain again.  Now put a thick dollop down, all along the spine- as much as you can get without drips forming.  Go down the front, back, and ends, as well, by a millimeter or two or three.  You want to form a nice "cap" over the bound edge, that captures all the pages and lends strength to the spine such that the pages fold easier than the glue cap does.  Leave the binder clips and clamping pieces in place until the spine dries.
6.  Cover it- once you've got a nice, thick spine coat of glue, you can put a cover on it.  I used a piece of upholstery fabric from an old sample book, cut with pinking shears to prevent (or at least slow) fraying.  Personal preference is key, here- I wanted the cover to be long enough that the back cover would flap over the front and be secured to the front, to keep the edge opposite the binding from becoming "frizzy".  All I did to cover it was add a little more glue (a thin layer, but over the entire surface of the cap I'd created earlier) and wrap the cover around the bound pages (line it up nicely!).  Be sparing with the amount of glue you use- as I smoothed the fabric over the spine, a lot of glue oozed down to the end and dripped out.  I replaced the binder clips and clamping pieces along the spine, and the two clips along the open edge, just to make sure I got a nice crease.

Once the glue dries, you have a notebook!  There are a few things I did wrong that I'll try and rectify with the next version:
  • The paper I used was too heavy.  It could be a bit thinner and still be quite opaque; then it would fold easier, too.
  • I shouldn't have printed a line along the three visible edges I wanted to cut.  The lines show up here and there which lend a slightly slap-dash look to the thing.  Either printing a line that's offset by one of the paper cutter's grid units (so I can line it up with something else to cut) or just using the ends of the grid lines would have been better options.
  • The snaps I put on the cover are too thick.  They lend an uneven feel to the surface, marring the sleekness of the closed notebook and embossing a circle on the first few pages.  Better options escape me at the moment, though- both corners of the cover need to be fixed or the will inevitably fold up when stuffed into your back pocket.  Elastic band, perhaps?  Magnets?
  • The fabric I used is a few mm narrower than the book itself.  Not a big deal, but a definite lack-of-planning issue.
  • The fabric is a little too floppy.  I haven't decided if I like this or not.  It's durable enough to protect the notebook but soft enough to easily be folded around the back.  Next time I may use leather if I can find a source for usable size pieces on the cheap.
  • I rushed it with the reference information.  The reference pages at the back have a few pinouts of transistors, the Atmega328P, standard resistor values, a tap/drill chart, ASCII characters, some conversion ratios and some tangent values.  Most of them I just stole from around the web (that's why I didn't upload those pages); many are scaled bitmaps and screen caps, so the resolution is sub-par.
  • Time will tell if my "cross-hairs for minor/lines for major" solution is the right one.  I may go to tiny little pips rather than cross-hairs, and I may abandon the major grid marks all together.  I am, however, very happy with the 5mm spacing for the gridlines.
Despite all that, I'm very happy with my new notebook, and I'm reasonably sure that the combination of it being nearly exactly what I want and my having made it with my own hands is going to encourage me to use it.  Now I just need to get a really nice pen to use with it!