Looking Back to the Road Ahead

As 2022 comes to a close, I am somewhat reflective, but, mostly looking ahead. This past year was certainly tumultuous on several fronts. Coming more solidly out of Covid protocols, kids firmly back in school, life contemplated, and perhaps most impactful personally, leaving Microsoft after 24 years of service.

What did I do in my first days after leaving the company? Start coding of course! I started coding when I was 12 years old on a Commodore PET. To say ‘coding is in my blood’, would be an understatement. I have been coding longer than I’ve been able to hold coherent conversations with adults, that’s how long I’ve been coding, and I don’t see stopping any time soon.

I’ve always thought that coding is story telling. You’re telling a story, converting some sort of desire into language the computer can understand and execute. The computer, for its part, is super simplistic, with a limited vocabulary. Just think about it. How much work would you have to put into telling someone the directions to your house if you could only communicate in numbers, arithmetic, and simple logic ‘if’, ‘compare’, ‘then’. You don’t have the higher order stuff like “get on the highway, head south”. You have to go all the way back to first principles, and somehow encode the ‘highway’, and ‘head south’. And that’s why we’ve had programming languages as long as we’ve had computers, and it’s also why we’ll continue to develop more programming languages, because, this stuff is just too hard.

My recent weeks have been filled with various realizations related to the state of computing. When you have the leisure to take a step back, and just observe the state of the art in computing these days, you can gain both an appreciation, and a feeling of being overwhelmed at the same time.

It wasn’t too long ago that the company Adapteva: http://www.adapteva.com was pioneering, and pushing on a CPU architecture that had 64 64-bit RISC processors in a single package. That was the parallela computer. The experimental board was roughly raspberry pi sized, and packed quite a punch. The company did not survive, but now 64 cores is not outrageous, at least for data center class machines and workstations.

Meanwhile, nVidia, and AMD, and intel, have been pushing the compute cores in graphics processors into the hundreds and thousands. At this point, the GPU is the new CPU, with the CPU being relegated to mundane operating systems tasks such as managing memory and interacting with peripherals. Most of the computation of consequence is happening on the GPU now. And, accordingly, the GPU now commands the lion’s share of the PC price. This makes sense, as the CPU has become a commodity part, with the AMD/intel wars at a point of equilibrium. No longer can they win by juicing clock rates, now it’s all about cores, and they just keep leepfrogging. nVidia is not standing still, and will be dipping their toe into the general computing (as it relates to data centers at least) market in due time.

nVidia, long a critical piece of the High Performance Computing (HPC) scene, is pushing further down the stack. They’re driving a new three letter acronym Data Processing Unit (DPU). With a nod to madernity, and decades of experience in the HPC realm, the DPU promises to be a modern replacement for a lot of the disparate discreet pieces of computing found in and around data centers.

nVidia isn’t slouching on graphics though. Aside from their hardware, they continue to make strides in the realm of graphics algorithms. NeuralVDB is one of those areas of innovation. Improving the ability to render things like water, fire, smoke and clouds, it’s about the algorithm, and not about the hardware. Bottom line, better looking simulations, in less time, while requiring less energy. This is a great direction to go.

But this is just the graphics area related to nVidia. There has been an explosion of algorithms in the “AI” space as well. While the headliner might be OpenAI and their various efforts, such as Dall*E, which can generate any image you can imagine, there are other efforts as well. The OpenAI Whisper project is all about achieving even better voice to text translation (English primarily).

Not to be left in the dark, Google, Microsoft, Meta, even IBM and myriad researchers in companies, universities, and private labs, are all driving hard on several fronts to evolve myriad technologies. This is the ‘overwhelm’ part. One thing is sure, the pace of change is accelerating. We don’t even have to wait for the advent of ‘quantum computing’, the future is now.

The opportunities in all this are tremendous, but it takes a different perspective than we’ve had in the past to ride the waves of innovation. There will be no single winner here, at least not yet. The various algorithms and frameworks that are emerging are real game changers. Dall*E, and the like, and making it possible for everyday individuals to come up with reasonable artwork, for example. This could be a threat to those who make their living in the creative arts, or it could be a tremendous new tool to add to their arsenal. More imagination and tweaking are required to make truly brilliant art compared to the standard fair individuals such as myself might come up with.

