The Changelog: Software Development, Open Source - Ubuntu Everywhere (Interview)
Episode Date: June 18, 2016Dustin Kirkland joined the show to talk about Ubuntu — the most widely used flavor of Linux. We talked about the rise of Ubuntu, Ubuntu being everywhere, their collaboration with Microsoft to bring ...Bash to Windows, and what we can expect from the future of this Linux distro.
Transcript
Discussion (0)
I'm Dustin Kirkland, and you're listening to The Change Log.
Welcome back, everyone. This is The Change Log, and I'm your host, Adam Stachowiak. This
is episode 207, and today Jared and I are talking to Dustin Kirkland about the rise of Ubuntu,
Ubuntu everywhere. We talked about Canonical and Microsoft's collaboration
to get Bash on Windows.
We also talked deeply about the history of this project,
where Ubuntu's going, Canonical, the company behind it,
and what we can expect from the future of this Linux distro.
We have three sponsors for the show today,
Linode, Rollbar, and BlinkSale.
Our first sponsor of the show today is Linode,
our cloud server of choice.
Get up and
running in seconds with your choice of Linux distro resources and no location, SSD storage,
40 gigabit network, Intel E5 processors. Use the promo code changelog20 for a $20 credit,
two months free. One of the fastest, most efficient SSD cloud servers is what we're
building our new CMS on. We love Linode.
We think you'll love them too.
Again, use the code CHANGELOG20 for $20 credit.
Head to linode.com slash changelog to get started.
And now on to the show.
All right, we're back, everybody.
We've got a fun show lineup today.
And Jared, how exciting is it to have Bash on Windows?
That's what teed this up.
Not just Bash, as I'm sure that we will learn the details of here soon.
But yeah, absolutely.
Big announcement out of the Build Conference back in March that Canonical and Microsoft
have partnered in some way to bring the Bash shell along with other things
natively on Windows.
Wow.
Not inside of a VM or anything like that.
It's more than that, too.
We got Dustin Kirkland here from Canonical,
who's got quite a resume, too.
Created the service command and a ton of other stuff.
Yeah, thanks for coming on the show, Dustin.
Hey, guys. Yeah, absolutely.
Adam Jarrett, good to speak with you.
So what's the news behind this?
What's the quick details?
Not the deep details.
We're going to go into that later.
But what's the quick details on Bash on Windows?
The quick details is that if you're running Windows 10 today and you're in the preview mode,
you can very simply type bash and launch a shell
where you're running bash natively inside of Windows,
and the user space utilities are provided entirely
from our distribution Ubuntu.
And that's pretty cool.
It's in preview mode right now,
but Microsoft will release this generally to Windows 10
sometime later this year, I think.
We definitely are interested in not just how that works, but also how this collaboration came together between the two corporations.
But before we get to all that, Dustin, let's learn a little bit more about you and your journey to where you are here at Canonical.
So give us a quick background, maybe even how you got introduced to programming and computers,
and then the summary of how you ended up working for Canonical.
All right.
Yeah.
Well, programming goes way back.
I was programming in high school.
Actually, I started working on, I started playing MUDs, if you remember MUDs in the
multi-user dimensions in the 1990s.
And I got pretty bored playing MUDs and started actually writing some of the code behind some of the MUDs.
I was in about 1994, 1995.
I was 14, 15 years old at the time in high school.
I went to college and got a degree in computer engineering, Texas A&M University.
And then out of college, got a job with Tivoli in Austin, Texas,
and then spent about eight years with IBM.
And then in 2008, I left IBM and joined Canonical on the server team.
So at the time, Canonical was building Ubuntu,
and Ubuntu was fairly well known at that point as an up-and-coming desktop distribution, but there really was no focus or no technology behind Ubuntu as a server platform.
So I joined a team of about three at the time, and our initial goal was really to get Ubuntu server into Amazon, into AWS, and into its cloud.
And we did that in about 2008.
And that really changed the trajectory of Ubuntu as a server platform.
Ubuntu is now about 70% of all instances running in Amazon, in Linux instances, in Microsoft
Azure.
We'll talk about Microsoft in a few minutes.
Google Compute across the board.
Ubuntu is overwhelmingly deployed as a server
platform in public clouds.
That's an interesting background with regard to the switch between desktop and server or
the focus on server.
Just to give you a bit of a context of Ubuntu around the changelog, I actually ran Ubuntu,
I guess it was back.
I was looking at your guys' release schedule.
The first release was 2004,
and I must have hopped on right after that
because I had Ubuntu on my laptop in college
about 2005, 2004, 2006.
I graduated in 2006, so somewhere around there.
Ran it for a couple years on my laptop.
Always ran Debian on my servers.
Then ran Ubuntu on my laptop,
and then Adam has Ubuntu
running on the Changelog server, so
he's always used it as a
server distribution more recently.
I love it. That's great.
Changelog servers are running Ubuntu.
Yeah, 14.04.
We haven't upgraded yet.
Yeah, so about that time,
the timing lines up
pretty much exactly right.
We were very much a desktop-focused distribution,
starting with the first release, 4.10,
Warty Warthog in October of 2004.
And then server really emerged for us right around 2008,
which would have been the 804 release, Hardy.
804, Hardy Heron would have been the first,
I guess, real server-focused release.
And, you know, we really haven't looked back.
It's been incredible to see Ubuntu adoption
at tremendous scale,
especially by the sort of new wave of technology-focused companies,
things like Netflix, Uber, Lyft, uh, Tesla,
all of these are platforms are,
all of these are companies that have built entirely on,
on Ubuntu.
One of the things that Ubuntu is known for aside from it,
or in addition to it's,
you know,
orange,
uh,
interesting orange color of branding is,
is your guys's naming convention.
And it follows this alphabetical,
uh,
Akron,
not acronym alliteration with animal names.
Um, but I, I assumed it would have started at a, but it looks like back when, you know,
four 10 was out warty warthog.
And then you went to H Horry hedgehog and then the breezy badger.
And it seemed like maybe the, the alphabet didn't quite kick in until you guys had your
feet under you or how that all work out.
That's pretty much it.
Yeah, the first release was Warty Warthog.
Second release was Horry Hedgehog.
Third release was Breezy Badger.
And then it wasn't until the fourth release, Dapper Drake,
that I think we sort of realized that we need to actually have some method
to this madness, and especially for listing files and directories where the directories are
dapper, edgy, feisty, gutsy. It started to make sense when those were alphabetical. So yeah,
you're exactly right. So our release cadence is always every six months. We always release in
April and October. We're now working on the Y release of Ubuntu, which is Yakety Yak. It will release
in October of 2016, which will make it the 16.10 release. So the two numbers in an Ubuntu release
are the first number is the year, the second number is the month. And yeah, we're working
on our 25th release of Ubuntu and we've released every single one of them on time, every time.
Wow. How do you get that done?
Yeah, it's a discipline that we call time-based releases. We sort of borrowed and adapted it
from GNOME, GNOME being one of the main desktop managers that Ubuntu is built on. GNOME started
this time-based release cycle just before we did in 2004.
And we sort of took that to the next level and applied it across an entire distribution.
The real discipline is that we set forth the dates up front, and then we engineer a series of milestones.
We always have three alphas, two betas, one release candidate, and then a release.
And it's real important that we identify in those
three alphas the features that we're going to develop. And then we institute a feature freeze,
which can be broken, but it's a very exceptional process to break feature freeze. And then we go
into the stabilization period, the two betas, followed by the release candidate. Now, anything
that didn't make it into the release, or it's not yet baked or cooked,
we tend to move it out of scope.
So rather than, if something has to give,
the scope, the feature list is what gives.
The date never, ever gives.
Googling time-based release is your number one,
so that's a good thing, right?
You got that down.
So I guess, was it you that started it?
Was this a thing you began?
Or is this something that you adopted from somebody else's practice?
You're like, well, that's actually cool.
That's a good way to do it.
Probably need to give a good bit of credit to the GNOME project,
which is the desktop manager in Ubuntu.
But as I said, we've certainly taken it, adapted it,
and broadened it to the entire suite of 20,000 open source packages
that we snapshot and release every month, or sorry, every six months in Ubuntu. Also,
about that time, we were coming out of, we're built off of Debian, you know, a lot of credit
goes to Debian, we use Debian as an upstream for most of our packages. But Debian takes a very
different approach. Debian releases when ready is the
mantra at Debian. And that certainly has the ability to produce high quality software,
but the release cycle is extremely unpredictable. And in fact, when Mark Shuttleworth founded Ubuntu
in 2004, Debian was in a bit of turmoil. It had been several years between Debian releases
or a very long time between Debian releases.
And so our releases aren't perfect,
but they're very predictable.
And we do as much as we can to get the most features as possible
in a high-quality release of Ubuntu.
And anything that doesn't make it,
you're never more than six months away from the next release of Ubuntu.
So who's behind all this? Who's the we you keep speaking of?
Who's the we? So Canonical is the company behind Ubuntu.
Ubuntu is the operating system, the Linux distribution.
Canonical is the company behind Ubuntu.
Canonical is 12 years old. It was founded at the same time as Ubuntu.
Today, we're about 750 people in 45 countries.
Most of us work from home. I work from a home office in Austin, Texas.
We do have a headquarters in London and a couple of satellite offices, Taipei, Boston, Montreal. But for the most part,
about 80% of Canonical works from home
or hiring, by the way,
if you're interested in really awesome
industry-leading technical work,
either on the client and desktop side
or the server and cloud side,
certainly check out Canonical Jobs
and send me a message. I'm on Twitter and LinkedIn and so
forth. I'm sure we can get those contact details. You got a lot of them there. It's kind of
interesting you call them vacancies too, versus jobs. I guess you kind of use both nomenclature,
but you call them vacancies. Interesting. That may be a bit of our British heritage. We have
certain words that are kind of funny in our world that
differ from either the Texas or the California where a lot of technology comes out of.
I should also mention Mark Shuttleworth, who's the founder of Canonical. So he's the
founder and owner of Canonical. Today, he's the VP of product and strategy. He's my boss. I report directly to Mark.
We have an executive structure that includes a CEO, Jane Silver, and a sort of an executive
VP of the cloud business, Anand Krishnan.
And Mark, for the most part, leaves that sort of administrative side of running a company
and focuses on his passion, which is
really the product and the strategy. And he's extremely involved. He's involved in every single
day, seven days a week with all things going to very active on the mailing list and accessible,
very accessible. That's very cool. I think this changed. So you guys had this shift,
you were known for desktop and you started with a Debian base
and you put polish and improvements upon that.
And then over time,
I think there used to be two releases.
There was even like a desktop release
and a server release.
Correct me if I'm wrong there.
And is that, well, let's just stop there.
Are there two releases still?
Or am I imagining things?
No, we still do roll a number of different flavors.
We call them flavors of Ubuntu.
The server release of Ubuntu
is what we publish to the clouds.
I assume that's what your changelog.com
is sitting on, server Ubuntu.
The server Ubuntu, it's a pretty trim.
It's pretty lean and mean, fast,
small, secure Linux distribution.
It doesn't include things like a graphical display manager.
Why? Because typically in the cloud,
you're going to do everything over SSH anyway.
Let's carve out X windows and reduce the security surface
and how much data needs to be stored and updated.
The desktop release of Ubuntu is separate.
Yes, you're right.
And there
are a couple of different flavors. There's Ubuntu with GNOME and Unity as its desktop. That's what
I'm running here today. There's also KDE Ubuntu. There's XFCE, which is yet another sort of
desktop manager. But we also produce Ubuntu for phones and tablets,
which is really interesting.
We've got Ubuntu shipping on three different phone platforms
from Meizu, which is a Chinese phone manufacturer,
and BQ, which is a European phone manufacturer.
And you can take Ubuntu and actually put it on
any of the Nexus line of tablets.
So I've got a Nexus 7 and a Nexus 4 phone here, And you can take Ubuntu and actually put it on any of the Nexus line of tablets.
So I've got a Nexus 7 and a Nexus 4 phone here, both running Ubuntu as well.
Now, what's interesting about that is that we had to adapt a lot of what we love about Ubuntu is still certainly present on the phone and on the tablet. But the way that we deliver the operating system, especially how we update and upgrade it, and ensure that rollbacks can happen safely, as well as how we add extra software, all of that we had to rethink completely
when we started putting Ubuntu on phones and tablets. And in doing so, we actually came up
with something pretty cool.
And that's yet another flavor of Ubuntu that we call Ubuntu Core.
Sometimes you'll hear it referred to by its code name, Snappy.
Snappy Ubuntu Core.
Snappy is Ubuntu designed for IoT devices.
So that's really cool because now we're seeing Ubuntu today
running on developer boards like the Raspberry Pi, for instance.
But those developer boards and snappy Ubuntu are now shipping in refrigerators from GE, in drones, in robots, in printers, network switches, all sorts of super interesting IoT hardware.
We're seeing Ubuntu in that.
And the cool thing is that it's a really interesting sweet spot somewhere in between a desktop,
tablet, phone, consumer-style device, but it's a whole lot like a server because many
of these, you know, a drone or a robot doesn't have a keyboard video mouse traditionally,
but it does have an SSH shell, for instance.
I love this new focus, or maybe you could say it's a lack of focus,
but this desire, this vision to bring Ubuntu to all these different places
beyond the desktop, now even beyond the server too.
You've reached the cloud, you're looking at IoT,
or you have IoT deployments or distribution
or flavor, I guess is the term that you use.
And then the news that we're here to speak about in some detail was the conversation
or the announcement with Windows and Microsoft that came back at the end of March.
In fact, we know that our audience is interested in this particular topic because we'd linked out to that in weekly number 99, which was when was that?
April 2nd, that one shipped out.
And I'm pretty sure that Microsoft had their own announcement and maybe Canonical had an announcement as well.
But Dustin, we linked to your blog post announcing the bash on Windows and it was the number two top story of that week.
And I'll tell you why it wasn't number one and that's because adam included a rant from giles boquette titled why scrum should basically
just die in a fire and you can't not click on that headline everyone's gonna click on that one right
yeah i would click on that one as well. And you know, Giles is always,
he's very reliable for a solid and entertaining rant.
So that was our number one story of the week.
But this was our number two story and one that we had lots of conversation going on
around Twitter and lots of reaction to.
So we want to look at that in a little bit more detail.
We are hitting up against our first break.
So let's pause now and we'll talk about Bash on Windows when we come back.
One of the most frustrating things about being a software developer is dealing with errors, dealing with bugs.
They happen.
And relying on your users to report your errors sucks.
Digging through log files, trying to debug issues is not cool.
Or having a million alerts flood your inbox every single day, it's the
worst.
With Rollbar's full-stack error monitoring, you get the context, the insights, and the
control you need to find and fix bugs faster with a lot less noise.
It's easy to install, you start tracking production errors and deployments in 8 minutes or less.
Rollbar works with all major languages and frameworks,
including Ruby, Python, JavaScript, PHP, Node.js, iOS, Android, and more.
You can integrate Rollbar into your existing workflow,
send error alerts to Slack or HipChat,
or automatically create new issues in GitHub, Jira, Asana, Pivotal Tracker.
And we have a special offer for changelog listeners go to
rollbar.com slash changelog sign up get the bootstrap plan for free for 90 days that's
basically 300 000 errors tracked totally free give rollbar a try today head over to rollbar.com
slash changelog all right we are back with dustin Dustin Kirkland talking about Ubuntu
and the proliferation of the distribution everywhere,
or at least the goal to.
Specifically in this case,
the proliferation of Ubuntu onto Windows.
And Dustin, we're quite interested,
not just how this works,
but also how it came to be.
So this is a partnership between Microsoft and Canonical,
and as much as you're able to,
can you give us the insider scoop, the backstory of how, you know, this partnership came to be?
Yeah, you bet.
You know, it's funny sometimes in life how things never happen the way you plan them out to happen, right? meeting a wife or a spouse or having kids or where you end up in a career
or set out on an adventure on a vacation and where you end up.
The real irony here is that Canonical was founded,
and Ubuntu was founded with a single goal in mind,
which was to basically be the desktop that replaces Windows.
In fact, one of the tools that Canonical created
in support of creating Ubuntu is Launchpad.
Launchpad.net was sort of GitHub before GitHub.
It was based around Bazaar, another source code tracker,
but it was the home for open source projects.
It was exactly how we build.
It is the build system for Ubuntu,
but it's also our bug
tracker. And if you go to launchpad.net, bugs.launchpad.net slash one, the number one bug,
the first bug filed in Launchpad was basically that Microsoft Windows is the only desktop that
someone can really use today. And we're, we're, we're creating a,
a vision to change that. Right. And so it's, it's, it's really funny, ironic, unexpected somehow that
here we're talking about Ubuntu on windows and it's a, it's a good thing. And let me,
let me explain to you why I think that's a good thing, but does that actually resonate? Do you
see, have you been in that situation where something happened, but man, it's so far away from what you might've expected and it's a,
it's a pleasant surprise. Yes. And I can say, speaking to your situation, I was pleasantly
surprised. And I think, uh, many people were because I was very much, you know, 2004, 2005,
I was running Ubuntu on my laptop because i didn't want to use windows on
my laptop so i was there i was ready for the year of linux on the desktop uh you know as you guys
were trying to build it and so uh quite ironic and interesting it's like the odd couple microsoft and
canonical coming together for a collaboration it's just it's it's it's it's not bittersweet
it's just sweet but it's just so interesting's, it's, it's, it's not bittersweet. It's just sweet, but it's
just so interesting that this is what has happened. Microsoft has changed so much though, over the
last several years, like we've seen a new Microsoft in open source. We've seen a new Microsoft when
it approaches products. I mean, is that part of it, Dustin? Do you, do you attribute some of their
change to open source in that? Yeah. So that's exactly where I was going with this, is that a lot's changed in the last 12 years.
Canonical, we found this huge focus and success
on Ubuntu as a server platform.
We haven't abandoned the desktop.
Our desktop is now better than ever,
and we're bringing it to mobile devices.
But the cloud didn't exist in that name anyway in 2004,
and Ubuntu server didn't exist in that name anyway in 2004. And Ubuntu server didn't either. Microsoft was
led by Steve Ballmer at the time. And the thought of Microsoft doing anything with open source
was just, it was unthinkable, right? I mean, he called Linux a cancer and had essentially banned
any Microsoft team from working with open source.
But, you know, there's been a regime change at Microsoft.
Satya has led a real revolution at Microsoft in the adoption of open source.
Over the last several years, Canonical and Microsoft have worked together, most notably on Azure.
Azure being Microsoft's cloud. It's sort of in the big three
clouds of Amazon, AWS, Google Compute Engine, and Microsoft Azure. And Azure, Microsoft through
Azure has been a tremendous partner of Canonicals. And we've helped deliver the best Linux experience inside of Microsoft Azure. The vast majority of instances running in Azure
that are not Windows instances,
like 80% of the Linux instances are Ubuntu.
And we've worked very successfully with that Azure team in doing so.
And that really fostered an interesting set of business relations as well as, and this is extremely important, as well as technical developer relations with Microsoft.
Now, over the last couple of years, I've gotten to know a number of developers at Microsoft, especially the Windows kernel team and the Azure team.
And, you know, these guys are a lot like me, you know, went to college 5, 10, 15 years ago.
And universally, their college experience was much like yours, you know, running a Linux desktop,
or certainly running Linux on servers, the newer kids are running it on Raspberry Pis or in a
data center on campus.
And that was absolutely my experience.
I was at Texas A&M from 97 to 2001.
That was when I really went all in on Linux.
I used it across the board,
stood up web servers on Linux,
used it on a desktop,
and then sort of made the move wholesale in about 2000.
Microsoft totally has taken note of that,
that the developer environment,
while it certainly used to be very closely tied
to Windows desktop, has moved away from it.
And to neither Canonical nor Microsoft's benefit,
a lot of that desktop environment
has actually moved toward Macs, right?
I think you can walk into a coffee shop almost anywhere,
certainly in Austin or San Francisco, where I spend most of my time.
And in that coffee shop, there is a developer with a Mac writing some code.
And that code is almost always inside of a virtual machine of Vagrant or a
virtual box, a shell essentially where they're running Ubuntu. And Microsoft actually commissioned
a study to sort of understand what kids in college are using as their developer environment. And one
thread that was constant across that entire study was that
regardless of whether someone was running Windows or Mac or Ubuntu on their desktop,
they were almost certainly doing their development in a Linux shell. And the vast majority of those
Linux shells were Ubuntu Linux shells. So it's something that I think we've all seen. And whether or not Forbes or Wall
Street Journal or anyone has taken note of that, you could talk to almost any developer in the
valley or anywhere across the world, in fact. And I don't think any of them would be very surprised
by that story. Most web development today being done in a Linux shell isn't exactly a headline that you guys are in the media business.
That's probably not going to grab a whole lot of clicks, right?
It's kind of part of the course.
Exactly.
And, you know, I think we took that for granted in the years that we developed and worked on Ubuntu.
And we thought we were going to take over the world's or we hoped we were going to take over the world's, or we hoped we were going to take over the world's desktop. And while we did not do that, we objectively did not do that, there's certainly more Windows and Mac desktops out there in the greater open source ecosystem in a second. We've done something pretty incredible by making Ubuntu available across that entire hardware spectrum from the
Raspberry Pi to laptops, desktops, tablets, phones, physical servers, your commodity x86 servers,
into IBM's sort of deep thinking power machines that run Watson to some of IBM's biggest mainframes,
the Z series mainframe, and then into supercomputers and high performance computing
across the board, you can find Ubuntu running on all of those. And while there are, you know,
relatively relative to the 7 billion people in the world, relatively few of those 7 billion people
are running Ubuntu on their desktop. I'd venture that over half of the world's population is
touching a server running Ubuntu right now. Wow. Netflix, Wikipedia. I mentioned Uber, Lyft, Tesla,
Instagram, Snapchat. All of these are services running on Ubuntu servers.
And Ubuntu isn't up front and in the spotlight there,
but it is critical to the operations behind this podcast, for instance.
Yeah, I mean, it totally is.
I know that the CDNs, we probably have the MP3s being distributed through, you know, run Ubuntu or Linux for sure.
Yeah, I mean, I always knew.
So I've always just put Debian on my servers just out of habit almost more than anything else just through the years.
Because maybe even back when I started with Ubuntu, it didn't have a server edition.
But I've always just thought Linux powers the web.
But I've never really thought about it as that's like,
do you know what percentage of that is Ubuntu?
Has Ubuntu gotten so big that it's in the 80, 90% of Linux distros
that are running web servers out there?
Or is that just a conjecture?
Right.
So right now, this is public data from W3Tech.
I'm going to pull this up so that I quote the number right.
But just in the past month, Ubuntu has surpassed all distributions for the plurality.
More web servers are running Ubuntu than any other Linux. We've been running neck
and neck with Debian for many years. And by the way, we love Debian. Many Ubuntu developers are
also Debian developers and vice versa. Canonical employs 100 plus Debian developers who work on both Debian and Ubuntu. It's a very close relationship.
So we certainly don't pit Ubuntu against Debian.
There's quite a lot of collaboration,
and we want to see that collaboration continue.
But right now, w3techs.com has been tracking web servers.
Basically, they just sniff the web.
They ping a web server with a couple of queries
and then inspect the response
and try to guess what web server it's running.
Ubuntu is now running 32.5% of the web
as of May 25th, 2016, which is today.
Debian comes in a close second,
followed by CentOS at a distant third. But yeah, we're
quite proud of that. In fact, if you look at the trend line, it's looking very strong for Ubuntu,
and almost everything else is in decline at this point. So I think your premise here is on, and it's certainly that Ubuntu is definitely winning the web.
Why do you think it is?
What makes someone choose one distro over another?
Is it, in Jared's case, where it's maybe habit or comfortability or whatever?
Why do people choose a certain distro?
So with Ubuntu, I think it starts with what we open the podcast
with which was the stability i would say cadence plus the velocity the stability and the quality
of the three things the first one the cadence that we release ubuntu every six months gives
the developers really fresh libraries compilers all of your dependencies are certainly baked in
um to ubuntu and available.
App install, almost anything you could possibly want, and it's already there. Maybe it'll be
there in CentOS. Maybe it'll be there in another distro, but it's almost certainly already there
in Ubuntu. The second one is quality. We put a lot of effort into ensuring quality and that the
quality of Ubuntu is on a trend line that's
moving up and to the right at all times that we're always getting better than the last release.
And, you know, I think it's, I think choice is the fact that we've given you basically the entire
open source world is at your disposal. So let me bring that back to the question about Windows. So Ubuntu on Windows, Bash and Windows. So, you know, we set out to dominate, to win the desktop. And while we didn't do that, new and interesting places to bring Ubuntu.
So I was in, I guess it doesn't really matter.
It just happens that I recall exactly where I was when I received the phone call from my colleagues at Microsoft saying, hey, we've got something we want to show you. I was in Heathrow Airport trying desperately to get on Wi-Fi so that I could stream the
desktop share over Skype and see the demo of what the team at Microsoft had been working on.
And essentially, it is the technology underneath the Bash on Windows, Deep Windows on Windows.
It's something called the Windows Subsystem for Linux, WSL.
The Windows Subsystem for Linux is a layer that runs basically in
or just on top of the Windows kernel that's able to run native Linux binaries.
Native Linux binaries, ELF binaries compiled running on Linux,
eventually call out to the Linux kernel for system calls,
things like open, close, malloc.
You know, it's the fundamental technology,
the fundamental interface between the kernel and user space.
And so the Windows team created this layer
that was able to intercept Linux system calls
and translate them to Windows system calls, which is really cool.
That's not virtualization.
Virtualization is presenting a whole fake hardware emulator, basically.
And an emulator is also similar to virtualization in that it's really emulating an underlying system.
And both of those, while they've gotten faster, are still inherently slow.
What this syscall translation is doing is extremely fast, and it feels very, very, very native.
And that's it.
So the team brought to Canonical this technology that they developed and they identified Ubuntu as being the
user space that would be most attractive to most Windows users and basically invited us to
collaborate with them on this. And so we started working on that. I kind of led the effort from
the Canonical point of view. And we're essentially delivering the exact same byte for byte,
package for package user space, user mode.
User mode is what the Microsoft guys call it.
Maybe that's a Microsoft term.
I would call it basically the root file system,
the same root file system that we test and publish
to all of the public clouds for an Ubuntu server,
that command line environment that you're familiar with if you use Ubuntu in the cloud.
We make that same root file system available in the Windows Store,
and it's downloaded just as part of running the bash command, essentially.
So you run bash.
The first time it downloads that small that small Ubuntu image, uh, loads that up.
And then at that point you're sitting in a, in a, in a bash shell and almost anything that you
would do on a Linux, Ubuntu Linux shell should work inside of there with a couple of caveats
and the Microsoft team are working to close those gaps as quickly as possible. And then to the,
to, to your point at the very top of the
show, it's more than just bash. And that's the beauty of it. You know, it's, it's, it's, um,
uh, it is bash. That's the way you start running, uh, the, the technology, but bash is really,
you know, LS and find and grew up. And that's kind of, that's, that's kind of the end of the shell. Actually, we ship Apt.
Apt is the package interface,
how you install additional packages onto Ubuntu,
how you have access to 50,000-plus binary packages
freely available on Ubuntu.
So you can Apt install almost anything.
And I say almost.
We're really not focused on graphical apps right now.
This is really just command-line apps. But still, there's tens of thousands of command line apps
that are at your fingertips through Ubuntu's archives, through the Ubuntu repositories.
And that's why it's so much more than just Bash. It's GCC and Golang and Ruby and Python and Perl and PHP
and everything that you would normally do on an Ubuntu system
is now right there inside of a Windows shell.
That's awesome.
So let's get this personal for a second
because you have your own little,
I guess that could be condescending to call it little,
you have your own open source project called,
help me out here, Biobu.
Is that how you pronounce it?
Yeah, Biobu.
Biobu, which is a text-based window manager
and terminal multiplexer.
So this is something you've been working on over the years.
And is this something that you can get up and running
inside of Windows?
Wow, so they're working hard on the underlying system call
that it depends on. It needs to be able to allocate a TTY, basically. It's just part of the underlying terminal technology. But it's one of the top bugs, top priority bugs that the kernel team is working on right now. So it doesn't yet work, but it is absolutely on the roadmap and certainly planned. It's one of the most asked for features missing right now.
So yeah, Biobu, it's a passion of mine.
I'm surprised and delighted that you asked about it, actually.
It's kind of a part-time project.
You know, it's certainly not part of my day job.
And for the most part, it's implemented technology.
It's really just sort of bug fixes I work on now.
But Biobu, it started out as a better version of Screen,
if you're familiar with Screen.
Screen is a beautiful program,
but it's kind of old and a little bit neglected.
And then eventually Tmox came along
to sort of be a better implementation of Screen.
So on top of both of those, I've created this project called Byobu,
which ships a set of configuration, opinionated configuration defaults and key bindings
that turns either old school screen or the much newer Tmux
into a really rich command line windowing environment, essentially.
It's all command line, but it has a number of advantages.
You can run commands and then detach and come back later,
which is really important when you're doing some work in the cloud
and maybe you're on a lossy connection, your connection drops,
but you want to make sure your long-running command continues.
Or maybe you're going to kick off this job and then drive home and come back and check on it later. So that's all very
natively baked in, as well as the ability to split the screen, horizontal, vertical splits, chop it up,
run multiple windows, sharing the sessions. That's actually really useful. We use it for pair
programming across the world. I mentioned
Canonical is very widely distributed around the world. It's a very common mean for us to
share a stream. So we'll have an instance running somewhere in Amazon or Azure or OpenStack.
And then we'll run SSH import ID and we'll give someone's GitHub or Launchpad user ID.
We'll pull down their SSH key and then that person can SSH into that system.
And then with Yobu, we're both looking at the exact same terminal.
We're both typing and we can see what one another are doing.
It's a great sharing a screen at much higher resolution than, say, a Skype or Google Hangout screen share.
You're literally in the same session.
That's awesome.
Well, we'll definitely link up Beoboo in the show notes.
That's something that I'm sure our listeners are quite interested in.
I'm a fan of Screen slash Tmux myself, old-school Screen user.
Recently switched to Tmux because of some problem I had with Screen
and a pretty pedestrian user of both.
But nonetheless, awesome tools and anything you can do to like put those on steroids is much welcome.
So check out Beoboo if you're out there listening to the show notes.
Let's get back to Windows a little bit here.
So Microsoft teed this up and sounds like they had done a lot of the heavy lifting for you guys before they reached out for the collaboration.
From the time that you got that call in the airport to the point where we had an announcement at the end of March, give us a time frame and the amount of work you all had to put in to get this up and running.
Right. So Microsoft absolutely has done all of the lifting on the Windows subsystem for Linux.
That's all proprietary code baked into the Windows 10.
It's low-level Windows kernel stuff.
Canonical could not have offered any expertise there for sure.
I certainly would not want to diminish the role that Canonical and Ubuntu have played
in building the distribution, that root file system that we publish and we make available.
And then essentially, it's a really interesting meeting of two worlds.
There's this world of Windows desktop users that may know a little bit about Ubuntu.
And then there's this world of Ubuntu developers that may know a little
bit about Windows. But now being able to use the two within the same environment, I think is sort
of a, I don't know, a dawn of a new era almost, you know, where you really are crossing the
boundaries of a traditional desktop and the world of open source software.
So in terms of timeframe,
you saw the announcement March 31st
at Windows at Microsoft Build
was when it was announced.
We worked on it.
I worked around the clock for a couple of months
from basically January, February, March
were intensely dedicated to that.
We had a small Tiger team at Canonical working on it
who were closely tied into the team at Microsoft.
We worked very closely.
I flew up to Redmond a couple of times.
And it's been a fantastic collaboration.
We've really enjoyed working with that team.
I'm curious the future of Windows in this case,
because in the backhand, I'm sitting here thinking to Jared,
asking questions like, you know,
will this ease the common pain of setting up dev stuff on Windows?
Like, you know, when you set up Rails or anything like that on Windows,
there's always some sort of glitch, always some sort of problem.
And since Microsoft came to you all as the motivated party, had done the research, had
done all this extra work to kind of even tee it up and then chose you as the Linux distro
to do it all, there's got to be some future plan there and maybe even some reduced pain
in terms of dev environments and people who want to use Windows but still be developers,
as you mentioned, those in coffee shops using Macs or some sort of flavor of
Linux to work on might be the case.
Let's break real quick. We'll come back and we'll start talking about the future and maybe even
some loss of pain for those developers out there on Windows. We'll break now. We'll be right back.
Our friends at BlinkCell are
sponsors of today's show, the second commercial rails app to our
knowledge BlinkSell is the easiest way to invoice online you can sign up online or in the app you
get a free 15-day trial with no credit card needed they do invoicing really really well
give you estimates thank you templates recurring invoicing integration with stripe for fast payment
no tier plans one price for unlimited amounts of everything they offer. Head to blinksale.com slash changelog to get started.
And a special discount just for our listeners. Email patrick at blinksale.com to get a 20%
off lifetime discount. This is for our listeners only. Our members get an even deeper discount,
40%. So if you're a member, head to changelog.com slash benefits
to claim your 40% off.
Once again, head to blingsell.com slash changelog
to learn more and get started.
Now we're back from the break.
Got Dustin here and talking deeply about this motivated party
called Microsoft who needed, wanted, desired,
built technology to put Bash slash Ubuntu on, on
windows.
And it just seems like they came to you so motivated.
And I'm just curious, um, what your thoughts are on like why they had this desire so much,
like obviously they did the research.
And if, uh, if there's a developer doing something on a windows computer or any of the computer,
they're going to be doing something in a VM or some sort of Linux distro to do the development.
But how does this play out to the future of Windows?
What do you think, Dustin?
Yeah, so the motivation, I think, is pretty obvious, particularly when and where Microsoft
announced this at their Build Conference, a developer-focused conference.
The motivation is to ensure, from Microsoft's perspective,
to ensure that developers choose Windows,
use Windows as a desktop platform,
making the Bash command immediately available
and bringing into the Bash command the Ubuntu user space,
all of the Ubuntu tools and libraries,
was sort of the
missing piece you know just having bash alone uh you know you could have a busy box or something
but a but busy box which is just basically bash uh statically compiled um isn't enough for a
developer to to to to use it um having that entire ubuntu user space, app install, you mentioned Ruby,
and then Ruby libraries, and then from that, gem install, whichever libraries, certainly brings a very native development experience to a Windows desktop where, you know, writing code in Visual
Studio is fine and dandy, but you, you know, a typical Windows developer would then need to get, commit that, and then
push that, and then launch a VM or an instance in the cloud to actually test it.
So one of my colleagues at Microsoft who's been super vocal about this, sort of a, I
guess, call him a peer product manager at Microsoft, is a guy named Scott Hanselman, extremely active, a great blog,
and very active on Twitter.
Scott has been quite vocal about how he's using
this Ubuntu on Windows to do Ruby development,
Rails development, Mongo,
all natively on his Windows desktop.
Across the board, I've met a number of people who, in some cases, are relieved, thankful,
appreciative of this work, in that in many cases, they've got a company-mandated desktop,
which is a Windows desktop.
And they're so pleased with the ability to have that world of Ubuntu and open source
natively available in a command prompt at their fingertips.
That resonates with me. I think once I found the Linux shell and was exposed to that in college,
there was just no way I could go back to command.exe on its own, even with PowerShell and
these other tools. It just wasn't the same.
It just didn't feel right.
And so that has kept me away from Windows, honestly, as a developer for a long time.
How about the, let's talk about like the practical use of this.
Now it's still in beta and all that.
I'm sure there are things that are being worked on and bugs to iron out and system calls that
aren't quite bridged yet or whatever
the term we use for that layer is but what about practical things where the two operating systems
or the two environments meet kind of where the you might find an uncanny valley at times thinking
of like system paths file naming conventions um well first first with this, is the shell isolated inside your environment
or is it exposed to the Microsoft,
or excuse me, to the Windows file system?
It goes both directions, actually.
The Microsoft team did a really nice, tasteful job of this.
In the Linux shell itself,
if you cd to slash mount slash c slash windows,
or sorry, just slash mount slash c,
you can see your entire Windows file system.
You can see all the files and directories.
You can VI a file.
You can edit a file.
You can touch create.
You can remove files.
You can do anything that you would be able to do natively
as the user who's logged into the
Windows shell. And in fact, that goes both directions. You can also open the Windows Explorer
and I've forgotten the exact path, but you can navigate to the entire Ubuntu shell and do the
same thing. You could open up a C file in Visual Studio, for instance, or create a directory.
It's actually the same file system in both
directions. Very cool. Now, so you admitted in your announcement blog post that even this
announcement is odd for you, or not the announcement's odd, but the using of it's
odd because you hadn't used Windows in nearly 16 years, which is kind of funny. But for people who
have like Scott Hanselman and these other people who
started to like use it for ruby development or for whatever it happens to be that they normally
be using uh either a virtual machine from a mac or using you know a cloud machine or even just a
linux desktop have they have they seen the the uncanny valleys or is the grass really greener when you bring the two together?
I think it's clearly greener.
Find, grep, xarg, sed, awk, all of that right there.
It's not SigWin.
It's not a virtual machine.
It's operating in the file system. I'll sort of recount the anecdote I shared in my blog in that it's so poignant and it's so literal and true to actually build.
So we take the Ubuntu image, that root tarball, that Ubuntu tarball, and then we have to repack it into an appx file, which is basically just a zip file wrapped around some
metadata. So to and to upload that to the Windows Store, I needed to use Visual Studio. And I am
not lying when I say I haven't used Windows as a desktop since since Windows 2000, since the year
2000. And so I installed Windows, and that was an interesting experience.
And then to build that Apex, I had to do a bunch of work in Visual Studio.
And, you know, Visual Studio has a tremendous reputation.
It's this huge environment, and I think once you're comfortable with it,
you can probably do some incredible things at a very large scale.
Well, guess what? I really didn't need to do anything at a large scale.
I needed to make a couple of copies of a couple of files, some metadata.
I needed to replace all instances of sample app with Ubuntu, essentially.
And I sort of fought and struggled clicking my way around Visual Studio
until at some point I just decided, hey, you know what?
Let me actually just try this.
And so I dropped to the bash shell.
I cd'd into mount c users and settings, Dustin Kirkland, my source directory.
I found the directory that I was working in.
I renamed the directory using the move command.
I did a deep find, find dot in that directory, pipe grep for sample app.
Okay, found all the files I needed to edit, piped that through XARGs and renamed all of those files in a fraction of a second.
And then I needed to do a deep grep through the data in that directory for all instances of the word sample app or whatever it was,
and then do a sed replace.
So another grep, another pipe to XRs, another sed,
and I replaced all of those instances of sample X. And then I flipped
over alt tab back over into visual studio, reloaded and hit compile. And it just worked.
And it was really neat to do what I was really comfortable with, you know, fine,
arc rep said, X args. And then, you know, for various reasons, I needed to be in visual studio
and windows. And those two really worked seamlessly.
I didn't have to FTP some files around or get push or or or SCP or copy.
Oh, speaking of SCP, the other thing that was neat was when I needed to SSH from that Windows machine to another Ubuntu machine. And I can natively run on that Windows system directly to the local file
system, rsync, scp, ssh, without setting up a putty or some other third party
going and fetching another third party tool.
It does sound like pretty green grass.
It sounds pretty good.
I mean, I think that this could be a
huge boon for open source projects especially when the burden of maintenance between multiple
operating system is such a yeah a problem um for many developers who even would love to support
windows users they don't even have environments that they can test against windows in order to
provide support and so it's often a pain point or people when they're calling for help, it's like, please,
if you have Windows or if you're on Windows and you use this, you know, provide help,
give us good bug reports or even help us fix these things.
Do you think it's feasible that once this comes out and is out there in the wild,
readily available for developers, that it would be socially OK to say, you know, our Windows support is via,
you know, Bash on Windows or via Ubuntu on Windows, and we don't have any first party
support for the operating system. Wow, that's a leap. Possibly. I should also caveat this with
the fact that Microsoft has said that this is Windows desktop only, Windows 10 desktop only.
So they've not announced any
plans to bring this to Windows
the server. So running a
Rails web application or
some sort of server application
at least at this time
is not natively supported
and there's no commitment from Microsoft
that that's even coming.
So let's relegate your question to desktops.
Sure. Possibly, you know, I I'll tell you this.
The next time someone asks me to help fix their Windows machine.
Traditionally, I just, you know, plead, plead.
Yeah, exactly. The next time someone asks me to fix their Windows machine, I'm actually going to I'll actually fire up a bash shell and see if I can poke around and figure out what's what's wrong.
Maybe now there are limits to what how much of the Windows hardware can be seen from Linux.
So, for instance, direct access to some of the storage drivers of the video drivers and stuff is still going through a Windows layer.
But yeah, I think there is an opportunity to certainly make, I don't know, scanning the file system, backing up data,
just some of the tasks that are strictly file driven, that we're really good at doing things against file descriptors in Linux,
I think some of those tools may make it over to Windows in a hurry. I think it's a huge opportunity.
I don't know if this is on your radar, Dustin, or not, but I imagine it probably is. But
I think about what kind of developer typically is running Windows. And if you look at the
landscape of available consumer,
you know, desktop laptop machines out there,
you've got various flavors of Windows, right?
You've got various flavors of Linux,
and then you have Macs out there.
But typically Macintoshes are more expensive.
And universally, Windows tend to be,
you know, lesser expensive expensive machines and so by doing
this it seems to me like you've we always talk about the accessibility to to software to being
a developer to learning to code on this show and we've talked about that the last several shows
sarah chips with jewel bots and things that, bringing access at a younger age.
It seems to me like I could buy my daughter a Windows machine that runs Windows 10 pretty
expensively, and she has access to everything I would want her to have access to, to be
a developer, right?
With this new access to Bash and the shell and Linux and Ubuntu, like that's awesome.
It's,
it's now become a much more lower barrier with still great tools.
I think it's amazing how many more people open source software will touch through this,
uh,
through this development.
I think that's the most amazing part about it.
Um,
you know,
the internet is,
is full of all sorts of opinions.
And I saw, I saw a handful of. You know, the internet is full of all sorts of opinions. And I saw,
I saw a handful of, you know, the sort of to be expected negative opinions of, you know,
why would Canonical do this? Microsoft's the enemy. You know, don't, don't we build good
Linux desktops environments? Why would you do this? And to most of them that I had the opportunity to
reply to, you know, I really tried to speak to their heart and say, guys, your love of open source, just think about how the fact that that's now available on Windows desktops, or will soon be available on any Windows 10 desktop, we've made the entire open source world of software. And, you know, to their extent, our mission, our somewhat religious mission that open source is just a better way of doing things. I still believe that at my heart. I dual
boot my laptop now into demo bash on Windows, but I still run Ubuntu as my primary desktop,
and I still develop open source software because I love it. I'm just thrilled that over the next
five, 10 years that all of this open source software that I've written over the last 20 years
will be available to even more people than ever before. I love all I love the sound of all that. And by the way, a quick question on limitations.
And before we get to some of our closing questions, you mentioned, you know, there's some
certain system calls that aren't quite there yet. Obviously, Microsoft is not too interested in,
you know, Windows, or, you know, X or window managers or graphical applications coming from Ubuntu over.
You also mentioned that it's desktop only,
so server deployed things,
which I'm not sure why you wanna do that anyways,
because you could just deploy it to a Linux server.
But I guess if you have existing infrastructure
that is based on Windows licensing or something.
What are some other limitations that either are going to disappear or they're just kind of going to
always be there uh in this environment that you know of yeah so let me clarify a couple of the
the first ones first so yeah i think we both we both canonical and microsoft and you know it
sounds like yourself as a potential user all understand that
bringing this to Windows Server
doesn't make as much sense.
If you're in a Windows Server,
you're probably a PowerShell user anyway,
which PowerShell is great
and amazing work as well.
And if you're really going to run
a server workload,
by all means,
please run it in Linux.
And ideally, you know, from Microsoft's perspective,
that's a Linux running in Azure.
That's a Linux running in a Hyper-V.
So we all kind of looked at that and went,
yeah, if you're doing it that way, you're kind of doing it wrong.
So let's not focus a whole lot of effort
onto Bash on Windows servers.
So that's sort of the color behind that first one. The second one you mentioned, or the other one you know, bash on Windows servers, right? So that's sort of the color behind that first one.
The second one you mentioned, or the other one you mentioned,
was about X applications, you know,
what we call in Linux X applications or graphical applications.
Believe it or not, a super motivated,
and this is just the beauty of open source,
kids will be kids, I guess,
there's actually X Windows applications now running on Ubuntu on Windows,
believe it or not.
Yep, I have myself launched Firefox.
Now, Firefox is a silly example
because you can run Firefox natively on Windows.
But I've actually run the Firefox binary from the Ubuntu archive, export it on the same system over a local,
you know, export display equals local host
to the local machine,
as well as a couple of other minor X applications.
That's using an open source project called Xming Server.
It's basically an X server for Windows.
So you go out to the X main server website or GitHub,
you pull down the.exe binary, install the X server on Windows,
and then run that, and then you can app install some X applications.
Some things still don't work, and most of them come back to basically
those same system calls we know aren't currently working.
Dbus right now is sort of the message bus,
low level message bus, it's got some some problems. So for instance, I wanted to run
gnome terminal, because I hate the Windows command.exe terminal. So I wanted to run gnome
terminal or Terminator or any one of the X terms from from Ubuntu. And all of those kind of depend on that D bus,
which is related to the other things
that's still not yet working.
But the team at Microsoft working on this,
they're fully, they're well-staffed and smart guys.
This wasn't a sort of a proof of concept
that gets announced and then abandoned.
I've got every bit of confidence
that it's getting better and better over time.
So we've all had the Bash on Windows
or Ubuntu on Windows announcement.
The next question is,
when are we going to hear about
the Windows on Ubuntu announcement?
So that's kind of, you know,
some people describe this work as the reverse of Wine.
If you're familiar with Wine, Windows emulator,
it's kind of how you sort of run some Windows applications on Ubuntu.
I know that Wine has saved my bucket on a couple of, I don't know,
update the firmware or update my,
I updated my firmware on my plantronics headset using
wine uh not too long ago um but yeah this is sort of the reverse of wine um so i'd argue that
without this wasn't wines obviously not microsoft driven but uh windows emulation on linux has been
around and um while not fantastic it's certainly functional for many cases.
Right.
But it's always been emulation.
Whereas this seems like it's a little bit more native system call.
Yeah,
indeed.
Yeah.
So we're not,
we're not working on that right now.
It was a joke.
Okay.
It was,
it was a joke,
but I was like, he's taking it seriously.
Sorry.
That's good though.
You're,
you're on point. That's, that's, we want, Sorry. That's good though. You're on point.
We want that.
This is a serious closing question,
so don't take this one as a joke,
but there's a lot of listeners tuning in.
You know the numbers, users of Ubuntu,
lovers of Ubuntu,
and I'm kind of curious for those out there
who care about this mission,
this mission of not so much just using Ubuntu where it's at, but, you know, enabling Ubuntu on Windows even better.
What things out there, what ways can people or the open source community step in and help push this mission along with you?
How can they step in?
Yeah, so, I mean, there's a ton of ways to contribute to Ubuntu.
I got started as a contributor to Ubuntu before I became an employee of Canonical.
Just sort of my background in open source, there's a way of doing open source.
And it's great whether you're young or old or anywhere in between open source communities.
It's a brilliant way to learn and get better and contribute to society, to the technical world.
It can start as easy as reporting bugs.
It's something that myself as a developer, I spend hours every day reading bugs, replying to bugs,
reporting a bug, a good high quality bug with how to reproduce these instructions,
not just this pissed me off and I hate you, but like, hey, here are my logs. Here's what happened. Here's how to reproduce these instructions, not just this pissed me off and I hate you,
but like, hey, here are my logs. Here's what happened. Here's how to reproduce it. I've
tried it on two computers. That's incredibly, that's a huge contribution to open source and
requires no programming skills necessarily. Contributing to the mailing lists, we have a
Stack Exchange channel. It's actually the third most popular
channel on all of Stack Exchange. It's called askabuntu.com. You can get involved asking
questions or providing responses and voting up or down responses. That's a great way to get involved
that, again, requires a little bit of technical interest, but not necessarily technical expertise. We'd love to see more questions and answers around Ubuntu
and Windows at Ask Ubuntu, of course.
And then from the developer perspective,
man, the possibilities are endless.
From contributing to source code on GitHub or Launchpad,
you should absolutely have accounts on both GitHub and Launchpad.
Follow the projects you're interested in, branch or fork the projects that you're interested in
and provide patches or contributions or even just using it and provide feedback is incredibly valuable.
It's a, and you know, especially for your younger listeners,
it's a great way of building out a resume long before you even know, long before you actually even create the resume.
I've hired dozens of people who have barely have a resume, but they have a GitHub profile and a LinkedIn profile that show me what they've worked on.
It comes across your code comes across as more important to me than than than, than, you know, a 10 page resume or
a huge CV or something like that. It's, it's really the way to get started. I've hired interns,
I've hired new hires straight out of college. I've hired high school kids that just, they, they know,
they, they know what they're doing and they've contributed to open source and their contributions
are, are very public and visible.
Oh, and I'll end with one last thing.
And I'll say that this is, you asked about some of the reasons why Ubuntu has been successful.
I'll tell you one that's at our core and it's one that doesn't get noticed.
And in fact, that's kind of a good thing.
But at the core of Ubuntu, we have this thing called the code of conduct, the Ubuntu code of conduct, all Ubuntu developers are required to sign it. And it really governs the way that we behave with one another, you know, and so while there are arguments, we tend to focus on technical fights, as opposed to personal fights, right? You can attack the code, but never attack the person.
And that's so important. And it's really part of the friendliness of the Ubuntu ecosystem.
So I would say that whether you're working in Ubuntu or the Linux kernel or anywhere,
you know, treat one another well, treat one another like humans, because all of that code
that I said, just said was public and becomes part of the
public record your actions on those mailing lists are absolutely part of the public record as well
so you know treat one another well it's it's important well on the note of of open source
we commonly ask this question and you might have gotten it in the email when we get up to call and
prep you for everything but we like to ask, especially someone like you
who comes from a company who leans on and supports and cares so much for open source,
I got to imagine that you've got an interesting radar, meaning if you had a free weekend,
what's something that you haven't played with or you'd love to play with that if you had a free
weekend and you had nothing else to work on, this would be something that you would hack on.
What would that be for you? Wow., I've got a lot of nights and weekends
projects. I'm working on two right now. Um, one is an Alexa skillset. So I recently bought an
Amazon echo, you know, uh, Alexa play, uh, play fish on, uh, on Pandora and she's playing the
fish radio station. Alexa, read me the news. Alexa, what's the weather?
I'm actually working on an Alexa skill for man pages.
So I have some that I wrote a long time ago
that actually parses all of the Ubuntu dev files every night
and looks at any that have changed.
And if it finds one that's changed, it cracks open that dev,
extracts any man pages, and then publishes them, renders them to HTML formatted and linked and everything.
And it publishes them at manpages.ubuntu.com.
Well, as you can imagine, I've got a wealth of man pages there.
I'm actually working on an Alexa skill that says you would say, Alexa, man SSH.
And then Alexa would come back and read you the first line of the SSH man page and say, hey, would you would you like to know more? Is that useful? I don't know. But it's useful for me to learn how to write an Alexa skill to, you know, sort of get into that AI machine learning. Yes, that's what I'm looking to learn. The second thing, and it's closely related to that, because I have this nightly job
that
cracks open every
dev published to the Ubuntu archive,
it's very easy for me to extract
other files from that
dev. So I have another side
project that's also in that sort of machine
learning space, and I say it's
pertinent to you guys because
every package
in the Ubuntu repository has a file called Debian changelog, which is the history of that
Debian package. And some of those packages go back to the early 90s, in fact. Some are more
recent than that. But they follow a very consistent parsable format. And so I've got part of that sort of nightly script
that I've written also indexes the change logs.
And right now I'm rendering that
to basically a huge blob of JSON
that I can then import into MongoDB or Postgres.
And I guess the part of the project
I need a night or a weekend to work on
is actually developing some intelligence, deriving some intel from the changelogs.
Who's changing what? How often is it changing? What things have been abandoned, obviously haven't been touched in a long, long time?
Those are sort of the interesting questions I'd like to ask that, uh, that, that, that SQL or no SQL database.
Make sense.
Makes sense.
I think it's interesting.
The Alexa piece,
the,
the skill learning.
I don't know if I would use it,
but,
uh,
I could see if anybody out there,
I guess it could be used.
I would,
I would talk to Alexa about man pages.
That'd be cool.
But you,
would you care about that?
Alexa to RTFM.
I mean,
that's worth it right there right
that's funny you say that if uh as you as you close the alexa skill she thanks you for reading
the friendly manuals nice i don't know adam i think uh i think you have a kindred spirit here
with regard to changelogs i feel like that data dump could be very interesting for us. Yeah. It is one very large data dump of literally change logs.
Well, we're eight minutes past the show time for this show.
Anything else you want to say in closing, Dustin?
I did want to touch on the business side of Canonical.
I'd love to share our experience you know, our experience about, you know, what Canonical is as a, as a company, you know, and tee that up with a, with a, you know, our listeners are in some of them building businesses or interested in building a business around open source.
How does Canonical do it?
That's one that I, you know, I'd, I'd like to have two or three minutes to, to, to talk about.
Let's do it.
I mean, that's, we're, we're always curious about that.
You know, I mentioned in a break earlier, we were going to pull into the show.
We just didn't find time to because we were kind of talking about necessary things.
But I'm curious with a staff, like, is it an actual staff of 750 people all across the
world?
Are they all paid employees?
And I'm really curious how you sustain and make money.
756 employees across 47 countries.
Paid employees, yep.
And then a much bigger open source community of friends and foes
that write open source software that filters into a button.
Friends and foes.
So what's the story behind, I guess, the company side of things?
How do you make money?
So that's the story behind, I guess, the company side of things? How do you make money? So that's a good question.
And I mean, it's extremely important to the long-term sustainability of Ubuntu.
The success of Canonical is very importantly tied to Ubuntu continuing to be available
to everyone in the world.
Canonical itself has a couple of businesses, a couple of parts to the
business. First of all, the company is really split into two halves. The one half works on
laptops, desktops, phones, and devices, now sort of IoT connected devices. The other half of
Canonical works on servers and clouds, virtual machines and containers.
But the two work, you know, we share a lot of technology.
Our businesses are a little bit different. So, you know, at its core, Canonical is a services company.
We offer suites of services that surround Ubuntu, right?
We don't charge for Ubuntu.
The bits that make up Ubuntu on your laptop or desktop or in the cloud are always free to you, right? We don't charge for Ubuntu. The bits that make up Ubuntu on your laptop or desktop
or in the cloud are always free to you, right? You've never paid for Ubuntu itself. But there
are many, many enterprises and organizations, some individuals that choose to buy auxiliary
services from Canonical. And those services at its core, often start with support services. So we do have commercial support where we try to help ensure large institutions,
typically that have built a business around Ubuntu.
They heavily depend on Ubuntu.
We can try to help ensure their uptime, the security of their packages.
They have a phone number to call.
They have an interface to connect with our support
engineers who can then help troubleshoot or debug maybe a kernel performance regression or a
security issue or something like that. That's our support services. And then we also provide
consulting services. So some of the biggest telephone companies in the world, AT&T,
Deutsche Telekom, are building their data center infrastructure services around Ubuntu OpenStack.
And we engage with them at a very large scale to provide consulting services where we help
design and implement that cloud. And then we have a large number of customers where we provide,
Canonical provides what we call level three support.
So that customer might take the first and second phone calls from the customer.
IBM is a good example.
So IBM has its own customers a lot in, let's say,
the financial industry, Wall Street or something like that,
where they're using Ubuntu.
They call IBM for the first level and the second level of support.
But when that IBM engineer needs some help from a canonical engineer, IBM can then pick up the red phone, call canonical,
and receive first-rate Ubuntu support from an Ubuntu expert.
So those are sort of the support services.
And then we also do, let's call it OEM work, or work with OEM, which was originally hardware
manufacturers, ensuring that Ubuntu, you know, as it ships on Dell PCs and HP servers and IBM
servers and lots of others, now network switches, As Ubuntu ships on those devices, we help that engineering team build the image of Ubuntu
that runs on that switch on that server.
But we've also seen that same model work very well with the major public clouds where
Canonical curates, secures, provides,, QAs, the images in those clouds.
So all of those are commercial engagements that Canonical, that helps sustain Canonical,
helps pay the salaries of the 700 of us, 756 of us working all around the world.
That's amazing. I mean, I think it's interesting to think about Mark too, and his past to get, you know, I guess the We're reviving and relaunching Founders Talk,
which is a show I did that kind of peeks into the life
of an entrepreneur, a founder,
to look at what they did, why they did it,
the fails, the successes, all those things.
And it would be interesting to talk to Mark
about the deeper details if he'd be game, for sure.
Mark would regale you with stories
from the International Space station to uh his
trip to antarctica after after you go to space where do you go next he took a three-month trip
to antarctica where he printed out a thousand pages of debian um mailing lists and he went
through the mailing list with a with a pen and a highlighter and circled a bunch of names, which were the first 20 people that he contacted and said, hey, I'm an African billionaire and I want to start a company.
Come help me make a bun too.
Wow.
I love this guy already.
Yeah.
I want to have that conversation.
It makes me want to start Finer's Talk again right away. Soon, though.
Very, very soon.
We have a lot of things happening here at the Change Law to make all that happen.
So very soon, listeners, if you are a past listener of Finer's Talk, it's coming soon.
And that conversation with Mark could probably very well happen very soon.
But we are out of time for this show, Dustin.
It was an absolute pleasure to deep dive into this Linux Ubuntu Windows history and future
and the new abilities and access to so many developers out there,
to everything from Linux to open source that's available now.
So thank you for all the hard work you do.
And to the listeners, we thank you as well for tuning into this show.
But that's it for this week, fellas.
So let's say goodbye.
Goodbye.
Thanks, Dustin.
Thanks, gents. We'll see you next time.