A better way to improve vocabulary

If you want to get past the blah blah blah below, here’s a video description of my Android app

And here’s a link to the app in the playstore

It’s all those words

For a a variety of reasons, many of us want to speak another language, but it’s not so easy. We start with the easy stuff needed to be a tourist. A bit of grammar and some basic words come next. The early progression may not be so bad, but eventually we’re likely to hit a wall. Vocabulary.

A human language probably has a couple hundred grammar rules. Conjugations, where’s the verb go, past, future, future perfect, prepositions,…. At first it’s overwhelming how many rules there are, but you learn them and stumble through using them.

You can can get by with broken grammar, but if you don’t know the meaning of the words, you’re stuck.

So how does one improve their vocabulary?

Everyone’s tried flashcards, but they’re kinda tedious. Another way is to read an article, dictionary in hand. Both methods involve a lot of work. The more work you have to do, the less likely you are to avoid doing it. To make it worse, even if you slog through looking everything up, by the time you get to the end of a paragraph, you forgot what the beginning was about.

goosebumps

Another method that I’ve tried is to get the same book, one in English and the other in the language I’m learning. Goosebumps, for Hebrew and Footfall for German. This worked ok, but translations are often not that accurate. The German Footfall had entire sentences missing. Hebrew Goosebumps wasn’t so bad.

footfallcombo

Someone should write an app

A bunch of years ago, I had an idea. Take something I like to do, reading, and turn it into something that improves my vocabulary as a side benefit. The idea is to generate a vocabulary list that is personalized to me and to the text I’m trying to get through.

The point is not to study the language. The point is to read something you want to read.

Back then, I implemented a firefox extension, and it was very helpful. For the first time, I read, understood, and enjoyed a novel written in German. Once I had it working, I really liked it, but there were a bunch of things that would have made it difficult to generalize to other languages and generic websites. In the mean time, technology has moved forward.

Finally getting to the point

So now that I’m living in Germany, needing/wanting to improve my fluency in German, I’ve implemented the concept again. Here’s how it works:

  1. Install my EasyReader app on your android phone or tablet. 1
  2. Open your web browser and go to an article you’d like to read.
  3. Click on the share icon under the “…” in the upper right corner and EasyReader should be one of the options.
  4. EasyReader will load the shared URL, extract the main text and display it in a tab.
  5. If you swipe right, you’ll see a list of all the words that are used in the currently visible text along with their translations.
  6. You select the words you already know and mark them as read. EasyReader will remember these selections in future texts. This will take some work with the first couple articles, but you’ll quickly get good lists without this step.

Reading the text becomes much easier. Read until you’re stumped, swipe over to the definition, swipe back and keep reading. You’re not trying to study the words. They just need to stick long enough to comprehend what’s in front of you. Over time, the words will stick.

Any combination of languages should work. I have had some difficulties with non-Western alphabets, however. 2

Other features of the app

There are a couple more “advanced” features that I’ve added.

Sometimes, the text in front of you has too many words you don’t know. To reduce this, you can tap/select a paragraph and your word list will be limited to just that paragraph. 3

Next is the ability to add flashcards. In my own usage of the app, I found that there are important words I need to study. Next to the “unknown words” tab is a “flash words” tab. Words are added just like marking a word as known. The flash tab also has a print button and a copy to clipboard. 4

Last, EasyReader will handle ebooks in non-DRM epub format. These are easy to get. 5 Find the epub in your device’s file manager and click it. EasyReader should appear as an option.

What makes this app difficult?

In case you care, here are the two hardest parts of implementing this functionality.

The first thing that’s hard about this is the fact that most webpages have lots of extra stuff that isn’t part of the meat. Ads. Links to other pages. The banner. Furthermore, the html structure of most webpages is difficult to decipher. No clear demarcations. The utility boilerpipe makes this much easier 6.

The other thing that made it hard is finding word mappings. Babylon was a good source, though parsing their data wasn’t easy. Even after I found a parser, it wasn’t enough. Almost all words have variations, plurals for nouns, conjugations for verbs, plus some words don’t need translation. People’s names, for example. How does the app decide?

A good fallback was google translate. At the time, the translations were good enough for me to read a novel and they’ve gotten much better. Somewhere along the way, google made it harder to query their APIs. When asking for a definition, you have to compute a secret hash function on the word. Get it wrong and you just get an error response. Thankfully, others have reverse engineered it. It still wasn’t easy because two or three months ago Google tweaked the hash function. The Javascript is obfuscated but eventually, I found the difference.7 8

 

 


  1. Android only. I am prejudiced against Apple, in spite of the fact that their products are nothing less than excellent.

  2. I’ll try to fix this if there is demand.

  3. sadly, many paragraphs are quite long

  4. I’ve written some code to get better definitions from the leo website. This works only for German and it’s not part of the app. I’d consider adding it if anyone cares

  5. If you have a book in Kindle format, this site provides an excellent solution. Well worth the effort of installation.

  6. it’s not very well documented though.

  7. I depend on the fact that Google is a large company with a website that is used by many, many people. Changing the function regularly has the associated risk of breaking their website. More important than trying to slow down small fry like me

  8. If someone from Google cares to complain to me, I would love to hear from Tamar, a former Intel coworker, who I believe heads the translation division. I’m not making any money from this app, nor am I selling the translations.

Goin back to Das Mutterland

This post requires a bit of Miles history.

I was born in Frankfurt Germany. My mom was German (she passed almost 6 years ago) and my dad was an American serviceman. I lived there until I was almost 8 when I moved to Los Angeles with my dad and step-mom 1. I mostly grew up in LA. I spent my high school summers and most of my college breaks in Germany with mom. All, told I’ve spent about two years in Germany since I was 8.

I have dual citizenship. I have a sister, a niece and a number of cousins still in Germany. I have several friends in Germany that I’ve known for many years.

I also have two kids with whom I do not speak German. I feel lame about that; begin bilingual is such a gift. I’ve spent enough time in Germany to understand that not everyone looks at the world that same as Americans. In some ways I feel German, but I mostly feel American2. Still, I’m a citizen 3. My kids are citizens. I don’t feel as connected to the country as I’d like.

