Do you know what time it is?

For the non-native English speakers: what time it is
I’m thinking about writing an Android app that requires several devices to do something at the same time. They need to be coordinated to within about 1/50 of a second. It’s not important that they do this thing at a particular time. It only matters that whatever time they do, it is the same for all of them.
Here are some of the devices I have laying around the house.
  • Two old Motorola XPRTs (never liked em).
  • A Barnes and Noble Nook HD.
  • An HP Stream 8
  • and a Galaxy S5.
In this picture, all of them are running Digital Alarm Clock. Note that they all show a different time. The devices all do “get time from network”.  Clearly not within 1/50th.
So I tried getting the time from GPS using the app GPS Time. I don’t recommend this app. It crashes every time the phone goes to standby as well as other random time. Still, you can see the times still don’t match. (all the pics are clickable for larger versions). All of the times are different.
Since the app is so unstable, I figured maybe a different app would do better. Perhaps, the inaccuracy is a problem with the app. GPS Status and Tools is much better. (it’s a very nice app; lots of features) Again, all of the times are different, though I think something wasn’t right on the S5. For a while it had trouble connecting with the satelites; that may be because the battery was low.
So I looked around a bit more and came upon several mentions of NTP (network time protocol). Reading about it, it’s specifically intended to give accurate time to computers. The result is very close. The first attempt at photos 1 had only disagreement only in that the Nook is a bit off. When I re-took the pics, I got this one where all the times are different. 2
IMG_4916   One issue I have with using NTP is that it requires an internet connection. I’d like to be immune to that. My next idea (the one I’m likely to go with) is to connect them all through wifi and have them talk to each other. The question is whether there are any elements in the chain that slow things down 3
So I did some experiments using the simple ping command.
  • Pinging from my desktop to my router yields times < 1ms. Great!
  • Pings to my S5 gives values ranging 9ms-100ms. not so good. 9ms was an outlier. 40ms is more common.
  • Pings to Nook are consistently about 4ms. I don’t run nearly as much on the Nook as the S5.
  • On one of the XPRTS, It’s 6ms-200ms. 60ms seems common.
  • The stream 8 usually pings in 3ms.
hmm. not so promising but perhaps an app can mitigate this. ping is likely not the highest priority thing running. According to this article, 1ms is achievable on Java, but it remains to be seen whether it translates to Android’s Java.
That’s as far as I’ve gotten.
What’s the rest of the app going to do? It has to do with SMPTE Timecode. I want to try shooting some multi-angle video; more than one camera at a time and perhaps separate audio. SMPTE Timecode is what the real studios use. It’s a digital encoding of the current time that’s transmitted to each recording device as an audio track. Video editors like Final Cut or Premiere then can automagically align the footage on the timeline using the recorded timecode signal. The problem is that equipment to do this is expensive. Android devices can be found for cheap. Who among us doesn’t have an old phone or two, just sitting in a drawer? There’s is already a timecode app, but it doesn’t include sync between devices. You’d need to distribute the signal from it to each recorder via some sort of transmitter (something you probably don’t have lying around).
Timecode is at a granularity of 30 frames per second (or whatever the video framerate is). Hence the requirement to be within ~1/50th of a second to give a bit of margin.
Kudus, if you’re a less technical reader and you’ve made it to the end.
Do you know what time it is?

  1. taking photos of especially the stream 8 was pretty difficult. The reflections were hard to avoid. The ones I’m posting were mid evening.

  2. At this point I’m only scoping the problem. I haven’t written any code yet. I haven’t even written an Android app yet, but this is the project I want to use to learn.

  3. my assumption is that if I have high latencies, this will limit accuracy. I also assume that accuracy will be no worse than the latency. So if the app keeps trying until it gets one with good turnaround time, it’d just use that.

Why write a blog?

