h1

Things I want to work on

July 16, 2013

I finished up my last contract, other than a few weeks of answering questions. Old clients want new things but I think that’s just a few weeks of work. And then I have a big open space (right after the family vacation).

Those used to make me nervous but I’m getting better at being excited to have time to work on my own ideas, if only to freshen my skills. I’m not as worried that I’ll never find a new client. For a little while (at least), I’ll be choosier with contracts (such a luxury!).

A friend asked what I want to work on. I think he has entrepreneurial motives though I’m not ready for another turn on the startup merry go round. In trying to figure out how to answer him, I’ve sat down and thought about what I really want to work on. Not the technology or location or industry, but concrete things I think must be happening that I particularly want to be a part of.

  • Smart prosthetic limbs (feet):  measure surface something (electrical impulses? micro movement? tension?) on the remaining limb and use it to control things like artificial toes for enhanced balance.
  • $5US clothes washer (the TED talk about how washing machines change everything really got to me). I suspect other things would do: a $5 ereader (put a whole encyclopedias on it) or a $5 something else that can make a huge difference to someone outside the US.
  • Use chemical sensing MEMS to make a pocket mass spectrometer/gas chromatography system (bomb sniffing, tricorder, being able to visualize 1/100 of what my beagle smells).

Thinking about concrete examples is difficult. I want to work on something innovative but my innovative ideas are smaller than I want to work on, smaller than a company could sustain. (Though, my ideas get bigger as time goes on so this may not remain a problem.) There are other things I can identify as great things about my next potential contract:

  • I’ve done a bit of work with devices that attempt to use game-ification as a motivation tool. I’d like to see a focus also on pet-ification. Many people tend to nurture more than compete. I don’t know if I want to apply this more to fitness or to education devices. Either. Both.
  • A genius’ vision of something that make the world a better place. While there are a lot of things I don’t want to work on/with (application, methodologies, and companies), I really didn’t want to make this a negative list. If I were to make this a list of things I don’t want about my next project it would be “I don’t want to work on something designed by committee”. I find those projects increasingly unsatisfying. However, the times I’ve worked with someone who had a plan and could articulate how my help was needed, those have been great projects where I have learned a lot and provided a lot of value. (Hey, Elon Musk, if you read my blog, please consider how my embedded software skills can help you with the LA/SF 30 minute transporter thingy (Hyperloop).)
  • Proof of concept prototype for a skunkworks. This is kind of like my recently complete project. I like shipping things, it is incredibly gratifying. But I also like proving something unlikely is actually possible.

I suspect I’ll find something interesting that pays bills while I ruminate further on my plan to take over a tiny portion of the world. In the meantime, I’m enjoying this thought exercise. And break.

 

h1

Unsweetened

July 6, 2013

Every week this year I have a resolution, something to make me healthier, happier, or more productive. A friend mentioned that Jefferson did something similar through his whole life, focusing on one virtue for a fortnight before moving on to another, cycling through thirteen of them. I’m trying out all sorts, opening up myself to different ideas.

My resolution for the last 3.5 weeks is “no sugar”. And by that, I mean no sugar, no sugar substitutes, no honey, no maple syrup, no fruit juice (*), no dried fruit, no agave syrup, no sorbitol, no xylitol (which is poisonous to dogs!), nothing sweeter than fruit, eaten as fruit.

I’m hoping to get control of my sweet tooth, reset it to a different level so I don’t crave FROSTING levels of sweetness. My goal was to make it 4 weeks. I don’t think I’ll have a problem with it though it has been both easier and harder than I thought.

I consciously made an exception for alcohol; I have been drinking wine and sake. And I had one fruit juice cocktail (that was yummy but tasted way too sweet though it did an excellent job of delivering rum to my overtired system). There were a two other intentional exceptions: cough drops and calcium chews. There were two sweetened foods that I repeated even knowing they were sweetened: teriyaki sauce that didn’t end up on the side of my salmon and grape juice sweetened blueberries encrusting the Trader Joe’s goat cheese (rationalization: this was so good, killed sweet cravings, and I was already drinking grape juice).

I have been reading labels, put back potato chips, salad dressing, bread, (veggie) deli met, and frozen vegetable packages that had sugar (or other sweetener) as an ingredient. I came to the conclusion that sugar is lurking everywhere. I ordered dishes in restaurants that had the least likelihood of being spiked (except for salmon teriyaki).

We cleaned the house of ice cream, cookies, popsicles, and sweetened crackers. We talked about how we’d keep the house sugar-free for the foreseeable future (ideally forever) and limit our sugar intake to outside the house. But that plan would start after my 4 week long no-sugar plan. Even so, merely talking about it led to me daydreaming of going to the bakery, getting an icing shot (yes, our bakery has little cups of their excellent frosting available for purchase), and just doing the hit of sugar, right there, on the street.