So I’ve moved to Germany with Robie and the kids. We’ve been here almost a month 4. We intend to stay here a bit over two years. Return target is summer of 2018.

When talking to my friends about the move, the question that’s caught my attention the most is this one “so, why you moving to Germany?”

I see that as a funny question. I think the question itself is more surprising than someone’s decision to move to another country for a time. Why wouldn’t you move to another country?

The world is a big place, consisting of more than foreign languages, and interesting (or sometimes gross) food. It’s more than religious wars, or petroleum. It’s more than backpacking on the train, getting drunk and trying to get laid.

For me, foreign travel is about the surprises. Not the crazy stories about waking up somewhere hungover, not the crazy drivers, pickpockets, or weird encounters with the police. Those things are not surprises. While those things may be undesirable, or avoidable, many travelers should not be surprised when they happen.

The surprises I’m talking about are the things you never knew to expect or think about. unknown unknowns. Some examples

Hail to the KKK

When I was in high school and visiting mom for the summer, my friend Mishi 5 showed me an article from  the magazine Stern, or Spiegel 6 about some KKK rally somewhere in the US. She thought it was crazy that this would happen without them being arrested, but it seemed normal to me. I’m no fan of the KKK, but the article just portrayed a rally. No explosions or burning crosses involved. In the US, it’s the KKK’s actions that are illegal. In Germany, the KKK itself is illegal. Even if you never light a single match or never wear a bedsheet on your head, you can be guilty of a crime. Membership itself is enough to break the law in Germany.  She and I argued about this for an hour or two.

In a way, this isn’t really surprising. American politicians talk all the time about how other countries have different laws. The surprise for me is not the existence of the law, I was surprised that Mishi really felt that the KKK should be illegal. My arguments about where do you draw the line had no effect on her. My arguments about who draws the line did not sway her at all. That argument gave me a much deeper appreciation for what the ACLU does. They take some crazy positions that really do seem absurd at times, but the line has to be drawn somewhere and I’d rather push it way over there to make sure it’s not close to me.  Germans are happy to take that risk.

Give him some space

I lived in Israel for a little over 2.5 years. During that time, three people I knew lost a parent, and one coworker died.

Jewish culture/religion has a thing called “Sitting Shiva”. The immediate family of a lost one sits together in one home for a period of seven days 7 The days right after the death of a loved are the hardest. They are the times when we need each other the most. So when someone is sitting Shiva, you go visit them and mostly you just shoot the breeze. Politics, a good joke, sports, whatever. The main point is to be another human being reminding them that they are not alone. You don’t have to know the person particularly well. I visited Mooly Eden, a way up there Intel manager, when his father died. He knew me because he knows everyone but otherwise, we’re not buddies.

I also visited my friend Nava when her father died. Three of us got in the car on a school night, drove an hour and a half to get to Jerusalem, where she grew up. We spent an hour or two with her and drove another hour and a half home. On a school night. The look on her face when she saw us told me that the time was well spent. She was not alone in this world.

I worked with a man Oz, who died while I was there. Everyone at Intel loved Oz. Great guy. You can’t not love him. The Saturday after he passed, my girlfriend Shlomit and I got into a car, drove an hour and a half to visit his parents, who we’d never met to pay our respects. They seemed surprised at how many people showed up over that weekend. They seemed to really appreciate how well respected he was at Intel 8. All these people came all this way because of your son. His life was a good one. He touched many, professionally and personally. You should be proud.

Experiences like this taught me that the American approach to death is all wrong. When I was back in the US, my friend Eric’s dad died, unexpectedly. Most of the people around us avoided Eric. “don’t bother him. Give him some space. Try to take some of his workload”. huh? That’s all wrong, I thought. I went and talked to him. “Sorry your dad died.” We chatted for a while about his dad, his family and life in general. Space is the last thing that Eric needed.

It’s hard out here for a pimp 9

Experiences like these, and I’ve had others, are a big part of why I am in Germany now and why I think everyone should spend time somewhere they’re not familiar with. They’ve happened already in the couple weeks I’ve been here.

There’s a question I like to ask my friends: If you had do something illegal as a profession, what would it be? Most of the answers are a interesting, some would grow pot, my cop friend would do identity theft, I would be a smuggler, one friend says he’d be a pimp 10

In Germany, Jens is the first person I asked this question and I was surprised by the answer. Jens used to be a construction guy. Stairs and roofs. He found it too hard on the body so he does something else now. His answer: he’d do construction type stuff under the table. “Working black”, the Germans call it. The problem is the tax man. In the US, people take it for granted that house cleaners are not reporting their income. In the US, most people don’t care. When I go out to eat, I try to leave the tip in cash (even when paying with a card) in order to give the waiter the latitude to be creative in their taxes.

Here, tax evasion is that serious that just painting someone’s apartment for a little extra cash puts you at risk 11. When I mentioned my surprise to some others in me and Jens’s circle, they agreed, don’t mess with the tax man and proceeded to give examples.

One way that underthetable labor in the US can be seen as different is that in the US, it’s often/usually illegal immigrants. 12. In Germany, the folks who are most likely to do under the table work are Eastern Europeans. People who are legally allowed to work in Germany due to their citizenship in an EU country.

It’s scarier to pay a legal immigrant on the side in Germany than to do the same with someone who is in the US illegally.

This surprise is probably not life changing for me, though it does make me wonder whether Germany wouldn’t be even more economically successful, if the business environment were to be de-regulated a bit. People are perhaps less likely to start their own business or tinker in their garages. I’m not sure yet, whether Germans think that things are the way they ought to be, but it does make me feel a bit Republican. 13

The first half of this post was written months ago. Fast forward to August…

Heya Sis

More surprises have happened. The greatest one is that my older sister and I are really getting along really well. The kids love her and she dotes on them. She and Robie have a good connection as well. My disappearance at age 8 came at great cost to her. As a teenager, she was basically my primary caregiver. Some of our relatives blamed her for my disappearance. In the years since my reappearance, things have been strained for a variety of reasons. Coming here, I was hopeful to see her a couple times but from our first phone conversation, it was clear our conflict was a thing of the past.

We’ve visited her twice now for a total of about three weeks. Hopefully, she’ll be able to join us on a trip to the north coast. Additionally, she was instrumental in us finding our apartment. I don’t know where we would have ended up without her. The housing market here is really tight. Some foreigner without a job is at a disadvantage.