A couple notes to those that read these blog posts via the email list
  • the footnotes I use are much easier to deal with in a webbrowser. you click and it pops up right there.
  • in my last post, I linked to a couple youtube videos that got filtered in the email version.
  • The title of the post is a link to the web post.
 So I’ve restarted my blog. I’m also working on getting a podcast going. Why? It’s a bit presumptuous or narcissistic to do so. Why would anyone care? Is it more than an ego thing? Some time ago, my friend Chris R observed that facebook type activity doesn’t make sense to him. Posting assumes that someone cares. At the same time, he hosts a yearly slideshow1 recapping  his adventures. The three that I have been to have been quite interesting and well attended. It’s easy to convince yourself that you have nothing to offer but at the same time have lots you want to offer. So why do I do blog postings? My main reason is the value I put on sharing. I think it’s a blessing when someone shares something interesting with me. I feel compelled to share what I know. “hey! here’s something cool! Maybe you’ll think it’s cool too.” Another reason is that occasionally 2, I get some sort of feedback that people read what I write or that someone listened to something they overheard me say. My words can be worth eavesdropping on. While at Intel, we were expected to write a regular status report listing the things we’ve done since the last report. It used to be weekly, but in recent years, it’s biweekly. Other groups do it monthly. Just about all of these are boring, boring, boring. We write them only because we are compelled to. This is also true for most of my weeklies, the exception being the “random” section. I’ve mentioned this before in this blog. That’s a portion that I’ve attempted to make useful or interesting. A rant, a thought, a neat work thing I learned recently. There were probably 10 people that I knew always read that one section of this one person’s weekly. I’d regularly get a comment, “hey, I tried the trick and it was helpful”, “don’t get Miles started on X”, where X was something I’d ranted about and I hadn’t talked to that person on that topic. It was nice to get the feedback and it was fulfilling to share what I know. But why would anyone feel self-conscious about spilling ones thoughts to the world? Why wouldn’t the world care? A couple reasons come to mind:
  • we’re taught to be modest. Attempts to share knowledge are often equated to showing off. 3
  • facebook culture seems filled with superficial crap. “hey everyone! I’m drinking a latte”. Some people post several times an hour. I mostly avoid it because it’s so difficult to filter through the drivel to get to the good stuff.
  • twitter 4 limits any posting to 140 characters. Anything worth saying surely requires more than 140 characters. This post, without any edits, already has almost 600 words.
So I appreciate the feedback I get from my “fans”, the people who read my weeklies, or blog posts. The people who tolerated and encouraged my questions or commentary at work meetings. It’s because of the little indicators that someone read to the end. It’s because of the blog comments I get 5 I’ve been reading a philosophy  book recently. I haven’t gotten very far; maybe 50 pages. They way I summarize the important parts of it is by way of analogy: when you finish watching a movie, you probably think to yourself “that was a decent movie”, or perhaps “well that was an hour and a half of my life I won’t get back”. When I get to the end of my life, what will I think? Hopefully, it’ll be “that was a good life, well lived” and not, “what a waste”. I bring it up here, because having something interesting to say tells me that I’m doing OK. I can chitchat on many topics. 6 People seem to find it interesting. I think it’s interesting too, I guess that’s why I know it. The internet (da web) is a wonderful place. I wish it had existed when i was a kid 7 Today, I marvel at the things people have put out there. I’m a youtube  junkie. There are podcasts that I devour. There’s nothing you can’t learn how to do with a bit of googling or perhaps posting a question somewhere. This is my contribution to that. 8  

  1. he’s been doing it since the days that this actually involved slides

  2. sometimes more frequently

  3. perhaps this is an artifact of me growing up in a neighborhood where being smart is something many keep low key. Perhaps it’s just a matter of being a teen, but it’s something that’s stuck with me

  4. which I don’t use, haven’t tried, I don’t even have an account

  5. I’m particularly impressed by one comment I got on this blog after three years of not posting. After all that time, she is still subscribed and still reading. It’s especially flattering given how impressive she is herself.

  6. I’ll often comment on stuff I know nothing about. “I have no idea, but if you’d like, I can make up something based on what I do know”. I try to be honest about the basis/source of the things I say

  7. the first time I even heard of web browsing, I blew it off. That was a year or two out of college, when Mosaic was the only brower, before anyone heard of yahoo, netscape, or even infoseek

  8. makes me think of Eddie Murphy’s joke about Johnny Carson’s wife. “Johnny’s worth $300M. What’s she gonna do, go get a job at a boutique? ‘here honey, now we have 300 million and 50 dollars’”

Almost two weeks unemployed