One thing that has emerged from all this, and the thing that really gets me thinking is, conversational computing might start to emerge now. What I mean by that; Dall*E, and others, work off of prompts you type in: “A teddy bear washing dishes”. You don’t write C or JavaScript, or Renderman, you just type plain english, and the computer turns that into the image you seek. Well, what if we take that further. “Show this picture to my brother”. An always listening system, that has observed things like “brother”, and knows the context of the picture I’m talking about, and has learned myriad ways to send something to my brother, will figure out what to do, without much prompting from me. In the case of ambiguity, it will ask me questions, and I can provide further guidance.

This is going far beyond “hay Siri”, which is very limited to specific tasks. This is the confluence of AI, digital assistant, digital me, visualization and conversational computing.

When I look back over the roughly 40 years of computing that I’ve been engaged in, I see the evolution of computers from the first PC and hobbyist machines, to the super computers we all carry around in our pockets in the form of cell phones. Computing is becoming ubiquitous, as it is woven into the very fabric of our existence. Our programming is evolving, and is reaching a breaking point where we’ll stop using specialized languages to ‘program’ the machine, and we’ll begin to have conversations with them instead, voicing our desires and intents rather than giving explicit instructions.

It’s been a tremendous year, with many changes. I am glad I’ve had the opportunity to lift my head up, have a look around, and dive in a new direction leveraging all the magic that is being created.


2+ Decades @ Microsoft : A Retrospective

I joined Microsoft in November of 1998.  During black history month in 2022, I sent out an email to my friends and colleagues giving a brief summary of my time at the company, my own personal “black history”.  Over the past year, I’ve been engaged in some personal brand evolution, and I thought blogging is good for long form communications.  So here, I’m going to repeat some of that Microsoft history as a way to set the stage for the future.  So, here, almost unedited, is the missive I shared with various people as a reflection on black history month, 2022.

Hello,

If you’re receiving this, you’re probably no stranger to receiving missives from me on occasion.

Here we are at the end of black history month. 

I am black, and my recent history is 24 years of service at Microsoft.

I’ve done a lot in those years from delivering core technology (XML), to creating Engineering Excellence in India (2006 – 2009), to dev managing the early Access Control and Service Bus components of the earliest incarnation of Azure. 

I’ve also had the pleasure of creating the LEAP program, which is helping to make our industry more inclusive, and helped to establish Kevin Scott in the freshly re-birthed Office of the CTO. While in OCTO, inspired and guided by a young African engineer, I had the pleasure of supporting the push into our African dev centers (Kenya and Nigeria), which now number around 650 employees.

My current push is to hire folks in the Caribbean, yet another relatively untapped talent market.

This past couple of years have been particularly charged/poignant, with the dual of covid, and various events leading to the emergence of “Black Lives Matter”.

Throughout the arc of the 24 years I have spent in the company, I have gone from “I’m just here to do a job”, to “There is a job I MUST do to support my black community”.  I have been happy that the company has given me the leeway to do what I do, while occasionally participating in bread and butter activities. 

I am encouraged to see and interact with a lot more melanin enhanced people from around the world, and in the US specifically.  We have a long road to go, but we are in fact making progress.

Over the past year, I have thought about what I can do, how I can leverage my 35+ years of experience in tech, to empower even more people, and enable the next generation to leapfrog my own achievements.  To that end, I’ve started speaking out, starting ventures, providing support, beyond the confines of our corporate walls.  I have appeared on several podcasts over the past couple of months, and will continue to appear in a lot more.  This year I will be making appearances at conferences, writing a book, etc.

If you’re interested in following along, and getting some insights about this guy that pesters you in email on occasion, you can check out my web site, which is growing and evolving.

William A Adams (william-a-adams.com)

William A Adams Podcast Guest Appearances

At the bottom of the media page (the second link), you’ll see a  piece by the computer history museum in silicon valley.  Some have already seen it, but there’s actually a blog the museum did that goes along with it.  It’s one of those retrospectives of a couple of black OGs in tech (me and my brother) from the earlier days in silicon valley, up to the present.

And so it goes.  We have spent another month reflecting on blackness in America.  We are making positive strides, and have so much more to achieve.  I am grateful for the company that I keep, and the continued support that I enjoy in these endeavors.

Don’t be surprised if I ask you to come and give a talk somewhere in the Caribbean within the coming year.  We are transforming whole communities with the simple acts of being mindful, intentional, and present.

  • William

And with that, dear reader, welcome back to my blog, wherein I will be a regular contributor, sharing thoughts in long form, sometimes revisiting topics of old, and mostly exploring topics anew.