This surprise alone has made it worth the move.

Why do they call it the city of Angeles

Los Angeles, that is. Try crossing the street and you’ll find out.

Europe has a reputation for being more bicycle and pedestrian friendly. There’s the joke in the movie LA Story where Steve Martin drives two houses down to visit a friend. 14. Amsterdam has public bikes all over the city.

Germany is not pedestrian friendly. If I had to name one thing I wish were different, this is it. Here’s a picture of a crosswalk taken from outside our kitchen window. I cross here all the time.

160803-IMG_20160803_093339945_HDR

Cars rarely stop for us. It’s a spot designated for crossing. I can stand there, with our stroller, holding onto Malcolm, who’s set to just run off. Cars just blow by. It’s not just young guys in their sports cars, but also moms with kids there in the car with them… they blow right by.

I’ve had two other experiences where I was walking down the sidewalk and a car went in or out of a parking lot in such a way that I had to stop to avoid being hit. My friends tell me that it’s a Frankfurt thing and that other parts of Germany as better. I do live in the suburbs. I guess I’m spoiled by Portland drivers. Here, it feels more like NY or Boston.

Awesome Public Workers

As Republicans like to remind us, Germany is a Socialist country 15 and damn near communist. As such, my experience with government bureaucracy has been fantastic. Waaaayyyy better than the equivalents in the US.

First, we wanted to register the kids as German citizens. My sister took us to the local “city hall”. Daniela lives in Bad-Sooden Allendorf, population 8k. The office we went to had one(1) person working there. In about an hour and a half, and 30 euros later, we had passports for both kids. That included walking around the corner to get pictures. 16

Second, you have to register with the local government within two weeks of moving to a new place. The lady for that was awesome as well 17

Third, getting a visa for Robie was super easy and took about a month and 100 euros. In contrast, getting a green card for my mom took about 10 months and almost $2000. 18

More to come

There are other surprises, but I’d like to get this post out there. There are a couple others I want to write, but I feel compelled to talk about why I’m here before covering my more normal type of topic.

Out of curiosity, if you’ve made it this far in the post, please leave a comment or send me a mail mail@mmccoo.com. I wonder how long is too long.

Life here is good. Lydia has been in Kindergarten for a bit over two months. Making friends, but her German progress is slow. Malcolm starts in October, right after he turns three. 19. Robie is making great progress learning the language on her own. She starts a program mandated by her visa in September. Four hours a day, five days a week for the next year. It may not be intense enough.

Robie is going to martial arts classes again. Though she got her brown belt shortly before coming here, the classes are in other kinds of fighting forms.

Me, in a way, I’m living a similar life as before. I am about the publish my Android app in the PlayStore. It’s the app version of my VocabularyBuilder. That’s been fun and interesting. I’ve enjoyed playing with my little quadcopter (for $28, I highly recommend it). I’m building a bigger one cause I want to fly “first person view”. There’s a local hobby model airplane club, that I want to join as well.

I’ve gotten the CNC itch again as well, and I might build a small dremel based one. With all the 3D printing/maker stuff out there, parts have gotten a bit cheaper than when I built this

All in all, I’m enjoying life here. My German is getting better. The family is having fun. I get to experience new things.


  1. actually, I was kidnapped. My mom had custody of me and one day dad asks me “you want to visit USA?” I loved going on trips, so “sure!”. I should probably do a blog post just on this topic. It’s very common, but when two countries are involved, possession is effectively 99% of the law. Here’s a very interesting article on the topic The Snatchback 

  2. When my mom used to hear me say I’m half American, half German, she would say “which half?” ie, my left or right half… It’s semantics, but I do agree that she had a good point. She preferred “I’m both”

  3. The German army has an ongoing draft. All men must serve in the Army for a year and a half. That’s relaxed a lot and most of the people I know do civil service, AmeriCorp style. I was drafted myself, but I got out of it pretty easily, claiming medical reasons. I did a lot of running at the time and my knees often hurt as a result. They make it pretty easy

  4. It’s actually been 5, but I’m just now getting around to editting and posting this

  5. Her name is actually Michaela and everyone called her Michi. Since my ears are mostly American, I hear it as Mishi and that’s how I addressed her in letters. Eventually, it came to my attention that I’m spelling it wrong, but I continue to spell it this way and she signs her mails to me as Mishi as well

  6. German equivalent of Newsweek or Time

  7. Sheva/שֶׁבַע means seven in Hebrew

  8. they surely already knew he was a great guy, but unless you are in semiconductor engineering, you wouldn’t necessarily know how capable he was

  9. If you don’t get the reference: https://www.youtube.com/watch?v=_Cr0nP3k_p4

  10. somewhat surprising since he’s religious. When I asked why, I joke about the “interviews” or “on the job training”. No, he just thought it’d be an interesting crowd to be around

  11. the person paying is actually more at risk

  12. most Americans take it as a given that the Hispanic they’re paying in cash is not there legally. Hopefully, we’re wrong more often than we think

  13. actually, small ‘l’ libertarian, is likely the better label

  14. I have personally witnessed such behavior myself

  15. not actually true.

  16. My step-dad told me a story of discovering his passport was about to expire. He couldn’t leave the US for a couple days and it cost $200 to get a new one. He was already in the system.

  17. as an American, I still question what business is it of theirs where I live?

  18. To be fair to the INS, the one time I did talk to someone on the phone, she was super helpful, not at all rushed, and told me of several additional questions I should be asking.

  19. Germans go to kindergarten from 3-5 and go to 1st grade from there. Americans would recognize it as pre-K or perhaps just daycare. The training requirements to be a teacher as similar to getting teaching certification

Questions to ask if you’re bored with your job

I left Intel 7 months ago. I took the voluntary separation package that was offered to a majority of the company. I was one of the few that took it. I was surprised how small the number was but I was also already thinking about making some sort of change.

Yesterday, I got an email from a friend asking for my thoughts on the change. He’s getting bored and is weighing his options. I haven’t asked him any follow-up questions but I found that I immediately had a bunch of questions rush into my mind. Enough so, that I decided to do a post on the topic. Note that these are heavily colored by my own opinions and experiences, but hopefully, they are more broadly relevant.