I’ve been unemployed for almost two weeks now. Loving it so far. What have I been up to?Kids stuff I got to go to my kids’ music class. I had attended one of the early sessions, months ago; this is only my second session. On the same day, I took my daughter, Lydia to swim class, which, though she’s been doing since 4 months of age, I’ve only witnesses 4 or 5 times. She and I will be visiting the local pool a lot this summer which is only 2 or 3 blocks away. I took the kids to the St John’s parade; a local thing. Robie was in the parade with her Poekelon school She’s training for her brown sash, just before black. We went to a Mother’s Day get-together on Sunday. We were there most of the day. Being a Sunday, I would have been able to do this anyway, but it was different because I didn’t feel anything else pulling at me. I could just enjoy it. I took Lydia to her “Little Monkeys” class at Robie’s Poekelon school There’s another dad on the block that’s a stay at home dad. We met at the park down the street. All kids stuff I hadn’t been privy to before. Oh, and I got the go ahead from Robie to get the old “snip snip”, so workin on that. 1 Garden stuff Much of my free time has been spent in the garden. Since I’ll be at home more, I going to cut my own grass. The gardener we had was mostly great… but here and there something I planted disappeared 2. So Lydia and I went to get a lawnmower, albeit a smaller walk behind model Going for a test drive Last year, I did some hydroponic experiments inspired by this video:
That was very successful for me for growing basil. This year, I’m doing more of that My Kratky Beds I’m also expanding it to include tomatoes 3 based on videos from the same guy’s videos, including this one:
Here’s a row of Dutch buckets I had already setup before leaving Intel: Dutch buckets 1 Here’s a newer row I did last week. The pipe on top of the fence is strawberries: Dutch buckets 2 For my more traditional beds, I planted a bunch of Leeks, some flowers, beets, and yet more tomatoes. I also setup a way to water them more easily which my friend Scott turned me onto. The white pipes have 1/16″ holes drilled into them about every 4 inches. They all connect to the bucket. I have 4 other similar beds IMG_4811 On the topics of “Tomatoes”, I’ve had this thought related to Guerrilla Gardening. I think it would be awesome to get a bunch of MJ seeds 4, do some starts and then plant them around town. I wonder how they would do. It’ll be legal in Oregon soon. Turn it into a true weed. Technical stuff I continue to chair the SystemRDL committee. I did this for Intel, but I can continue as an Allied Member of Accellera. Since we’ll be releasing hopefully this year, it’d be a shame to stop now. I’ve enjoyed working with this group. Generally speaking, the meetings are more productive than most of the Intel meetings I attended. It’s nice to work with such knowledgeable folks 5 I am researching some sort of mobile computing solution. For years, I’ve had an Intel issued laptop 6. There are so many choices. I really just need something basic, like a chromebook or a really low end laptop. I have a desktop that works well where I can do heavy stuff like lightroom and video editing. I’ve tried using the HP Stream 8 that was given to everyone for the winter holidays. It mostly works but doesn’t have enough memory for some stuff 7 Let me know if you have an opinion on this. 8 My current setup includes an Atom based FreeNAS box for storage. It contains two parallel drives for some redundancy. 9 My main desktop machine is a Sandybridge based Ubuntu box running VirtualBox with Win7 in it. This has worked very nicely for me, especially compared to dual-boot. I’ve installed ZFS on Linux to enable me to move the storage drives into this machine. I haven’t moved them yet, but I’m thinking I can use a portion of the new SSD drive I bought to speed up access to these files 10. I’ve also ordered another 16GB of RAM to augment the 8GB I have now. 11 I’ve really liked running Ubuntu Linux at home over the last couple years. The only reason I have windows at all:
  • I haven’t taken the time to give Robie a quick start on linux. I’m sure she’d be fine with it.
  • Adobe Lightroom. While there are a number of things I really don’t like about it, I isn’t a good alternative.
  • Sony Movie Studio 12. I’m not aware of a good video editting application for Linux.
I have several project ideas I want to pursue, but haven’t done anything yet.        

  1. TMI?

  2. not stolen, just weeded away

  3. not to be confused with “Tomatoes” ”

  4. anyone got any?

  5. especially compared to some at Intel, who think they know what they’re talking about. The ones who blow off my advice or predictions of coming problems and then are surprised when those predictions come true. The same folks who insist on going off in bold new directions while understaffed on the current needs they know what they’re talking about. The ones who blow off my advice or predictions of coming problems and then are surprised when those predictions come true. The same folks who insist on going off in bold new directions while understaffed on the current needs

  6. ever since laptops existed

  7. for example, I’ve discovered that editing a google docs document can get pretty slow when the doc is ~100 pages.

  8. Apple products are right out

  9. I picked FreeNAS because the ZFS file system that it uses has some appealing features. The main feature is that it can scrub the files and not just the file structure. In retrospect, I wonder if it really makes a difference for me to offset the hassle. There’s one reader of this blog who knows a lot on this topic. Perhaps she’ll comment with some interesting opinions. FreeNAS is FreeBSD based which, while very similar to Ubuntu, has some differences that would require some time by me to get used to.

  10. SSD caching is another ZFS feature, thought Ubuntu’s LVM has this as well

  11. I effectively have only 4GB right now since virtualbox is usually holding onto its allocation

  12. I don’t use Premiere Elements because it’s overly dumb’d down compared to the full application. Movie studio is just like the pro version except some features are missing, features that sadly I’m starting to want. Like multi-cam editting