My First LEAP Video

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


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!


Building a Tower PC – Final assembly

Well, it’s finally done

wp_20161107_009

I began this journey with creating the excuses for doing the build in the first place, and then purchasing the various parts.


Building a tower PC – 2016


Building a Tower PC – 2016, part 1

Now here is the fully assembled thing.  Some final thoughts.  The scariest part was doing the water cooling piping.  I practiced tube bending on a waste piece before embarking on the final pieces.  Like a plumber, it’s helpful to plan out where the pipes are going, do some measurements, then do bending on cutting.  Really I was afraid that once it got assembled, it would be springing leaks all over the place ruining the fairly expensive electronics.  When I first put the tubing together, I tested by running some distilled water through the system to flush things out.

In the end, there were no leaks, and everything runs beautifully, and cool.  Having done this once now, I can see redoing the tubing at some point to make it more fancy, but for now, it works just fine, and looks cool.

One thing of note, this thing is really quiet.  You literally need to almost stick your ear into the various fans to hear them at all.  The power supply fan is dead quiet.  This is dramatically different than the power supply on my shuttle PC, which I thought was fairly quiet.  Now the Shuttle PC sounds like a jet engine in comparison.

wp_20161107_012

The fans on the cooling radiator are whisper quiet as well, and provide those cool lighting effects to boot.  Really this thing shows off best in a fairly dark room where the various glowing light effects can be seen.

The noisiest part of the entire build is actually the disk drive.  You wouldn’t normally think of that, but when things are absolutely silent, to the point where the AC fan in a room is way louder, in a quiet room, the steady rumble of the disk drive is the most notable sound.

I’m loving it so far.  I feel a sense of accomplishment in putting it together.  I got to use it as a visual aid for the latest cohort of the LEAP class.  Having a transparent case makes it easy to point at stuff, and the liquid cooling just adds a nice wow factor.

As far as the OS is concerned, I installed Windows 10 Pro.  I figure even if I want to run Linux, I can simply use Hyper-V to create Linux VMs and go that way.  Given that the graphics card can run 4 monitors at a time (I think), that’s more than enough to give me the illusion of a common desktop, with two Windows screens, and a third with Linux on a VM.  So, it’s a sweet combo.

As for the excuse to be able to run the Vulkan API on a modern graphics board, that’s coming along.  I had to install Visual Studio, build a LuaJIT, and dust off the cobwebs of my Vulkan ffi binding.  All in due time.  For now, the screaming machine is being used to type this blog post, and otherwise sitting beside my desk looking cool.  I’ll have to design a desk specifically for it just to add to the DIY nature of the thing.


Building a tower PC – 2016

Well, since I’m no longer interested in building the ultimate  streaming PC, I’ve turned my attention to building a more traditional tower PC.  What?  Those are so 1980!  It’s like this.  What I’m really after is using the now not so new Vulkan API for graphics programming. My current challenge is, my nice tighty Shuttle PC doesn’t have the ability to run a substantial enough graphics card to try the thing out! I do in fact have a tower PC downstairs, but it’s circa 2009 or something like that, and I find this a rather convenient excuse to ‘upgrade’.

I used to build a new PC every two years, back in the day, but tech has moved along so fast, that it hardly makes sense to build so often, you’d be building every couple of months to keep pace. The machines you build today will last longer than an old hardware hacker cares to admit, but sometimes you’ve just go to bite the bullet.

Trying to figure out what components to use in a current build can be quite a challenge. It used to be that I’d just go to AnandTech and look at this years different builds, pick a mid-range system, and build something like that. Well, AnandTech is no longer what it used to be, and TomsHardware seems to be the better place for the occasional consumer such as myself.

The first thing to figure out is the excuse for building the machine, then the budget, then the aesthetics.

Excuse:  I want to play with the Vulkan graphics API

Budget: Less than $2,000n (to start ;-))

Aesthetics: I want it to be interesting to look at, probably wall or furniture mounted.

Since the excuse is being able to run the Vulkan API, I started contemplating the build based on the graphics card.  I’m not the type of person to go out and buy any of the most current, most expensive graphics cards, because they come out so fast that if you simply wait 9 months, that $600 card will be $300.  The top choice in this category would be a NVidia GTX 1080.  Although a veritable beast of a consumer graphics card, at $650+, that’s quite a budget buster.  Since I’m not a big gamer, I don’t need super duper frame rates, but I do want the latest features, like support of Direct X12, Vulkan, OpenGL 4.5, etc.