Are you bored or unhappy?

In my case, I was unhappy. I like programming 1. I like EDA2/CAD. I generally like the people I worked with. I miss much of it.

I was unhappy with the large corporate things that I saw happening in my world. Mediocrity was setting in, mostly in the manager ranks. There are small minded people who like wielding control while impeding progress. Clueless people who want to blaze new directions in domains they don’t understand. People who just blindly do as they’re asked. Most critical, the lack of adult supervision to stop or temper these problems.

Did I have to leave to deal with the political stuff? I fear that these problems are more pervasive at Intel. Where, within Intel, could I have gone? The best answer to this is likely to be part of the solution by switching to management.

I was also unhappy with the lack of time to pursue other interests, like my garden, tinkering,… and my kids.

How is your work/life balance?

Did I have to leave Intel to get more free time? I was surprised to discover the answer is no. I was already talking to my GL about reducing my hours to 60%, but such a drastic change is likely not required. As I was preparing to leave, I burned through my remaining vacation time in the form of 3 day weekends. This was more than a 50% improvement. Having Fridays off enabled me to resolve life’s overhead tasks before the weekend, enabling me to more fully enjoy the weekend.

What are you bored with?

This is important because it affects your next steps. In my case, I really like software development. I’m still doing it now in my time off. At the same time, many people get bored with their chosen career. I think I am a little bored with EDA and I’m thinking about either mobile (android) or embedded (Internet of things). Is this truly different? It’s still just for loops and if statements. I’m not bored with programming in general, but the time will come for that too, I imagine.

Years ago, I switched from doing “back end” to “front end”. Instead of physical VLSI issue (placement of wires, estimation of electrical behavior) I worked on the logical/behavioral stuff. In the end, the differences are not that large. It’s still CAD. I think things would have been more drastic, had I taken more time to learn actual design 3

Do you need an immediate job?

Do you have a spouse that can support your family or do you have enough saved at least for semi-retirement? Most of us feel compelled to be employed. 4. There are lots of things I’ve only come to terms with only with time and distance. Once I was gone, I experienced a level of resentment that surprised me. It’s like leaving a romantic relationship. We tell ourselves stories. We also have to be careful not to move to the next girl/boy too quickly.

If you can afford to take some time off, I recommend it as something to consider. I also think it’s important to take this time without looking for something else. Just goof off.

I never goofed off before. I graduated highschool and was in college three months later. After college, I spent the summer doing nothing and came to Intel. Once at Intel, I had two sabbaticals (3 months) and one personal leave (6 weeks). I’ve had a blessed life, but I’ve spent almost none of it wondering what the next step is.

The last 7 months have been spent with the kids, travelling to visit friends and family, projects,… and lots of thoughts about what is next. Small business, be a school teacher 5, android development, another big company, another small company?

What are your possible next steps?

My friend is worried that his skill set is out of date. Ruby, javascript, agile… Is he too old to be hired by someone else.

I think some of these questions reflect the biases of Intel. Intel discriminates based on age 6 but I know that many other companies, especially smaller ones value experience. They expect employees to already know the value of using revision control, nightly builds, regressions, documentation. How to keep yourself out of trouble.

On things like Ruby, how many Ruby jobs are there really out there? Javascript is much more common, but unless you’re looking for a web job, it doesn’t matter. 7

The big question is what job do you want to have and what are the qualifications for it? Where are your curiosities leading you? A job should be more than just a job. It may be available within your current organisation, it may be a career change, or it may not be a job at all.


  1. I continue to chair the SystemRDL committee in my own time

  2. Electronic Design Automation. CAD for semiconductor

  3. for example, I worked with the Haswell team from beginning to end yet I probably know less about it than tomshardware or anandtech. Same holds for Haswell based server and Skylake.

  4. I still feel weird when I tell people I’m not working. Am I retired? I don’t look old enough for that. Am I a poor unemployed soul?

  5. I’m strongly considering becoming a 9th grade math teacher at the local high school

  6. hiring managers must get special approval to hire anyone who is not a recent (18months) college graduate. I have a hard time seeing this as anything other than discrimination. Ironically, it’s also a great time to be an under-represented minority

  7. Javascript is a fun language once you get used to it. In particular, the way that objects are replaced with closures. I wonder how many recent grads really understand how to use that stuff.

Creating audiobooks for your kids with your voice.

When I was a kid I enjoyed my mom’s readings of story books. She was an excellent reader.

Being a working mom, she wasn’t around during the day. Somehow, I came up with the idea of using our tape recorder to record mom’s readings. I have memories of listening to them when she wasn’t home, often as background.

Fast-forward and I’m spending a lot of time reading to my own kids. I thought to myself “how about I create some recordings for them?”

Posted with this blog post is one of the stories I recorded. 1

This is the book:

To encourage others to do the same for their own kids, I’ve created a youtube video with instructions 2 All you need is a voice recorder (for example a recording app for your phone), a PC, and the software Reaper. 3. Although not required, I also recommend running the result through Auphonic to even out the volume and reduce some noise.

How long does it take? Assuming a normal reading of particular story of 10mins:

  • maybe 15mins to record. Whenever I incorrectly read a line, I just read it again
  • maybe 10mins to edit out the bad lines. I edit at 1.5 playback speed (sounding like a chipmunk)
  • another 5 mins of miscellaneous.

If you do something similar, I’d love to hear about it in the comments.


  1. If you’re reading this through the mail list, you’ll probably need to click to the website

  2. again, if you’re reading through the email, you want to come to the site. youtubes seem to be omitted

  3. The may be an audio editing package for the Mac 😉

In my last post, I posted side one 1 of “musik für fans” of the Frankfurter Figuren Theater.

This post doesn’t really add to that other than to include side 2 of the record.

As I wrote before, I haven’t found the record for sale. If it is for sale, I’d be happy to replace the included mp3 with a link to the sales site.

Childhood music part1

When I was about 5 or 6 years old, my kindergarten had a special performance by the Frankfurter Figuren Theater. It was very nice; I remember the evening. This theater group had produced a record “musik für fans” and a signup sheet when around the parents for anyone that wanted a copy.