Would it kill me to be a manager?

This is actually my second writing of this post. Sadly, I had my first version basically ready to go when I clicked on “Save draft”, something happened and an hour of writing disappeared. Hopefully, my annoyance from that won’t translate into a grumpy or incoherent second try.This post will contain two parts. First I’ll be a bit critical of my recent work environment. While I do believe my criticisms are valid, I think my response may have been wrong. That’s part two. In a nutshell, technical direction is decided and influenced by the managers and individual contributors are left out. Not what I would have liked. On the other hand, would it have killed me to be a manager? On the contrary, there are large aspects of it that I would have enjoyed. My criticisms:
  • In recent times, my group has embarked on some grand directions while missing some necessary technical nuance 1. The ideas are sound, but there were some aspects that could have been done better:
    • We tried to do everything at once. This meant that several of us were spinning our wheels while the more preliminary dust was settling. Dust we depended on.
    • We didn’t have the needed connections between the people in the trenches. The folks implementing the changes didn’t know the folks receiving the work. This continues to be too true today.
    • Given our role helping projects tapeout chips 2, there are aspects that don’t seem necessary. At the same time, the reported successes were often fantasy.
  • Policy is decided by the managers. That’s where the discussion happens. Having a single direct report earns one a seat in the room during these discussions.
  • The chosen directions weren’t communicated very effectively. 3
  • There are resources available only to managers. One example that comes to mind is “FLM Days”. 4 I’ve gotten multiple reports that much of what happens during these seminars is quite interesting. The relevant learnings are supposed to be passed down, but this often doesn’t happen. 5
  • In the last couple years, there are two people that were surely two, possible three grades junior to me. 6. They are managers so they got to help decide. I didn’t.
So why didn’t I just become a manager? Would I have given up everything I’ve loved about the job? Surely, I would have gotten the opportunity had I asked. 7 Reasons I’d have enjoyed it:
  • I like teaching. 8
  • I enjoy mentoring. I’ve been around for a while. I like sharing my experiences. Anyone who knows me, doesn’t come to me with a question if all they want is a two minute answer. I prefer to answer as completely as I can.
  • I like participating in the policy discussions. I’m good at questioning the status quo, at questioning assumptions.
  • I could have help improved communication 9
So why didn’t I? The biggest reason is probably that management is viewed as “The Dark Side” by those of us who really love the technical part of the job. Management tends not to include the wiz programmers. If you can’t do,… coach.  Is this a valid reason to not do something? It shouldn’t be. If someone refuses to wear a particular pair of jeans because it’s not the right brand, they’d be viewed a pretentious. Is this different? Still, this is a trap I allowed myself to fall into. I really enjoy coding. I enjoy problem solving. I didn’t want to lose that. Early in my career 10 I observed a couple managers who actually were very good technically. The problem with them was that they were unable to balance their individual deliverables with the needs of the people reporting to them. Being a manager can mean getting less done overall. I basically rejected the idea of management without giving it fair consideration.

  1. I am, of course, limited in how much detail I can include. Hopefully I’m not so vague it’s just gibberish

  2. Some in my dept often forget this part. We’re not Cadence/Synopsys/Mentor. EDA is not our primary job. We exist only to help Intel design chips. It’s not the same

  3. Perhaps I wasn’t listening. Maybe communication was fine and my vision was simply something different

  4. First Line Manager

  5. If you’re part of the process, many things start to feel obvious. It may not occur to you that something needs passing along.

  6. These individuals are quite capable. I have enjoyed working with them. Still, experience has some value. I don’t actually know what grade they are/were, but given their ages, I think I have a good guess.

  7. I actually was a manager, years ago, of two people for about 6 months. I don’t know that it was a positive experience for them. I had a hard time balancing aggressive goals with the patience required to help them to meet these goals. Still, I think it’s a job I could do well.

  8. One of my aspirations is to become a high school math teacher. I worry about the prospect of managing 30 teenagers. What I don’t worry about is whether I can help them understand. I’ve spent a fair amount of time tutoring young people in preparing to take the SAT. I got a lot of positive feedback through that.

  9. Or perhaps nudge the vision more in the direction of my vision

  10. which is not over. I have a couple projects I want to work on in the coming months