A nice AMD alternative is the AMD Radeon Rx 480.  That seems to be the cat’s meow at the more reasonable $250 price range.  This will do the trick as far as being able to run Vulkan, but since it’s AMD and not NVidia, I would not be able to run Cuda.  Why limit myself, since NVidia will also run OpenCL.  So, I’ve opted for an NVidia based MSI GeForce GTX 1060.

The specialness of this particular card is the 6GB of GDDR5 RAM that comes on it.  From my past history with OpenGL, I learned that the more RAM on the board the better.  I also chose this particular one because it has some red plastic on it, which will be relevant when I get to the aesthetics.  Comparisons of graphics cards abound.  You can get stuck in a morass trying to find that “perfect” board.  This board is good enough for my excuse, and at a price that won’t break the build.

Next most important after the graphics card is the motherboard you’re going to stick it in.  The motherboard is important because it’s the skeleton upon which future additions will be placed, so a fairly decent board that will support your intended expansions for the next 5 years or so would be good.

I settled on the GIGABYTE G1 Gaming GA-Z170X-Gaming GT (rev. 1.0) board.

It’s relatively expensive at $199, but it’s not outrageous like the $500+ boards.   This board supports up to three graphics cards of the variety I’m looking at, which gives me expansion on that front if I every choose to use it.  Other than that, at least 64GB of DDR4 RAM.  It has a ton of peripherals, including USB 3.1 with a type-c connector.  That’s good since it’s emerging.  Other than all that, it has good aesthetics with white molding and red highlights (sensing a theme).

To round out the essentials, you need a power supply.  For this, I want ‘enough’, not overkill, and relatively silent.

The Seasonic Snow Silent 750 is my choice.  Besides getting relatively good reviews, it’s all white on the outside, which just makes it look more interesting.

And last, but not least, the CPU to match.  Since the GPU is what I’m actually interested in, the CPU doesn’t matter as much.  But, since I’m not likely to build another one of these for a few years, I might as well get something reasonable.

I chose the intel i7-6700K for the CPU.

Image result for core i7-6700k

At $339, it’s not cheap, but again, it’s not $600.  I chose the ‘K’ version, to support overclocking.  I’ll probably never actually do that, but it’s a useful option nonetheless.  I could have gone with a less expensive i5 solution, but I think you lose out on hyper-threading or something, so might as well spend a $100 more and be slightly future proof.

Now, to hold all these guts together, you need a nice case.  I already have a very nice case housing the circa 2009 machine.  I can’t bring myself to take it apart, and besides, I tell myself, it doesn’t have the io access on the front panels required of a modern machine.  Since part of my aesthetic is to be able to show the guts of the machine (nicely themed colors), I went with something a bit more open.

The Thermaltake core P5 ATX Open Frame case is what I have chosen.

Image result for thermaltake core p5 atxNow, I’m more of a throw it together and start using it kind of builder, but putting a little bit of flash into the build could make it a tad more interesting.  Less heat dissipation problems, and if I ever do that cool liquid cooling piping stuff, I’ll be able to show it off.  This case also has options to mount it against the wall/furniture, and I’ll probably take advantage of that.  I can imagine having a home office desk with a couple of these mounted on the front just for kicks.  Thrown in a few monitors for surround, and… Oh, but I’m not a gamer.

The rest of the kit involves various memory, storage, etc.  The motherboard has M.2 as well as mSata.  So, I’ll probably put an SSD on one of those interfaces as the primary OS drive.  Throw in a few terabytes of spinning rust, and 64GB of RAM, and it’s all set.

The other nice thing about the motherboard is dual NICs.  One is for gaming, the other (intel) is for more pedestrian networking.  This can be nothing but goodness, and I’m sure I can do some nice experimenting with that.

Well, that’s what I’m after.  I added it all up on newegg.com, and it came out to about $1,500, which is nicely under budget, and will give me a machine I can be happy with for a few years to come.

 

 


Jumped on Twitter… Again

I’m not a twitch communicator.  140 characters, or whatever, doesn’t really do it for me, but this is the way the world works now.  So, I joined twitter: @LeapToTech

I had a previous twitter account, but since I never used it, I can’t even remember what it was.  But, at the behest of Laura Butler @LauraCatPJs, I put up another account so that I could retweet a tweet.  It’s the future man!  The internet is going to be big some day.