My mom bought a copy and it may be the most played record in the history of all records anywhere in the universe.

musik_fur_fans_front

musik_fur_fans_back

I was a partial latch key kid. My kindergarten got out at 2 or 3 and I walked home with my friends who lived in the same building. and I was on my own until mom got home at 51 . She always called me at about the time I’d get home and she always ended the conversation with “don’t kill yourself”. 2

While home alone, I usually put on a record or tape and the record by this theater group was the main thing I played. I would venture to say that I listened to this record several times a day, every day for a year or two.

This post includes a recording of side 1 of that record. It’s in German so likely not that entertaining to my normal reader.

This is a record from ~1978 (I can’t find a year on it). I haven’t been able to find it for sale anywhere. If I get a pointer to such a sale link, I’ll be happy to point to that instead of including it.

 


  1. note that this was at age 5 or 6. I was walking with several other kids, but still… I was 5 or 6. Could you imagine that happening today?

  2. I was a curious kid, often playing with my electric lego train. pretty innocuous but she did catch me once jamming one of her knitting needles into the electrical socked. This was in Germany with 220v. needless to say, I survived

Mails to my mentee 4-5

Last year, I volunteered with the mentoring program for MIT undergrads. I was connected with a sophomore studying computer science.

It was actually my second year with the program, but the first go around went nowhere. Last year, I was determined to take the initiative to make it better by sending regular mails on some topic I thought would be useful to him.

number 4

a small one this time. ssh keys. Do you know how to use them and properly setup.
I imagine that even at MIT Athena (is it still called Athena? I’ve got a date tonight. yeah, with Athena) you will have the need to move data from one system to another. Lab for CS, AI lab, or media lab. It’s nice if you don’t have to enter your password all the time. you can setup cron jobs (maybe one of my mails will be on cron), github
ssh, git, rsync, scp, sftp are all super handy once the authentication stuff is out of the say.
ssh keys are possible on windows either using PuTTY or Cygwin (that’s the way I do it)

 

number 5

The other MIT volunteer thing that I do is I’m an admissions interviewer. I’ve interviewed ~40 kids in the last 3 years. 
One of the things that sets some apart is a personal project that goes beyond just doing as you’re told. Everyone does robotics, violin/piano/whatever, tennis/track/baseball/whatever, science research internship, volunteer trip to africa. Sure those things are good experiences are valuable, but as an interviewer, I’m bored by hearing about those things. They say more about the parents and teachers than they do about the kid
So what peaks my interest?
  • the kid that designed a special drive assembly/transmission for their robot. Didn’t just do as the robotics coach told him
  • the kid that has a couple articles in a chess magazine
  • the kid that earned a black belt. requires more sustained involvement than just doing a year of sports.
  • the kid that wrote an IPhone app for Forrest Park. It became the official app for the park. It’s 5000 acres. Central park is 800. http://en.wikipedia.org/wiki/List_of_urban_parks_by_size
  • When I interview people for Intel, most applicants can only talk about coursework. Occasionally, someone has done their own thing. They really stick out.
Imagine an interview that goes like this:
Sure, I went to MIT. I took the relevant classes. You can ask me random bits of trivia from those classes. O(n), recursion, SQL. Fine, I’ll give you answers to those.
But I have this: <then you tell them about some app, program, whatever>.
The top quality employers appreciate drive, excitement, a don’t settle for just coursework, type of attitude.
I encourage you to find such a project. It may be something solo, an already existing open source thing, or perhaps a new collaboration. Something you work on during those inbetween times. IAP, summers,…
you don’t have to wait til graduation to enjoy the rewards of coding.

 

Mails to my mentee #1-3

Last year, I volunteered with the mentoring program run by MIT’s office of minority engineering. I was connected with a sophomore studying computer science.

It was actually my second year with the program, but the first go around went nowhere. Last year, I was determined to take the initiative to make it better by sending regular mails on some topic I thought would be useful to him.

This is the first couple of those:

When I do interviews I always ask the same two questions.

1 write a function that reverses a linked list in place. You should use only a constant amount of extra memory

2 write a function that computes x to the y power. Where y is an into.

That’s it. I’ve only had one person breeze through them. The majority probably only do one.

The second one was taught in 6.001. 6.01?

A friend of mine just switched from Intel to Google. He told me this book is great
http://www.amazon.com/Cracking-Coding-Interview-Programming-Questions/dp/098478280X

Googling, it appears to be available in PDF. Not sure if that’s pirated. Haven’t read it myself

Have a good week

Here’s the second:

When we talked before, I mentioned (I think) that in classes like 6.005 (6.170 in my day), source control is mentioned but not stressed. I feel it’s a critical part of practical programming. To that end, I recommend that you try to do some basic GIT operations on some files. The dotfiles in your unix account would be a good start.

git init

git add .emacs

git add .cshrc

git commit

and so on.

I also recommend these readings:

http://longair.net/blog/2009/04/16/git-fetch-and-merge/

http://stackoverflow.com/questions/21437260/what-does-it-mean-to-fetch-from-a-clone-that-is-not-a-remote

the first couple chapters of this book: http://git-scm.com/book/en/Getting-Started

To augment that:

http://www.joelonsoftware.com/articles/fog0000000043.html

and if all that isn’t enough, I suggest you become comfortable with the diff and patch commands. They have existed since the beginning of unix time (as in when I was a little kid and before) but I only learned to use them maybe 5 years ago. I wish I hadn’t waited that long.

As it happens, many MIT classes expect students to submit problem sets/projects via a GIT push.

 

And a third:

As you make your way through MIT towards a career, I think it’s important to think about how you want to impact the world.
here are some of the people that I admire. Most of them are not programmers, but they have carved out a niche with an approach that can be learned from.
http://www.joelonsoftware.com I agree with everything he’s written. 
this entry is relevant to the stuff I’ve been saying about how I interview: http://www.joelonsoftware.com/articles/ThePerilsofJavaSchools.html
http://paulgraham.com/articles.html In particular, he has good thoughts on starting your own thing (not that I’d know. I’ve always worked for Intel)
http://www.eevblog.com I like the way he expects and appreciates excellence. you can learn a lot about designing stuff.
http://www.theamphour.com/ The guy from eevblog does a podcast with someone else interviewing people doing cool stuff.
https://www.youtube.com/user/w2aew It’s EE stuff but he teaches really well, I think. Can help with 6.002 an 6.003
https://www.youtube.com/user/jeriellsworth I believe she never went to college.
SimonK and timecop are just hackers doing quadcopter type stuff. They were asked to design some stuff:

Going down fashion memory lane

Robie and I have a lot of stuff. Anyone who’s been to our house will agree. As the kids have gotten older, this has really become a problem.

This post starts with some “how to get organized stuff” but the substance comes after and recounts some, hopefully interesting, stories.

On a recent visit to Montana, my mother-in-law mentioned a book that I’d already heard about before:

I responded positively to her when she spoke of it, so she gave me a copy, and on the drive home Robie read it. There are two things from our discussions about it that resonated with me:

  1. Clutter, is usually a matter of having defined homes for everything you own. Not putting things away is often a matter of not having a place to put it.
  2. You should only own things that give you joy. We go through life holding onto a lot of stuff that has little meaning for us. This detracts from the stuff we hold dear.

So instead of building more and more storage, the first step is to get rid of anything we don’t care about and the book recommends starting with clothes. Here’s the process:

  1. put all your clothes and put them into a pile.
  2. pick up each item and decide whether it gives you joy. Whether you wear it regularly doesn’t matter. I have stuff I wear often that doesn’t really match me. I also have stuff that I have that I’ll never wear again, but seeing it makes me smile.
  3. somewhat in contrast to #2, you shouldn’t keep stuff just as a keepsake. Treasure your memories but don’t allow them to clutter your life.

It’s #3 that this post is about.

So I created a big pile (note that this is a queen size bed):

20150901_094912

As I went through it, I found lots of stuff to discard. I also came across a bunch of stuff that made me think, “This makes me think of X”. It brought up nice memories. I had no need to save the item, but I still wanted a way to capture the sentiment.

Below are pictures of the items, mostly shirts, and a recount of each. These are mostly in chronological order.

Back in my MIT days, I liked to wear tank tops. Like many male 20 somethings, I spent a bunch of time lifting weights. I actually did manage to gain some muscle. 1 So I often wore tank tops.

IMG_5705

My junior year, I participated in freshman orientation, which included some community service. Since part of the point of such service is community relations, we all got shirts. This is one of them. After graduation, I used it as a “workin shirt”. Anything that involved grease, paint, or whatever.

IMG_5702

IMG_5703

Most of my career at Intel involved developing/supporting physical design semiconductor CAD tools. In the first year or two, I had the opportunity to go to DAC where I got this ISS shirt.  This shirt is from the company ISS, whose vericheck tool we’d recently started using within Intel. The funny thing about it is that we referred to it as ISS. “Did you run ISS?” We also had internally developed stuff to integrate it. ISSin (convert our data to something the tool accepted). ISS was eventually acquired by Avanti! which was bought by Synopsys and Vericheck morphed into Galaxy.  I’m not really sure what Intel uses now; it’s probably still Galaxy 2.

The DRC comment on the shirt refers the DRaCula tool offered by Mentor (I think it was Mentor). DRC is Design rule checking.

IMG_5696

IMG_5697

This next sweatshirt was given to me by my friend Dorothy, a Wellesley woman I spent a lot of time with. I got it from her for Christmas when she came to visit me and a bunch of other PKT guys after we graduated. Since she was sleeping on my couch, I think she felt obligated to give me something. Either way, I wore it a lot. Note the raggedy sleeves.

IMG_5715

During the 5 years I lived in Silicon Valley, I spent a lot of time “Goin drinkin”, in particular at a dance place called Toons. One of the draws of Toon is their $0.50 10oz beers before 10pm. On many of the nights we’d order 20 of them at 9:55. $10 with a $10 tip. The server wasn’t supposed to do it, and it was through this that I learned the magic of tipping.

On one of the nights that I was there, a local radio station gave away tshirts. Fast forward almost 10 years. I’m working in Oregon talking to my friend/coworker TimJ and he’s wearing the same shirt. Noticing this, I unbutton my collar shirt to reveal my copy. After chatting about it for a minute or two, we decided that we both got our shirts on the same night. Tim spent a bunch of time at Toons as well. Ships passing/dancing in the night.IMG_5709

This sesame street shirt is from my cartoons phase. In addition to this shirt, I also wore a Wiley Coyote hat, an Elmo shirt, and some Winnie the Pooh stuff. The latter spilled over into my friendship/relationship with Rose 3 The funny thing about this phase is that I didn’t really watch the corresponding shows as a kid. I guess I watched some Sesame Street 4. Even now that I have two kids, I don’t know a whole lot about Winne the Pooh.

IMG_5711

For about two years of my time in Mountain View, I was an assistant scoutmaster with a local troop. I learned a lot through this experience:

  • The Stanford BSA council is awesome. The adult training was fantastic. I may have learned more than I ever taught my protoges.
  • I learned to sew patches. I went to the local fabric shop and the sales lady mostly blew me off until she saw that the patches I was trying to sew were scoutmaster ones. 5
  • I learned that the most difficult part of volunteering with kids is dealing with the parents.
  • Most significantly, I found the youth protection training to be really eye opening. Ever since, I’ve always been careful when dealing with kids, especially ones I don’t know. It’s not that there has been anything to hide, but it’s the perceptions that matter. For example, today I never push anyone else’s kid on the swing, unless I know the parents.

IMG_5688

These two shirts were the result of a shopping trip with my friend Emily. Clearly the green shirt got some usage. The orange one also spent a lot of time outside my closet. The thing about it is that I fealt self-conscious about it the first time I wore it. I kept thinking to myself “I’m wearing an orange shirt”, until my coworker Nicole complimented me on it. Today, I probably own more clothes in Orange than any other color. I’m thankful to Emily for expanding my fashion boundaries.

IMG_5694

