Microsoft, the Musical?

Well, it was primarily driven by Microsoft summer 2019 interns

I saw reference to this while browsing through some Teams channels, and I thought, Oh, ok, one of those shaky cell phone productions, let’s see…

Oh boy was I wrong. This is full on “ready for broadway” style musical entertainment. My takeaways: We have cool interns, look at that diverse bunch, they can sing, they can produce, they did this as a passion project while still maintaining their day jobs…

I’ve never been a corporate apologist, and I’ve poked the bear in the eye more times than I’ve stroked it, but this made me feel really happy. I was entertained, and proud that the company I work for can show such fun and mirth, while doing a tong-in-cheek sendup. Tech is supposed to be fun, and this was fun.

I’m sure other companies will follow suit in years to come, or they already do this at other companies, and I just haven’t see it.

Watching this was a well spent 10 minutes to start my week.


Did I really need 3 desktops?

It’s been about 3 years since I built a monster of a desktop machine with water cooling, fans, LEDs and all that. Long time readers will remember the disastrous outcome of that adventure as the liquid leaked, drown my electronics, and caused me to essentially abandon the thing. I somewhat recovered from the fiasco by purchasing a new motherboard, and trying to limp along with various of the components from that original build. Recently, I decided to throw in the towel and start from scratch. This time around, I decided to go with an AMD build, because AMD seems to be doing some good stuff with their Ryzen and beyond chippery. So, I put together a rig around a Ryzen 7, 32Gb RAM, same old nVidia 1060 video card. Upgraded the SSD to the latest Samsung 980? or whatever it is.

That system was acting a bit flakey, to the point I thought it was defective, so I built another one, this time with Ryzen 5, and nothing from the old builds. New power supply, SSD, RAM, video card. That one worked, and it turns out the Ryzen 7 based system worked as well. Turns out it only needed a bios update to deal with networking not handling the sleep state of Windows 10.

So, now I have two working desktop machines. But wait, the second motherboard from the previous disastrous PC build probably still works? Maybe it just needs new power supply and other components and I can resurrect it? And hay, how about that Athlon system sitting over there? That was my daily driver since 2010, until I decided to build the intel water cooled disaster. I think that machine will make for a good build for the workshop in the garage. I need something out there to run the CNC machine, or at least play some content when I’m out there.

I did finally decommission one machine. The Shuttle PC I built with my daughter circa 2005 finally gave up the ghost. Tried to start it, and the 2Tb hard drive just clicks… Too bad. That machine was quite a workhorse when it came to archiving DVDs and other disks over the years. May it rest in peace.

There was one bit of surgery I did on an old Laptop. I had a ThinkPad X1 Carbon from work which succumbed to the elements last year some time. I had tech support take the ssd out of it so I could transfer to somewhere else. Given the machine is about 4+ years old, it wasn’t as simple as it being an nvme SSD. Oh no, it was some special sort of thing which required quite a lot of searching about to find an appropriate adapter. I finally found it, and plugged the SSD into it, then plugged that into an external enclosure, then to USB 3.0, and finally got the old stuff off of it! So, now I have this awesome adapter card that I could only use once, awaiting the next old X1 Carbon someone needs to backup.

All ramblings aside, I’ve recently been engaged in writing some code related to parsing. Two bits in particular, gcode parsing, json streaming parser, are bits that I’ll be writing about.

And so it goes.


As the Tech Turns

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.


Commemorating MLK’s Passing

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.


My First LEAP Video

Here it is, the first video that I’ve done related to LEAP:


Have Computicles Arrived?

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).

20170902_072503

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.


Technical Advisor in the office of the CTO

So, I received an email a few weeks back which essentially said “would you consider a role working for the CTO as a Technical Advisor”.  Well, at first, I wasn’t sure what to think, but then I actually talked to who was asking me the question, and I thought, “wait a minute, this could be a really cool thing”.

It’s like this.  At Microsoft, we don’t always have a person in the role of CTO.  Bill Gates was “Chief Scientist” at one point, and Craig Mundie I think had the CTO role, as did Ray Ozzie.  Sometimes it works, sometimes it’s a distraction.

The current CTO is Kevin Scott, and before I actually met him, the #1 comment everyone said about him was “he’s a really cool guy”.  Well, after meeting him, I have the same sentiment.  Kevin’s not an industry luminary from the birth days of the personal computing industry like Ray Ozzie was, he’s an engineer’s engineer with a pedigree that extends through Google, a startup adMob, and LinkedIn, where he continues to be responsible for their backend stuff.

I’ve been at Microsoft for 18 years, which means I’ve done a fair number of things, and I know a fair number of people.  The first aspect of being a TA is getting around, meeting with people, and spreading the word that there’s actually a CTO.

What does the CTO do?  Well, the best description I can give is the CTO acts as the dev manager/architect for the company.  The scope and responsibility of the CTO can be very broad.  Part of it is about efficiency of our joint engineering objectives.  Part of it is making sure we’re marching to the beat of a similar drummer.  Can you imagine, Microsoft has a few multi-billion dollar businesses, led by business managers who are fairly autonomous, and have quite strong independent personalities, or they would not be in the positions they are in.  And along comes the CTO to help unify them.

Really, the job is being fairly impartial where necessary, and just reminding people of their shared goals and objectives, and helping them to reinforce achieving them.

Being a TA to the CTO?  Mostly it’s about going deep in areas.  Kevin Scott is a fast learner, fully capable of digesting tons of info, and fabricating a well informed opinion on his own.  The challenge is one of time.  Microsoft is vast, and if you want to go beyond the surface level in many areas, you’d spend all your time in meetings, and not actually be able to synthesize anything.  So, the TA role.  We have those infinite number of meetings, going deep on multiple topics, synthesizing to a certain level, and surfacing interesting bits to Kevin where decisions and direction might be required.

The the surface description of the role and responsibility.  The truth is, it’s not at all a well defined role.  Eric Rudder was Bill Gate’s TA, for five years, and he was quite a force, doing more than just feeding Bill Gates opinions on what he heard in the company.  We’ll see what our current office of the CTO is capable of, and what kinds of value we are going to impart on the company.

I am excited for this latest opportunity.  I think it’s a fitting role for where I’m at in my career, and what value I can contribute to the company.  So, here we go!