I joined the Office of the CTO at Microsoft just over two years ago. I was a ‘founding member’ as Kevin Scott was a new CTO for Microsoft. I have now moved on to another job, in a different CTO Office (Mark Russinovich in Azure).
I noticed one thing while I was in OCTO, I essentially stopped blogging. Why was that? Well, probably the main reason is the fact that when your in that particular office, you’re privy to all sorts of stuff, most of it very private, either to Microsoft, or other partners in the industry. Not really the kind of stuff you want to write about in a loud way. My colleague Mat Velosso managed to maintain a public voice while in the office, but I didn’t find I could do it. Now as it turns out, my new job is all about having a voice, and helping to make Engineering at Microsoft that much better.
But, before I get into all that, I want to reflect on tech.
I’m in my home office, and I’m looking around at all this clutter. I’ve got SD Cards that are 8Gb sitting around with who knows what on them. I’ve got motherboards sitting openly on my bench. I’ve got more single board computers than you can shake a stick it. Various bits and bobs, outdated tech books, mice and keyboards galore, laptops that have been long since abandoned, and 5 23″ LCD displays sitting on the floor.
That’s just in my office. My other cave has similar amounts of computers, displays, tvs, and other tech leavings from the past 10 years of hobbying around, trying to stay current. What to do?
Well, donate all that can to good places. Don’t give working displays to PC recycle, they’ll just tear them apart. Find a school, non-profit, deserving person. Then, all those Raspberry Pi versions you never took out of their boxes, send them to the PC recycler, or give them to a school. If there’s one thing I’ve learned about single board computers, if you don’t actually have an immediate use for them, they’re not worth buying.
Books, to the library, or if you have a local “Half Price Books” maybe you can get some money back. More than likely, if they’re older than 5 years, they’re headed to the compost pile.
I have saved one set of PS/2 style keyboard/mouse, because, they’re actually useful.
I want to reconfigure my office. Now that 4K UHD monitor/tvs are $250, it makes sense to purchase them as decorations for a room. A couple of those 55″ versions up on the walls gives me connectivity for any computers, as well as an ability to do things like use them as a false window. I need more workspace. My current configuration is sets of drawers, which hide who knows what, and counter top which is too narrow, and book shelves, which can’t hold very much weight. So, out it goes, and in come the wire rack shelving units, 24″ deep.
Copy off all the stuff from those random SD cards, and throw away the ones that are less than 32Gb, because you know you’ll lose them before you ever use them again, and you’ll always be wondering what’s on them. Digitize those photo albums, use one of your many SBCs to setup a NAS, and copy everything there, and backup to a cloud service
For me, new job, new tech, new office space. time to blab and share again.
Dr. Martin Luther King Junior was assassinated April 4th, 1968. That was 51 years ago today. In order to commemorate his passing, I penned the following and shared it with my coworkers at Microsoft.
On this very important day in history, I am contemplative. As we consider the importance of naming our ERG, I am reflective upon how we got here.
I was only 4 years old on that fateful day when “they killed Martin!”, so I don’t remember much, other than adults crying, smoking, drinking, talking adult talk, nervous wringing of hands, and us kids playing outside.
In my tech career of roughly 35 years, I’ve often been “the only…”. It’s been an interesting walk. In most recent years, as I become more Yoda and less Samuel Jackson, I have contemplated these things:
Would I have died fighting rather than be put on the ship
Would I have jumped into the ocean rather than be taken
Would I have fought back upon first being whipped, choosing pride and honor over subjugation
Would I have had the bravery to run away
Would I have had the bravery to help those who ran away
Would I have had the courage to learn to read
Would I have had the strength to send my children to school
Would I have had the strength to drink from the water fountain not meant for me
Would I have had the courage to simply sit
Would I have had the tenacity to face the smoke bombs, water cannons and dogs
Would I have had the conviction to carry on a struggle, long after my inspirational leader was lost…
And here I sit today, and I contemplate. Will I recognize my calling? Will I recognize my civil rights moment? Will I be able to throw off my golden handcuffs and do what’s right?
If we collectively think “Black” means anything, we collectively can’t ignore the passing of this particular day. I encourage us all to reflect on who we are, where we come from, and where we intend to go in the future.
Here it is, the first video that I’ve done related to LEAP:
So, my kids wanted to buy me a large teddy bear for my birthday. There so happened to be one at the local Safeway, but it was $75. The last time we bought a giant stuffed thing, it was a giant dog from Costco. I don’t remember the price, but I thought, Costco, it’s got to be cheaper…
We went down to Costco, but I we haven’t had a membership there for years. Time to renew. One thing led to another, and rather than the simple run of the mill membership, I allowed myself to be talked into the “Executive” membership, which ‘gives’ you a credit card, and a $60 cash back card (offsetting the extra expense of the super membership). Well, how bad could it be. I went from having really no credit cards last year, to having 4 of them today. That must be good for credit worthiness right? At any rate, I finally got the card, and thought, hay, I might as well read all the fine print.
The first thing that came in the mail was the “Account approval notice”. This one is interesting because it’s basically just the “congratulations, you’re approved for a card, it will be coming in the mail shortly”. It does list the credit limit, the outrageous interest rates, and down at the bottom, below the fold, “Personalize your PIN”. Aha! This normally discarded little piece of paper is the one that has the credit card PIN, which most people don’t know. For an ATM card, you always know the PIN because without it, you basically can’t use it. But, your credit card PIN? I don’t usually know that, and why? Because I’m not looking for it, and I usually throw away this intro piece of paper. Well, now I know, and I’ll try to keep track of this radom 4 digits.
Next up, the giant new card package. This is the set of papers which include the terms and conditions in minute detail. This shows the 29% rate you’ll be charged whenever you do anything wrong (like not pay your bill on time), as well as the ‘arbitration’ clause, which ensures you never sue them whenever they do something wrong. One small piece of paper in this set says “FACTS” at the top of it.
The FACTS sheet. This piece of paper tells me about the many ways in which they’re going to use the information they gather on me to market to me. Not only the company itself, but their affiliates, and even non-affiliates (basically anyone who wants the data). This is normally a throw away piece as well, but this time I decided to read the fine print. What I found was one section titled “To limit our sharing”. Well, that sounds good. Call a phone number, go through some live menu choices, and there you have it, you’ve limited the usage of this data. All you can do is limit the affiliate usage of your data, but it’s something. I even chose the option to have them send me a piece of paper indicating the choices that I made.
I feel really proud of myself. I normally ignore most of the stuff that comes from credit card companies, as most of it is marketing trying to sign me up for more credit cards, or point systems, or whatever. This time, I really dug in, and caught some interesting details. I’m curious to see how the “don’t market to me” thing works out. Of course, once you click off that checkbox, they probably simply sell your info off to someone else to harvest. I feel like that’s what happens when you unsubscribe from an email list as well, but I can’t prove it.
At any rate, I learned something new today. Read some of the fine print, try out a little something you haven’t in the past, and go on an adventure!
My birthday is coming up in November, and just today I was clicking through one of those web sites that says “45 discounts seniors can enjoy”. I’ve been doing “computing” in one form or another since I was about 10 years old, and I’m about to be 53. If I can do the math, that’s been a very long time. Looking back on my earlier years, I recognize a cocky genius of a software engineering talent (if I do say so myself). In more recent years, it hasn’t been about an ability to sling code hard and fast, but rather reflecting upon years of developing various kinds of systems to come up with non-obvious solutions faster than I would have otherwise.
Aging in tech typically means sliding slowly into a management position, slowly losing your tech chops, and mostly riding herd over the young guns that are coming up through the ranks. I’ve taken a slightly different path over the past few years. I did manage the cats who created some very interesting tech for Microsoft: XML, LINQ, ACS/Service Bus, Application Gateway, but more recently I found myself writing actual code myself, while inventing new ways to hire for diversity (http:/aka.ms/leapit). It is this latter initiative that I find very fascinating and invigorating as I age in tech.
The premise of the LEAP program is that ‘tech’ broadly speaking, has advanced enough in terms of complexity, that some things are now easier to achieve than they might have been 10 – 15 years ago. The kinds of “programming” that we’re doing is changing. Whereas 15 years ago, having the skills to debug windows kernel was a great thing to look for, today, being able to do a mash up with they myriad web frameworks that are available is most interesting. Knowing R or machine learning tools is increasingly important. Those kernel debug skills, not so much.
But still, there’s need for old codgers to apply themselves in ever creative ways. I look out onto the tech landscape, and I see myriad opportunities. I see the continent of Africa sitting there, daring us to capture it and harvest the energy and greatness that awaits. I see urban environments across the US, who are all consumers of tech, and can be turned into creators of tech just as easily. I see AI applications that can be applied to our ever burgeoning populations of elder folks, robots, AI, automation of various forms. As an older technologist, rather than going softly into that good night, lamenting the loss of my lightning quick programming skills, I see opportunity to leverage what I’ve learned over the years to identity opportunities, and marshal teams of engineers to go after them, adding guidance and experience where necessary, but otherwise just getting out of the way so the energetic engineers can do their thing.
I may or may not be able to pass a typical tech interview screen these days, but I’m more concerned with changing how we interview for tech roles in the first place. I’m more likely to identify how to incorporate the views of youth, the elderly, the farmer, the street performer, into the evolution of tech offerings to make their lives better. I’m more likely to, without fear, create a tech start up with a clear purpose, and the financial support necessary to see it through its early rounds.
Aging in tech can be a harrowing experience. In some cases we age out of certain roles, but with some foresight and thoughtfulness, we leverage our years of experience to do ever greatly impacting things, while avoiding merely being surpassed by our up and coming peers.
So, as I age in tech, I’m looking forward to the discounts that are coming when I reach 55. I’m looking forward to the seniors menu at Denny’s. I’m looking forward to being able to think of anything I can imagine, and actually turn it into something that is helpful to society.
Aging in tech is something that happens to everyone, from the first line of code you write, to the last breath you take. I’ve thoroughly enjoyed the journey thus far, and am looking forward to many more years to come.
For the past few years, I’ve had this HP Photosmart printer. It’s served me well, with nary a problem. Recently, I needed to replace ink, so I spent the usual $60+ to replace all the cartridges, and then it didn’t work…
An endless cycle of “check the ink” ensued, at which point I thought, OK, I can buy some more cartridges, rinse, repeat, or I can buy another printer. This is the problem with printers these days. Since all the money is made on the consumables, buying a new printer is anywhere from a rebated ‘free’, to a few hundred dollars. Even laser printers, which used to cost $10,000 when Apple came out with their first one back in the day, are a measly $300 for a color laser!
So, I did some research. In the end I decided on the HP MFP M277dw.
It’s a pretty little beast. It came with an installation CD, which is normal for such things. But, since my machine doesn’t have a CD/DVD/BFD player in it, I installed software from their website instead.
It’s not often that I install hardware in my machine, so it’s a remarkable event. It’s kind of like those passwords you only have to use once a year. You’ll naturally try to follow the most expedient path. So, I download and install the HP installer appropriate for this device and my OS. No MD5 checksum available, so I just trust that the download from HP (at least over HTTPS) is good. But, these days, any compromise to that software is probably deep in the firmware of the printer already.
The screens are typical, a list of actions that are going to occur by default. These include automatic update, customer feedback, and some other things that don’t sound that interesting to the core functioning of my printer. The choice to turn these options off are hidden behind a blue colored link at the bottom of the screen. Quite unobtrusive, and if I’m color blind, I won’t even notice it. It’s not a button, just some blue text. So, I click the text, which turns on some check boxes, which I can check to turn off various features.
So, further with the installation, “Do I want HP Connect?” Well, I don’t know, I don’t know what that is. So, I leave that checked. Things rumble along, and a couple of test print pages are printed. One says: “Congratulations!” and proceeds to give me the details on how I can send email to my printer for printing from anywhere on the planet! Well, that’s not what I want, and I’m sure involves having the printer talk to service out in the internet looking for print requests, or worse, it’s installed a reverse proxy on my network, punching a vulnerability hole in the same. It just so happens a web page for printer configuration shows up as well, and I figure out how to turn that particular feature off. But what else did it do.
Up pops a dialog window telling me it would like to authenticate my cartridges, giving me untold riches in the process. Just another attempt to get more information on my printer, my machines, and my usage. I just close that window, and away we go.
I’m thinking, I’m a Microsoft employee. I’ve been around computers my entire life. I probably upgrade things more than the average user. I know hardware, identity, security, networking, and the like. I’m at least an “experienced” user. It baffles me to think of how a ‘less experienced’ user would deal with this whole situation. Most likely, they’d go with the defaults, just clicking “OK” when required to get the darned thing running. In so doing, they’d be giving away a lot more information than they think, and exposing their machine to a lot more outside vulnerabilities than they’d care to think about. There’s got to be a better way.
Ideally, I think I’d have a ‘home’ computer, like ‘Jarvis’ for Tony Stark. This is a home AI that knows about me, my family, our habits and concerns. When I want to install a new piece of kit in the house, I should just be able to put that thing on the network, and Jarvis will take care of the rest, negotiating with the printer and manufacturer to get basic drivers installed where appropriate, and only sharing what personal information I want shared, based on knowing my habits and desires. This sort of digital assistant is needed even more by the elderly, who are awash in technology that’s rapidly escaping their grasp. Heck, forget the elderly, even average computer users who’s interaction with a ‘computer’ extends to their cell phones, tablets, and console gaming rigs, this stuff is just not getting any easier.
So, more than just hope, this lesson in hardware installation reminds me that the future of computing doesn’t always lie in the shiny new stuff. Sometimes it’s just about making the mundane work in an easier, more secure fashion.
So, I’ve written quite a lot about computicles over the past few years. In most of those articles, I’m talking about the software implementation of tiny units of computation. The idea for computicles stems from a conversation I had with my daughter circa 2007 in which I was laying out a grand vision of the world where units of computation would be really small, fit in your hand sized, and be able to connect and do stuff fairly easily. That was my envisioning of ubiquitous computing. And so, yesterday, I received the latest creation from HardKernel, the Odroid HC1 (HC – Home Cloud).
Hardkernel is a funny company. I’ve been buying at least one of everything they’ve made in the past 5 years or so. They essentially make single board computers in the “credit card” form factor. What you see in the picture is the HC1, with an attached SSD of 120Gb. The SSD is 2.5″ standard, so that gives you a sense of the size of the thing. The black is aluminum, and it’s the heat sink for the unit.
The computer bit of it is essentially a reworked Odroid XU4, which all by itself is quite a strong computer in this category. Think Raspberry Pi, but 4 or 5 times stronger. The HC1 has a single Sata connector to slot in whatever hard storage you choose. No extra ribbon cables or anything like that. The XU4 itself can run variants of Linux, as well as Android. The uSD card sticking out the right side provides the OS. In this particular case I’m using OMV (Open Media Vault), because I wanted to try the unit out as a NAS in my home office.
One of the nice things about the HC1 is that it’s stackable. So, I can see piling up 3 or 4 of these to run my local server needs. Of course, when you compare to the giant beefy 64-bit super server that I’m currently typing at, these toy droids give it very little competition in the way of absolute compute power. They even did an analysis of bitcoin mining and determined a number of years it would take to get a return on their investment. But, computing, and computicles aren’t about absolute concentrated power. Rather, they are about distributed processing.
Right now I have a Synology, probably the equivalent of today’s DS1517. That thing has RAID up the wazoo, redundant power, multiple nics, and it’s just a reliable workhorse that just won’t quit, so far. The base price starts at $799, before you actually start adding storage media. The HC1 starts at $49. Of course there’s no real comparison in terms of reliability, redundancy, and the like, or is there?
Each HC1 can hold a single disk. You can throw on whatever size and variety you like. This first one has a Samsung SSD that’s a couple years old, at 120Gb. These days you can get 250Gb for $90. You can go up to 4TB with an SSD, but that’s more like a $1600 proposition. So, I’d be sticking with the low end. That makes a reasonable storage computicle roughly $150.
You could of course skip the SSD or HDD and just stick a largish USB thumb drive, or 128Gb uSD for $65, but the speed on that interface isn’t going to be nearly as fast as the Sata III interface the HC1 is sporting. So, great for a small time use, but for relatively constant streaming and download, the SSD solutions, and even HDD solutions will be more robust.
So, what’s the use case? Well, besides the pure geekery of the thing, I’m trying to imagine more appliance like usage. I’m imagining what it looks like to have several of these placed throughout the house. Maybe one is configured as a YouTube downloader, and that’s all it does all the time, shunting to the larger Synology every once in a while.
How about video streaming? Right now that’s served up by the Synology running a Plex server, which is great for most clients, but sometimes, it’s just plain slow, particularly when it comes to converting video clips from ancient cameras and cell phones. Having one HC1 dedicated to the task of converting clips to various formats that are known to be used in our house would be good. Also, maybe serving up the video itself? The OMV comes with a minidlna server, which works well with almost all the viewing kit we have. But, do we really have any hiccups when it comes to video streaming from the Synology? Not enough to worry about, but still.
Maybe it’s about multiple redundant distributed RAID. With 5 – 10 of these spread throughout the house, each one could fail in time, be replaced, and nothing would be the wiser. I could load each with a couple of terabytes, and configure some form of pleasant redudancy across them and be very happy. But, then there’s the cloud. I actually do feel somewhat reassured having the ability to backup somewhere else. As recent flooding in Texas shows, as well as wildfires, no matter how much redundancy you have locally, it’s local.
Then there’s compute. Like I said, a single beefy x64 machine with a decent GPU is going to smoke any single one of these. Likewise if you have a small cluster of these. But, that doesn’t mean it’s not useful. Odroid boards are ARM based, which makes them inherently low power consumption compared to their intel counterparts. If I’ve have some relatively light loads that are trivially parallelizable, then having a cluster of a few of these might make some sense. Again with the ubiquitous computing, if I want to have the Star Trek style “computer, where’s my son”, or “turn on the lights in the garage”, without having to send my voice to the cloud constantly, then performing operations such as speech recognition on a little cluster might be interesting.
The long and short of it is that having a compute/storage module in the $150 range makes for some interesting thinking. It’s surely not the only storage option in this range, but the combination of darned good hardware, tons of software support, low price and easy assembly, gives me pause to consider the possibilities. Perhaps the hardware has finally caught up to the software, and I can start realizing computicles in physical as well as soft form.