Shortly after starting work at Intel, they had a blood drive. The MIT red cross people were great at getting people to donate. I basically gave as frequently as the law allowed. (today, the limit is every 56 days.) A couple weeks after my donation, I got a letter from Stanford medical stating that my blood is negative of a common virus CMV. Most adults are positive and a CMV infection is generally no big deal. The main exception is chemo patients and other people with compromised immune systems. I was asked to do platelet/apheresis donations. They put you in a chair, jam a needle in one arm, somehow separate platelets, and return the rest into a needle jammed into the other arm. You sit there for about an hour and a half. They have a nice setup at Stanford; each chair has a tv for watching movies, but most of the time, I just chatted with the nurses who both had sons trying to figure out what to do with their lives. Since I had gone to MIT, and presumably had figured it out, they looked to me for some reassurance.

I did this kind of donation probably 10 or 15 times. It was conveniently located since I was dating Maggie, a Stanford student, at the time. More significant to my memory of these shirts is a comment my friend Linda made. “Stanford blood center. you should wear that shirt to bars. Women will be reassured that you’re safe.”

IMG_5713

This shirt is one I bought in Germany with my sister Jovan. Jovan was probably 12 at the time and her friends shopped a lot at a little place not far from her school. I remember flirting a bit with the shop owner who was about my age, perhaps a bit older. Through most of my life, this wouldn’t have been that memorable, but it coincided with me finally figuring out the dating thing. I was 24 or 25 at the time. It’s a great shirt and I was tempted to start wearing it again.IMG_5687

This shirt was bought for me by a girlfriend, Nurith but it was a shopping excursion with her that I initially associated with it during my cleanup.

Nurith and I were at a GAP store in the closeout section. A sales guy came over to see if I needed help. He was a great salesperson, and most important to this memory, probably gay. After we left the store, Nurith commented, half joking, in a catty accent, “I can’t believe he would stand there checkin out my man, right there in front of me!”

IMG_5698

This next shirt is a reflection of my side stripes phase. In particular, I remember my first Friday evening living in Israel. I put it on, and went to a local restaurant for dinner. I asked the waitress, where the local dance places are 6. There were a couple issues with this:

  • Like Europeans, Isreali dance places don’t open til after midnight. It was 7 when I was asking and was ready to get moving.
  • Even if I did look at the right time, the places aren’t always obvious to find
  • Isreali dance places are for dancing, not picking up.

Eventually, weeks later, I did find some night life but it was rather different from my American experience. Still enjoyable, but different.

IMG_5706

The clothes below were from my Eddie Bauer khaki period. They reflected my dressier side. For about half of my time in Israel, I dated Shlomit and being Israeli, we spent many Friday evenings at her mom’s for dinner with her family. One weekend, while visiting her sister Hani (The H is pronounce like the h in Hanuka), Hani noticed my clothes. Her husband Dror is a banker and she was looking for more casual stuff for him. This was my dressy attire.

I still find that Eddie Bauer fits me best, but it’s not a regular part of the rotation anymore. Khaki is a thing of the past.

IMG_5686

This Hooters shirt was given to me by Kelli when she returned from a wedding in Florida. The funny thing is that the couple getting married was on the religious side. The husband was intending to be a chaplain in the Army. Hooters is probably not a place they go to very often. 7

IMG_5690

This Tommy Hilfiger shirt was purchased for my engagement pictures with Kelli. I think I only wore it once. It’s a great shirt. It fits well and looks good on me. After Kelli and I split from our short (1.5 years) marriage, it felt inappropriate to wear it.

IMG_5699

Being an engineer, I’ve worked with many Indians. Over the years, I’ve heard many accounts of getting custom tailored clothes cheaply in India. I’ve never been to India, but my friend Balaji did offer to help me out. I gave him a shirt I liked (the orange one above, as it happens) and he came back with these three. They are excellent shirts, well made. The problem is that they pinch my shoulders/lower neck a bit. Sorry shirts.IMG_5700

This shirt was given to my by Gyuszi on a trip to Hawaii. Somehow, since I’m probably the only black guy he knows 8 he associates me a little with rap type of culture. Note the slogan at the bottom “in search of booty…”. I see Gyuszi as a dear friend and don’t take any offence at his cultural references.

IMG_5689

I bought this shirt for one of two interviews I’ve ever been on. The first was the one that resulted in me working at Intel. The second was looking to make a possible switch to Autodesk. I didn’t make the change because I didn’t get the job. They said that there were going with an internal candidate, but honestly, I wasn’t very impressive that day. Perhaps I wouldn’t have hired me either. In retrospect, I’m thankful, however. I sense that I would not have gotten along well with the hiring manager. Also, Robie has a cousin that works there 9 and it appears that the company is incredibly conservative and political. I wouldn’t have lasted.

IMG_5693

This Google shirt was given to my by a friend Karthik whose wife works(ed?) there 10. The memorable thing about this shirt is that my second level manager, Avner, asked me about it. I joked “oh, this shirt? I got it when I interviewed with them.” It took him a moment to realize I was joking but the scared look on his face was priceless. 11

IMG_5701

My dept has had a programming contest for a bunch of years. The first year, I managed to get third place with a TCL script. The challenge was to fit a list of rectangles into a minimal circle. Most participants gave C++ based entries. My success with a TCL script shows that the algorithm is more important than language speed. 12. This shirt was my prize.

 

IMG_5707

Some years ago, I went an took a timberframing class. Here are some pictures.IMG_5708

While my mom was born and raised in a small town in Germany, her dad was from Hungary. By sending out a bunch of letters to people with the same last name, she found some folks in Budapest that we suspect are somehow related to us. I got the shirt below on a visit there. Additional pictures here

IMG_5710

A couple years ago, my department at Intel had a group event that I really enjoyed. During the event, I got the shirt below and made the accompanying horse. The stick it’s on is a broom.   IMG_5716

 

So that’s what I have to say about that. I hope you’ve enjoyed.

Here’s the clothes we’re discarding. Mine, Robie’s and the kids’