So, now I’m learning about the value of #HashTags, and @callsigns, and that sort of stuff.  Really I only wrote this post so I could figure out how to stick a tweeter at the bottom…

 



What is IT?

WP_20160319_001

IT’s coming…


End of 2015 Already!

Over the past few years, I figured out that in the US, if you spend on your business, you’ll recoup more money than you’ll ever make by simply saving that money in a bank account.  So, here we are, it’s the end of the year, what to do?

Well, first up was a new laser cutter:

G. Weike LG 900N

Then came another large format powder printer

3D Systems Pro Jet 660Pro

A replacement for my original Up! automated glue gun

Afinia H800

And finally, I took a flyer on the GlowForge laser cutter

GlowForge (link to save $100: http://glowforge.com/referred/?kid=Y1kbpm)

Now, what business does any sane person have putting all this stuff into their garage?  Well, first of all, the Pro Jet isn’t actually in my garage, it’s actually being put into production in California.  That does leave me with the Weike and Afinia (ignore the GlowForge).  The Weike is an interesting tool in that it’s big enough to cut large enough pieces to incorporate into real furniture.  The way I see it is, I can cut 1/8″ or 1/16″ slices and create my own “plywood”.  That can result in a lot of possibilities.  And of course there’s always the paper/cardboard cutting for kids crafts, ‘living hinge’ jewelry boxes, and the like.  The Afinia, whenever it shows up, can serve for in house ‘print/cut’, rather than being the heavy duty garage bound tool.  It will go in my office.

The Afinia is just an evolution of a fairly good ‘just print’ printer.  I purchased one of the earliest Up! printers a few years back, after first spending quite a few frustrating months with the original MakerBot Cupcake.  I’ve loved my Up! ever since, but it’s getting long in the tooth, so it’s time for an upgrade.  The H800 has a larger print area, and probably more importantly it has an enclosed volume with a HEPA filter.  This makes it a candidate for living inside the house if I make space for it.  The larger print volume will make it feasible to print fun parts for construction, and not just little trinkets.  I’m looking forward to having an enclosed build volume, it will likely make for better temperature control, and thus less warping of ABS.

I recently had one of my ancient designs printed on the powder printer, just to see what it would look like.  I have plans to have it made using injection molding process, meanwhile, using the Afinia will help me make some small runs of the same, in true rapid prototyping fashion.

Speaking of designs, I recently installed the 2015 version of OpenScad.  It renders my old designs nicely enough, and it has some new features which will make some work I had done previously even better.  So, what better time to dust off some of those old designs and update them with the modern OpenScad.  We’ll see how hard it is to get back into the mindset of that programming environment.

And how can the year end purchases ignore electronics!

Raspberry Pi Zero (from Adafruit)

Raspberry Pi Microsoft iOT package

At $5 (for basic board), how could any self respecting tinkerer pass this up.  Yes, if you really add things up, it’s much more than this, but I already have enough power supplies, keyboards and wifi dongles in stock that these are not additional costs, and the incremental cost to me is truly $5.  At the very least, I can see using these as a learning tool to teach Linux.  A Raspberry Pi 0, with LuaJIT installed, and tons of “Lua Tools For Linux”, and you’re all set.

So, finishing the year with a wallet busting blowout, taking back some tax dollars in the process, and generally setting up to have some great fun in the new year.

Happy New Year!


New Baby in the house!!

Of course you’d expect to see a picture here, or on Facebook, or Instagram, or whatever, but we don’t roll like that.

New baby girl arrived 9/30 at 9:30am.  September 28th was apparently a ‘supermoon’, and we’ve been having ‘blood moon’, and the pope was visiting and the president of China was visiting, and…

Seems like an interesting confluence, or near confluence.  I especially like the 9/30, 09:30 thing.  That will make it easier to remember.

Having newborns around means a couple of things.  First and foremost, not a lot of sleep, although this one seems to sleep at least a couple hours here and there.  Seems like we’re constantly up from 10pm to 4 am, although it’s probably not true.  The second thing it means is that a lot of fairly shoddy code gets written.  During those wee hours, between feedings, changes, and general soothing walks around the house, one or the other of the laptops is actually on my lap, and I’m slinging out code.  It’s funny though.  Something that might take 2 hours to figure out during these late night sessions can take a mere minute to realize in the bright light of regular day hours.  Nonetheless, I’m heeding the call of our President and making it possible for everyone to write code!

And so it goes.  A new reason to write inspired code.  There’s someone new to reap the benefits of my labors.