The minute-to-minute implementation of being unsweetened wasn’t that difficult. Snacking on potato chips or bread and butter or string cheese sticks, there are always foods to eat (I didn’t lose any weight). Yogurt was tough, though after a 2 minute wait frozen fruit + plain yogurt leads to cold fruit covered in frozen yogurt. Actually, the latest technology for frozen berries without ice crystals has been wonderful, I’ve eaten a lot of still frozen fruit. That got me though the heat wave we had.

Breakfast was the hardest meal. I usually eat protein bars (I usually want to work with I wake up; making a nice breakfast gets in the way of me melding with my computer). I thought oatmeal and cream of wheat were a lost cause but when I went savory (adding sundried tomatoes and parmesan and a bit of butter), those were surprisingly yummy. Once I got oatmeal and cream of wheat working, I’d mix those up with the uberfast hunk of baguette and microwaved veggie sausage. I really didn’t have trouble finding good food to eat.

It was the daydreams and cravings that nearly killed me. Upon hearing my resolution, three people told me that they’d heard about a study that showed sugar was as addictive as crack. Two of them were eating dessert in front of me as they said this.

The worst time I had was at a birthday party. The social pressure of sharing cake is one thing, the vision of my husband scarfing up the moist cake and frosting (!!!!) haunted me for days. (Just writing about that, my mouth is all watery.) He ate maybe three bites but, still, to do it in front me… (never mind that everyone else there had a plate of cake, he gets all the blame).

I had a dream one night that I ate a bite of that cake. I could taste it. And since I’d broken my resolution, I woke up thinking I might as well have pancakes and maple syrup for breakfast. Lots of syrup.

If I felt about alcohol the way I feel about sugar, I think I would be an alcoholic. I’m embarrassed at how much time I spend plotting to get sweets and the many, varied forms that I want to consume. It is dumb and annoying, making me feel less in control of my life. Really annoying. Really embarrassing.

Like the resolution to eat whole grains, I’m happy I chose this as a resolution. It has given me a new bar for living as I want to live. It has made me comfortable with turning down sweets in social situations, enough that I think I could do it in the future. Keeping the house sweet-free is obviously the way to go (why didn’t we do this before?).

And yet, I’m still very much looking forward to this resolution ending and what I’m going to have for breakfast on Wednesday morning.

Taken in the salad section of a deli in a Flagstaff.

Taken in the salad section of a deli in a Flagstaff.

h1

Music generator idea

June 25, 2013

OMG, the peeping bird. The Peeper. Sometimes called the FP. It starts at dawn in early April: PEEP PEEP PEEP. It only knows that one sound. And what it lacks in variety, it makes up for with volume. The PEEPs echo off the surrounding houses, giving them resonance. It is unbearably loud, particularly as I’m supposed to be sleeping.

Eventually, in late May, it is joined by another bird, affectionately known as the car alarm bird. Probably a mockingbird, its song is a car alarm: whoop whoop whoop, eee-urr-eee-urr, raaan-raaan-raaan. The first time, it sounded a lot like a car alarm. This year it sounds like a bird’s musical rendition of a car alarm, as though the birds have been playing telephone. It almost pretty, definitely funny. Still, not the way I want to wake up, especially with the FP playing rhythm peeps in the bird band.

Take that as part one of “necessity as a mom” and let’s move on to part two.

When I’m working, I like music but only boring music, music that doesn’t impinge on my consciousness. And I don’t like noise, whether it is the fan of my officemate’s computer or the dishwasher running or the peeping bird (less obnoxious in the office but still quite audible). I know I can buy white noise generator to block the sounds or get noise cancelling headphones. And sometimes I just turn up my music. Those solutions each have some definite drawbacks.

As I was reading about Bug Music and the author’s attempts to play an instrument in line with the symphony of cicadas or even harmonize with the beat box rhythm of a cricket, I started to wonder. Could I make a music generator that would listen to ambient noise and generate some cover for ongoing sounds?

Say the peeper is PEEPing. It is pretty rhythmic as well as tonal. So could my gadget make horn sounds to cover the peeper? And a soft swingy, jazzy riff underneath to maintain musicality? And when the whine of a fan is going, could it take that 8kHz whine and add some arpeggio to relieve the monotony?

There was an iphone app called Ambiance that would play a huge range of sounds- oceans or bird calls or whatnot. It was to help people relax. This would incorporate exterior sounds into that, layering them into the intended soundscape.