20150905_202909


  1. I graduated high school weighing 155lbs. At 6.4, that’s not a lot. I finished college 15 or 20lbs more but no taller. Less skinny

  2. I stopped physical design stuff ~8 years ago

  3. I don’t think we ever officially referred to each other as girl/boyfriend, though we behaved it. I met her during a summer that was supposed to be spent with another woman Cathy. After my Cathy experience, I had decided not to do the long distance thing. Rose is/was a wonderful woman and we sent each other Winnie the Pooh shirts.

  4. I remember the first time I came across the Electric Company. I was excited, thinking it would be some geeky show. I was disappointed to discover it was just more Sesame Street

  5. the trick is that you don’t sew through the patches, but rather just pass the needle through the border stitching. The troop moms were impressed when I showed this to the boys. No, I never dated any of the moms.

  6. a part of me was hoping that she’d offered to take me

  7. some years later, I was at a new Hooters in Beaverton. One of the important roles of the servers is to interact more with the customers. It’s not unusual for them to sit at the table with you to chat. Eventually, it came up that our server had just graduated from the same high school as my sister. I was ~30. Years after that, I was at an actual nudey bar and realized “wait, I’m old enough to be the dad of most of the dancers!”. I’m not sure that I’ve been to either type of establishment since.

  8. a very representative sample at that

  9. that’s how I got the interview

  10. Karthik worked for the startup that designed what was to be the A series of processors used in the IPhone

  11. Avner was also the person that hired me into Intel. I worked for him for 4 years and he’s largely the catalyst for me living in Isreal

  12. the quickest way for a programmer to lose credibility with me it to talk about compiler optimizations. I’ve found that too often, folks don’t think about the algorithm they’re using.

My IOT wishlist

I had lunch with an Intel friend recently and we got to talking about how Intel wants to pursue IOT. It’s frustrated me that Intel doesn’t seem to get it in this space. Note that I no longer work for Intel and even when I did, I had no real insight into the parts of Intel that do Galileo, Edison or any of the IOT stuff. I was a large core CPU guy. So this is only me talking.

I wanted to write down my thoughts on IOT. My main points:

  • Intel should make its IOT products the obvious and only first choice for new makers and engineers.
    • It should be SO easy to put together a concept that one would be foolish to start with anything else.
    • IOT is new and there will be many newcomers. Reach participants while they’re “young”
  • IOT devices aren’t desktops and product features should reflect that.
    • Stop referring to media centers as IOT
    • In current offerings, real world interactivity seems to be an afterthought.

Gain a monopoly on first time hackers

We don’t yet what the possibilities are with IOT. As the world is figuring this out, there will be many newcomers. The maker community is exploding. Students, engineers from outside the embedded world, and tinkerers are interested in trying to connect stuff to the web. Intel needs the be the clear best starting point for them. Some of these people will start companies, many will get jobs in companies that want their devices to be connected. If they have positive initial experiences, they’ll need stronger reasons to switch.

The best comparison I can make is to Arduino. It’s easy to install and get started. I bet Atmel sells a lot of parts as a result of Arduino. The Arduino design is easy to modify, it’s easy to reuse code written for Arduino, and you can take Arduino supporting code libraries with you.

IOT is not desktops

When I look at Galileo/Edison I see repackaged desktops. Some examples

  • Analog I/O is tacked on as an afterthought. What is IOT if it’s not interaction with the physical world?
  • Digital I/O is limited to a handful of signals.
  • PCIe is touted as an important feature. Why? Even in your desktop, when was the last time you plugged in a card?

What I would like to see

Support newcomers

I’d like to see Intel employ a handful of people who participate in online maker forums and interact with leaders of the hacker community. Sites that come to mind:

The sole mission of these employees would be to ensure that the online community is well supported. I’m not talking about marketing material, but REAL technical support. This community can be a powerful ally.

Further lower the bar to entry

Arduino is given as an example of easy entry but I don’t think it’s gone far enough. You still need to install stuff on your PC and you still need to write C code.

https://www.particle.io/ has some nice offerings. Blinking a LED 1 is as easy as installing an Android or IOS app 2. You can program their stuff from a web browser.

Why do I have to write C code?

Many IOT devices follow some common patterns:

  • Measure something(s). Temperature, pressure, light levels, position
  • Report status
  • Respond to inputs
  • Provide some configurability

I shouldn’t have to use a low level language like C to program this. Just give me a simple state machine editor:

  • Register input types via libraries that know how to speak to common sensors
  • When this input goes over this threshold go into this other mode/state
  • Periodically log the current state
  • Provide a simple web interface to display current status and configure parameters.

Think about existing IOT stuff.

  • Nest thermostats 3 are just state machines. At this time of day, turn on the furnace when the temp drops below X.
  • Sous Vide machines are just PID temperature controllers.
  • Lego Mind storms is just state machines. For example see here
  • Weather stations record temperature, humidity, wind speed to a log somewhere. Add a fan controller and you have a smart greenhouse.

Change product features

There are some holes in the current products:

  • Make it possible to use Intel parts on 2-layer boards. These are easy to tweak and prototype using Eagle/KiCAD and then manufacture using Seeed or OSHPark
  • Add analog I/O without extra hardware. Arduino/Atmel provides 10-bit resolutions. 12-bit as provided in Particle stuff is better 4
  • It would be nice to directly support resistance measurement.
  • Running a real OS 5 has real benefits. Either ensure that RTOS is supported or add a small micro-controller on the part that behaves independent of the main OS’s timing. CPUs already have this for power management and other purposes. Do you want a piece of farm equipment to run you over because the controller hangs while trying to reconnect to WIFI? CNC control is another application that come to mind.
  • It would be very handy to include a small FPGA. Altera 6 has ARM processors on its parts. It’s a continuum. Some aspects of an embedded design requires the faster timing that only digital logic/FPGA can provide. 7
  • The parts should know how to speak the common digital protocols SPI, I2C and others. A good starting point list can be found here
  • More flexible pin assignments. I suspect this is why Galileo is a 4-layer board

“makers” generally don’t do the big sexy designs like google cars but I’d bet that the google car team has some makers on it. Students also don’t do big designs, but they’ll eventually graduate and get jobs. Prototypes start somewhere and designers won’t want to redo everything as the product evolves.

People are sticky. Designs are sticky. x86 has taught us that.


  1. this is the “Hello World” of embedded

  2. yes, you have to install something, but phone apps are way easier that PC or Linux installs

  3. a startup; didn’t come from an entrenched company

  4. The reason that comes to mind is in reading resistive sensors. The extra circuitry of this post would not be neccessary.

  5. Disregard MS Windows please

  6. AKA Intel

  7. remember that IOT is not desktops.