And the music generator would let you hear some sounds: a siren going by won’t mix in right away, the music generation processing would need time to acclimate to new environmental sounds.

Of course, I’m just blithely assuming music generation is easy, that improvising is trivial for a computer. But that is an exercise left to the implementer. Anyway, when you are done, please let me know so I can buy your gadget.

 

h1

Want to be on my podcast?

June 5, 2013

I have a podcast now: you can listen at http://embedded.fm/ or search for Making Embedded Systems on iTunes (or Instacast or Stitcher). The podcast is about embedded systems and, like this blog, it consists of whatever I’m excited about (and who I con into being my co-host/guest).

But what I really wanted to put here was some of the process stuff I’ve learned having done the first four podcasts. Here is the short version.

  1. Find guest, agree upon general topic.
  2. Make outline (ideally Wednesday before show)
  3. Send outline to guest, get mods back by Friday.
  4. On Saturday (or Sunday), do 2 hour recording session.
  5. Producer does producer-y thigngs
  6. Show comes out on following Wednesday.

So, once I hook a victim and choose a topic (i.e. “What an electrical engineer thinks a software engineer should know”), I make an outline.

The outline isn’t exactly a script, though the intro and outtro are written out. The outline is more a list of points and questions so I don’t forget any of my plans. We don’t have to stick to the outline but it means I don’t have the “err, what was it I meant to ask” feeling all the time. It also lets the guest know what things I’m likely to want to ask about so they don’t get caught off guard.

I sent the outline to the guest. Actually, the outline starts with a notes section:

I tend to script the first few minutes as it helps get comfortable. I have no problem going off script, it is just a crutch for the first few awkward minutes.

If you want this (or something else), let me know. We found paper to be noisy so I’d prefer to put your notes on my ipad if you’re ok with that.

Finally, I put in two end points. The goal is 45 minutes but I’d rather be 5 short than 20 long.

Next in the outline is the intro, all scripted out, as promised above.

This is Elecia White, welcome to Making Embedded Systems, the show for people who love gadgets.

This week I’ll be speaking with Phil King one of my favorite electrical engineers. The plan is to hear what a hardware guy thinks software engineers should know.

Hi Phil, welcome to the show.

[Phil says hello]

I know you’ve worked at some neat places, we made children’s toys for Leapfrog and a gunshot location systems at ShotSpotter. What else have you been up to?

[Phil gives 30s bio]

When I was a manager, hiring new embedded software engineers as my minions, Phil was part of the interviewing team. He was excellent at finding people with really good skills, even better, he could articulate what he liked (and didn’t like) about candidates.

So, Phil, what was your secret question?

And now we are out of scripting and into the outline. From here, there are lots of points I might want made (either by my guest or by me, I don’t usually differentiate). Sometimes these are question (“You always really cared, making sure we hired good software engineers. Why is that important to you?”) and sometimes they are just notes for both of us (“software engineers can damage to HW…”). Also in the outline, I might have reminders purely for me (“tell story about capacitors”) so I don’t forget something I think is nifty.

But these are just conversation points, if we skip one, no big deal. If the conversation is flowing, I’d like it to flow naturally.

Finally in the outline, there is the outtro, what I need to record when the show is over.

We’re out of time though I know we’ve got a lot more to talk about, you willing to come back?

[Phil]

Ok, thank you for joining me. Thanks also to our producer Christopher White and to everybody tuning in. Please leave us comments and questions at embedded.fm or show@makingembeddedsystems.com. We love to hear from you.

Next week, we’ll be talking to (? about ?). Have a good one.

I write the outtro so I don’t forget to thank people or say where to send comments.

Once the outline is done and sent, I start taking notes for random things I might want to say… extra things inside the outline bounds. Sometimes I ask for questions or information from twitter for “voices from the audience” sorts of things. I also try to think up some pre-show chat while we are getting the sound levels right (I jokingly asked Phil about his feelings on exclamation points, we got off on a tangent about the interrobang which made it into the show a little). It calms the guest (and me) and makes the show flow better if we are already chatting.

Recording isn’t hard, thanks to my husband-producer-superhero, Christopher White. He’s done wonders to make us sound good. Despite most people not liking their voice (me included!), everyone has been happy with the recordings, so far. In addition to monitoring sound levels, he tags points where we start and stop (hey, I stutter, sometimes I don’t want to share that) and highlights where we mentioned things that should go in the show notes (that RSS feed doesn’t write itself, you know).

Recording takes about 1-2 hours to get enough info for around 45 minutes of show. Later, usually right before he releases it, Chris edits the audio to eliminate the goofs. He makes us sound good (and balanced), does any bleeping, adds music as needed (he wrote the intro!). He attaches it to the RSS feed, presses publish. That makes it go to iTunes and Instacast and Stitcher where people can get it.

If you want to be on the show, please let me know. Most of my guests haven’t done too much prep (I want to talk about what you know, not something you need to learn and prepare for) so the process is about 2.5 hours of your time: gadgets, embedded systems, parts, technology, working on gadgets, maker projects, etc.)

There are some things I still need to figure out. We have a recorder I can carry about (if I’m willing to get crummier audio) so it is possible to do on-site things. But I need to learn to use it better, especially to get voices right for an interview. I have a plan to interview someone in San Francisco in July so I have a deadline. And I know some people do podcasting via Skype audio which would increases my pool of guests; I want to sort that out.

There’s always more to try out and to learn. And I suppose when there isn’t, I’ll do something else.

 

h1

Tools sometimes define the problem

May 23, 2013

When I have a bug of the sort “nothing is working” or “the peripheral is acting like the processor isn’t talking to it”, the digital multimeter (DMM or DVM) is the tool I start with. It sits on my desk, all the time, even after a clutter purged. It is easy to use but a very yes/no, working/not working sort of tool. It is kind of binary, like a hammer. It is either hitting the nail or not.

If something is not working, the next tool is an oscilloscope. Like a microscope for electrons, an oscilloscope will let me see what is going on. However, to get an oscope, I need to call an EE friend and ask if I couldn’t please borrow his scope (he always says yes). Then I head over to his house after he gets home from work (I think his wife is afraid of the garage) and pick up the scope. I usually get it for a week or two, depending on whether he’s got a weekend project planned. (This is Phil of Weekend Engineering so he often has weekend projects planned.)

Where I’m going here… using an oscope requires planning. It requires me to admit my bug can’t be solved by just trying something else, that typing another line of code or doing a recompile isn’t enough. An embarrassing amount of my time is tweaking my code to do one thing just a little different. Admitting I can’t do that until it magically works, well, it takes a little while.

Even when I have 24/7 access to a scope, using it still means figuring out where to attach the probes to the board and configuring the scope. Admitting I have a problem, a real problem and not just a typo, is oddly difficult. I should just be able to figure it out.*

*This is a myth. A complete and total myth.

When I worked at HP, there were plenty of scopes around. But they all weighed 40-60 lbs (and dropping it would have been *bad* because they were hideously expensive (like 1/2 year salary expensive)). So in addition to admitting to myself I needed help, I had to find a big strong man to carry the thing for me. Who would inevitably offer to help me connect it to my board and then take credit for the solution. (Why didn’t we just put the darn thing on wheels? As I look back, I’m a little frustrated by that idiocy.)

There was another tool I used a few times there, one that I think was on wheels: the logic analyzer. It hooked up to dozens of digital signals and would help me figure out what was going on all over the system. But it was a very difficult tool to use (its manual was about four times longer than the oscilloscope manual and it cost a whole year’s salary). So to use the logic analyzer, I had to admit the problem was big enough to stop my normal work for three days, get someone to help me transport it, get another someone to modify my board so the signals were available, set up the analyzer, and then, within a few hours of getting the information, solve my bug.

Once I admitted the scale of the problem warranted a tool of that magnitude, and put in the diligent effort of setting up the tool, the solution was always obvious.

Now logic analyzers are tiny widgets that plug into USB ports and take all of ten minutes to set up. (I did it (almost) live unboxing of the Saleae Logic on my new podcast.)

But I still have to admit I need it. I wonder if I’m going about this wrong. In the past, I’ve always waited for a problem to happen. Then I’ve waited until I determined I couldn’t solve it the easy way (poke, poke, poke). Then I grudgingly admit it won’t fall to trivial debugging. Then I pull out whatever tool will help, grudgingly (still) hook it up and configure it. Then (usually), the problem falls fairly quickly.

First, the grudgingly parts… the fact that I can’t type my way out of a problem doesn’t make me stupid. I know that and yet… this is what programming is to many people.

Once I got my itty-bitty, super cheap new analyzer set up, I left it in place. And now I’ve moved on to other issues, just adding more signals. It is really handy. I can look at things whenever I want… before I start tippy typing randomly and pressing the recompile clean button for no reason.

But some tools take time and they don’t look like forward progress. It is hard to know when to throw in the towel on being a monkey typing randomly (and when to stop hoping Google, Stack Overflow, and caffeine can solve your problem). On the other hand, reading the manual or getting the right tool or taking a class… well, sometimes it is necessary to take a step to the side to get on to the fast track to the solution.