The Changelog: Software Development, Open Source - Solarized and Linux on the Desktop (Interview)
Episode Date: March 30, 2012Wynn sat down with Ethan Schoonover, creator of Solarized to talk about the science and design behind the wildly popular color scheme as well as his love for Arch Linux....
Transcript
Discussion (0)
The Change Log is brought to you by Pusher, and they're looking for a system engineer with experience building scalable messaging systems.
If that's you, send your GitHub profile, your cover letter, and your CV to jobs at pusher.com.
And also, use the coupon code THECHANGELOG for 15% off your first month on any plan.
Join the real-time web today at pusher.com.
Welcome to the Changelog episode 0.7.7. I'm Adam Stachowiak.
And I'm Winn Netherland. This is the ChangeLog.
We cover what's fresh and new in open source.
If you found us on iTunes, we're also on the web at thechangelog.com.
We're also up on GitHub.
Head to github.com slash explore.
You'll find some training repos, some feature repos from our blog,
as well as this audio podcast. And if you're on Twitter, follow the ChangeLog.
And I am Adam Stach.
And I am Penguin, P-E-N-G-W-I-N-N.
Fun episode this week.
Talked to Ethan Schoonover from Solarized.
Unless you think we talk a full hour about a, I guess, a theme for a text editor.
We talked about so much more.
Did talk about Solarized quite a bit in the theory behind the color selection and a lot of the underlying science behind the design.
But also talked about Linux tools in general and Arch Linux.
He's a bit of an audiophile, so we talk about the full gamut of his geekery.
Took a little preview of that audio.
His audio sounds pretty good.
He sounds better than I do, but I don't want it to sound too good because, you know, the
bootleg sound quality gives us some street cred, you know?
Sure does.
Yeah, it does.
That's what I hear.
Fun episode.
Should we get to it?
Let's do it.
Chatting today with Ethan Schoonover from Solarized.
So, Ethan, why don't you introduce yourself for our listeners?
Sure. Well, I'm a freelance designer. I'm based here in Seattle. And I moved back to
the States about four or five years ago to work with a Mac software firm, Omni. I don't work with
them anymore. I'm purely freelance. And over the past couple of years, I've been getting more
involved in Linux and the open source community. And I guess part of that is, um, is my developing, uh, uh, I guess what you could call
a universal color scheme, uh, called Solarized. So I'm happy to go into some more detail there.
Do you want to? Yeah, let's just shoot me some more questions. So 2200 watchers on GitHub for
what is essentially a color scheme. So, and, and a bead of sweat rolls down your forehead.
Give us some background on, on why you started this project.
Sure. Well, this was, I guess, late 2010. I started to get pretty heavily into Linux on
the desktop. And so I started to build a couple Linux boxes. I've always been using
Debian, Ubuntu for servers, but I'd never really been a very heavy Linux on the desktop user.
And so I, I don't know, I had a couple of old ThinkPads laying around and I started to,
you know, play around with Arch, Fedora, Ubuntu, and whatever the current releases were.
And at the same time, I started to retrain myself in a number I, you know, I was still using the
Mac pretty heavily, but I just, you know, I felt using the mac pretty heavily but i just you know i felt
this urge as i think a lot of people do and perhaps still do uh right now to move away from
proprietary systems to more open systems so i started to use vim pretty heavily and i just
couldn't find a color scheme that i liked so you know you you know i noticed also in the terminal
i couldn't find a color scheme that I was very happy with.
I started to use ZShell a lot.
So I looked around and I saw there were some very pretty color schemes, certainly.
I was using Harold. I was using Zenburn for a while.
I didn't really like the colors of Zenburn, but I felt like I liked the strategy they had of being a low-contrast color scheme.
So I thought, well, hey, this is going to be easy.
I'll just edit the color scheme that they have for Vim.
And I opened up the Vim script file.
And I think if you've ever opened up a Vim script file your first time and you have this kind of shock of seeing something very alien-looking, which Vim script is, I realized it wasn't going to be an easy undertaking and I also realized
that the way they had designed the
color scheme wasn't how I would have
gone about it necessarily, it's that implementation
and I'm not faulting
Zenburn, it's a very nice implementation
so I decided
I would give it a go on my own and then
that was sort of the
jumping off point
it's one of those projects where you only do when you don't know what you're getting into.
Right.
And I'd kind of like to talk a little bit about some of the strategy behind it and the way it's structured.
Do you have any other questions specifically about how I got myself into this mess?
I guess, did you start with Vim or did you start with the Terminal?
Why? That's a good question. It was pretty, it was pretty simultaneous. Um,
you know, I would say I probably started, I probably started with Vim. Um, at least that's
foremost in my mind because I was always really focused on doing the Vim color scheme. But, you know, for me, I was really using Vim primarily in the terminal.
You know, in Arch, I was using URXVT or RXVT-unicode, however you want to say that.
And so, you know, using Vim in the terminal, you really have to be very cognizant of terminal color issues, which are really legion.
It's really terrible implementing color properly in terminal emulators. So, so it comes in two flavors,
I guess, light and dark. Yeah. So let me talk a little bit about the way it's structured. Um,
and, uh, for folks listening along on the podcast that are in front of a computer,
if, uh, if you're not familiar with solarized or if you want to sort of a refresher, I'm also going to maybe mention a specific image that's on the Solarized
homepage. You can just search for Solarized. It should be in the top, the top hits in Google.
Um, but it's, uh, it's also ethanscoonover.com slash Solarized is the official homepage.
And you can see, uh, on that homepage, I've got a, you know, there's an image
right at the very top of that page, which is sort of a yin yang symbol showing both a dark background
and a light background. And then below that, the actual palette itself, and that'll be those will
be useful visual aids, as I described this, but the basic idea is that, you know, the terminal
emulators, Vim doesn't have this restriction but terminal
emulators are quite restricted in the number of colors they can display for the most part some
only display 8 some display 16 uh you know some you can display 256 vim you have a lot more
flexibility depending on whether or not you're in gui mode or terminal mode but um regardless i
wanted to support kind of the lowest common denominator so i designed
solarize to fit within the 16 standard color slots you'd find in a terminal and i also want
i realized early on that i wanted something that could work in both a light and dark
mode and so i started to map out light color schemes and dark color schemes so in other words
color schemes with a light and dark background and keeping in mind that I wanted to work with contrast. And I realized there was a
possibility to kind of fit them together into a single color scheme that was symmetrical. So
if you turned it upside down, so to speak, what had previously been the brightest color of text
would in turn become the bright background and the darkest, the dark background would become
dark text.
That's a very simplistic description. There's more detail on the page itself,
but that's sort of the symmetric quality to this color scheme. And it's actually a little bit more
complicated than that. In fact, it turned out to be a lot more complicated. It took me all in about
six months to design the color scheme and test it and iterate it. Now, do you have a background in color theory or
was this learning for you? Um, well, you know, I, I have a weird background. Um, right before I
moved back to the States, I was working as a photographer full time. And I also have a background
in web development prior to that. So in advertising, but when I was working as a photographer,
I started to research and, you know, I have my parents are both artists.
I do have a I guess a background just through osmosis in the arts.
And I always worked with color and with design and of course, in web design.
But when you start to do photography very seriously, you have to be very aware of color management. And I also became familiar with the CIE L star A star B, or it's
often called just lab space, the lab color space. And that's a very useful color model or color
space for editing photographs, among other things. That's not its original purpose by any means.
It's a really fascinating subject in its own right.
But that background, that familiarity I had with lab and with color management really did inform the way that I developed Solarized.
So for those that don't know, RGB is, of course, red, green, blue, HS, BSU, saturation, and brightness.
What is lab?
So, well, let me backtrack for just a moment. Um,
it's really important when we're talking about these things to kind of understand,
um, just even what color is and, you know, color is not an external phenomenon and it's,
we often talk about it as though it is. And we, we think about, you know, we think about RGB,
um, you know, if you're going to throw up a, you know, hex value on a webpage and you want red,
you do FF zero, zero, zero, zero. page and you want red, you do FF0000.
And you think, well, I'm making the monitor display red.
But that's not what is happening at all. Really, color is a lot more like poetry or music or cinema even in the sense that when you watch a sad movie, you have a sense of sadness inside of you. Um, but that
sadness is not an external phenomenon, right? That's a, it's an induced phenomenon inside of
your brain. And the sadness is sort of latent inside of the storyline. And just like that
color is latent inside of wavelengths that are, that we're perceiving that are hitting the back
of our retina, our fovea. And when those, you know, when, when those different wavelengths of light hit our,
our retina, when they hit our fovea and they stimulate the, the rod cells in our retina,
then, uh, and I'm, you know, I apologize by the way, if anybody is an expert in color and they're,
and I'm butchering this, I hope I'm not. Um, but when they, when they stimulate,
you know, the back of our, our eye, and then that goes into our brain, you know, that's when we're perceiving color.
And because of that, because it's an induced phenomenon and not a purely external phenomenon,
there's actually a lot of, I don't want to use the term psychology, but there's, there's
a lot of variance in how we perceive color, um, in, in terms of the actual external stimulus.
So, um, back in the, and I'll, I'll describe more about
what I mean by that. Um, back in the twenties or thirties, I think it's the, uh, probably
throughout the twenties, there was a lot of, uh, color research that was being done
in Europe. And there was a researcher named right. Um, I hope I'm getting this right. Uh, his name was right. And I probably forget his
first name. And there was another fellow too. Uh, they were both based in London and they were both
doing similar experiments independent of each other. And basically what they wanted to do is
they wanted to figure out, um, basically what I described that how we, how we perceive color in
our brain and how, and how we can mix together different tri-stimulus values,
red, green, and blue, in order to recreate perceived color values.
So what happened is that this fellow Wright, he was a color researcher, and he, you know,
it was kind of an ambitious effort, right? I think today, if you wanted to do something like this, there would probably be like an
fMRI involved.
But, you know, 1920s, they still have like horse-drawn carriages rolling around London,
right?
So it's pretty primitive.
So what he does is in order to figure out what's going on in your brain when you see
these different RGB values, essentially, is he set up a screen with a couple holes in the screen and he set these test
subjects in front of the screen and he made them look through these tiny holes and the holes were
about a two degree holes are about the same size as the, the, uh, field of view of your fovea,
which is the little highly sensitive spot on your eye. And so he had these people looking
through the screen at, uh, two different spots of color. And so you had these people looking through the screen at two different
spots of color. And one was being generated by kind of a pure light, like a pure yellow light.
And the other was a mix of red, green, and blue lights. And then the subject would, you know,
fiddle some dials and adjust those red, green, and blue lights until the color spot, the mixed color
matched the pure color. And then they would measure the pure color, the mixed color, matched the pure color.
And then they would measure the pure color, the wavelength of the pure color,
and they would figure out, based on that wavelength,
what values of red, green, and blue light they had to mix to achieve a matching color.
And so that was the start of the CIE color spaces. That was, I think, CIE XYZ.
And so CIE is the International Color Consortium of, well, no, that's not right. International Color, I forget. It's a French word and I'm going to butcher that. So color body got together and they revised it into a
couple other color spaces. And they did specifically in the 1970s, I think 76, they produced CIELAB.
And so CIELAB is the refinement of that research in the 1920s and all that data.
And it's essentially a color space that maps all these color values to a tri-stimulus value
it's not rgb it's luminance and then two other essentially chroma um chroma values and luminance
of course being essentially brightness and that's the l. And they're mapped in such a way that a numeric distance,
so say from zero to 10 in terms of luminance, anytime there's a value of a difference of 10,
for instance, anywhere along that value, the L value, it's going to be equivalent to the
perceptual difference for a human being. And so if i take a value of zero and
i take a value of 10 the perceptual difference will be the same as a value from 90 to a value
of 100 that is not true for many other color spaces so like hsb it's not true right hsb you
also have a like aluminum value you have the brightness value and you, if you take a value of zero and HSB, uh, the B is zero and a B
10 and a B 90 and a B 100, the, the difference, the perceptual difference between 90 and a hundred
is not the same as the perceptual difference between, uh, zero and 10. Does that make sense?
Absolutely. Yes. First time I've heard it explained that thoroughly.
Yeah. Sorry. I hope that wasn't too thorough. I get, I get, I get, I mean, you,
yeah, you can get a bit deep into the weeds on this. So, you know, you just stop me if I do.
So you have a table chart, a table color chart about halfway down the Solarize homepage that basically has, for the lack of a better term, a semantic name and then hex values and terminal
color names, and then also lab RGB and HSB for each of these, which of these do you deal with when you're
working with, with Solarize? What's the, I guess the, the, uh, the source value that you
Yeah, the source, the source is LAB, the lab value for sure. Um, that's sort of the master value,
even though it's kind of in the middle of that table. So I guess that's, um, perhaps it's not
obvious, but that's sort of the canonical value
is LAB. Um, the hex values, which are essentially the same as the RGB values. Um, those are
simply in a single instantiation. So those are a translation from LAB space to SRGB space. Um,
and SRGB is sort of a standardized device independent, uh, RGB space.
So did you have any sort of build process that I guess translates between these?
Um, you know, yeah, I do have a bunch of scripts, um, that I was using some of which are pretty
crufty and not, not very well written.
Um, I'd like to clean those up.
I, I D to be honest, um, one of the, one of the goals initially was to create some scripts that would be able to push out
not only these values, but also the actual themes for different applications. So for instance,
I do have scripts that generate things like the MUT color schemes, although those are notoriously
hard to actually get running properly. And I have I have scripts that of course will, you know, spit out things like the Vim
color scheme. So I can, I can update the colors and then push out things like Vim, mutt, et cetera.
A lot of other terminals, um, especially when they're, you know, just text-based preference
files, like, or, or like X resources files, I can push those out programmatically. Um, some,
some applications, um, the preference files or the theme files are a little bit harder to parse,
or, you know, they don't have the, the formats are not public or, you know, for whatever reason,
I just found them difficult to do. And so I, you know, I, I think it's still possible to do
something like that. I would like to, to have some sort of a master build system that would build out just a huge variety of these themes and i i think that there
is actually in a way one of the benefits of of solarized and all the ports that have been
submitted or which are floating around out there and which i need to pull in because there are a
huge number of outstanding pull requests um but one of the benefits is that all that work has been
done in a way. So people
have figured out, you know, like here's these 16 colors, here's how they map to all these different
themes. And it should be, it should be doable to create a script like that. I mean, it's,
it's not a small amount of work, but it's doable. If you were built a matrix, I guess,
of all the permutations that you have a unified color scheme here, but the amount of variables
in this is just incredible. So one of those is,
we talked briefly about the number of tools that it has to cascade across, right? From
MUT to VIM to the terminal, all of those different tools. We have platform that's a part of that.
But two of the big variables are font selection within that, and also syntax for different languages and what, you know,
the, that syntax vocabulary looks like when you colorize.
Oh yeah. Yeah. That's a huge issue. Huge. You know, it's in a way that's a lot like,
you know, typographers will talk about color on the page of a specific typeface and they're not
actually talking about color the way that you and I have been here today. They're talking about sort of the, you know, the, the color
they're talking about a purely black and white, you know, say you're printing, printing black
text on a white page. Um, type is still said to have color based on, you know, the thickness of
the strokes and the way that they all, it coalesces together as a mass, as a body of text on the page.
And you can say there's sort of an equivalent concept when you have, say, you're looking at a page in Vim, you're looking at a section of Ruby code, or you're looking at a section of Haskell code.
I was very, very concerned that different, especially, you know, I had control
of over the Vim theme and I was really concerned that there was a similar, of course, there's some
uniqueness, but a similar look to the code in each case. So, you know, I didn't want the Ruby code to,
for some reason, look, you know, ugly where the Haskell code looked beautiful or vice versa.
And that was really non, that was really non-trivial. Um, just getting things like,
oh, in Ruby, you know, I spent a lot of time on Ruby, even though I don't code a lot of Ruby.
Um, I don't know why, cause I find Ruby very beautiful to look at syntactically. So, um,
maybe that's a, you know, maybe I should try to pick it up a little bit more because of that,
but I also find Haskell very beautiful. So i spent a lot of time looking at those two in particular they were sort of my initial test cases and then
html and such um but yeah it was really hard to do that and it's still there's still a lot of room
for improvement um and it's probably the biggest problem in terms of ports is kind of communicating
to people how important it is to have like a good mix of colors to not have any single color be too
dominant um to understand you know when is be too dominant, um, to understand,
you know, when is it too many colors in one section? Like you don't want to have it look
like a, you know, a salad, a fruit salad. I noticed also you include a snippet of SAS
for the color palette. Are you a SAS user? Oh, absolutely. Yeah, totally. No, I love SAS. In
fact, you're, you're SAS, aren't you? I am. I am writing a book on SAS with Chris Epstein and Nathan Weisenbaum for Manning,
and we're excited about SAS and Compass and the adoption.
I was curious, though, dealing with lab, what sort of shortcomings have you found with SAS?
You mean with the lab color space?
Exactly.
Well, I'm not too – actually, I wouldn't call it a shortcoming with SaaS per se.
I don't – is there some specific or special support for Lab?
Not that I'm aware of.
I'm wondering if it's just because there's not a foundation of support at the OS level or something.
Yeah, that's really – well, you know, the crazy thing – here's the crazy thing is that a lot of operating systems will actually implement color using lab.
So like OS X, anytime that you're specifying color values,
it's all being translated back to lab.
So that's sort of the background space.
That's the man behind the curtain.
I would challenge anybody to go out to the Solarized homepage
and just with the broad
base of support that you've got across operating systems and across tools here to try to guess
what your main tool chain would be.
So why don't you just tell us where you camp out?
You can't possibly be an expert in all of these.
Which you mean expert in all of these. Um, which, which you mean expert in all of your operating system,
your, your, uh, editor tools. Yeah, no. Um, I'm probably, I'm probably an expert in absolutely
none of them. I mean, I, the only thing I can claim to be a certified expert in, I think is
Photoshop, which I actually did my certification in, um, crazily. I don't know why it was some
kind of challenge. Um, you know,
and even then I don't think that means a whole lot, you know, to say you're an expert in
Photoshop, it changes so much, but no, I'm not an expert in any of these things, you know,
in terms of tool chain, I really try to go as deep as possible into all of them though. And,
um, you know, particularly when I started to learn, when I started to go full-time into Linux,
um, you know, I just went as deep as I could, which is one of the reasons I chose Arch, by the way.
Well, maybe we'll have a chance to talk about that.
But I really wanted to understand the system from the ground up.
And I also try to do that with color.
I try to understand as much about what's happening with color in the operating system as possible.
But, you know, it is incredibly complex. Color is, it's, you know, right now, actually Fedora,
there's a lot of work with color being done in Fedora. It's probably the most active distribution,
Linux distribution in terms of color management and trying to create new, new tools for color
management and make it easy. But it's, it's just so complex and there's so many applications
which don't support color properly. Like even among browsers right now, like Chrome, Safari on,
on OS 10, they both support ICC version four and Firefox only supports ICC version two,
if I remember correctly. Um, just small variations like that can really impact the way that,
you know, you're preparing color, the way that you're preparing images, the way that you're embedding, um, ICC profiles. So, you know, I'm certainly not
an expert. I try to be as aware as possible of all the different factors that are going into color,
how the, how the operating system is doing color management, et cetera, but it's hard.
And, you know, this is just thinking about OS 10. It's hard when you throw Linux into the mix,
when you throw, you know throw Xorg into the mix,
which is really kind of nightmarish on multiple levels, color becomes very hard.
So 16 colors, why not support 256?
Well, constraints are good, first of all.
In fact, if you look at some of the examples on the Solarize page, you'll see that there's a, I'm looking about a third of the way down the page, there's 16.5 palette modes example.
So I actually use Solarize, the Solarize color scheme on the Solarize homepage.
And a lot of other people, I found it all over the web.
A lot of people are using it on their blogs.
And I give an example of using kind of like,
say like three of the base colors
along with a couple of the accent colors
for creating a palette for your website.
And you can see that in all those examples,
I really only use one or at the most two accent colors.
In fact, I designed it to my own site,
this ethanscoonover.com and that SAS
sample. I, the example I use there really are the intent is to use just one accent color.
Um, and that's because in design, you know, you don't want to go overboard. You want to
really limit yourself. It's, it's about cutting back and pairing away. Um, 256 colors is hard.
I don't think I would have seen the adoption, uh, of Solarized
if I'd used two 56 colors. It's really hard to implement that. A lot of applications don't
support it. Almost all applications you can squeeze five, eight or 16 colors into. So that's,
that's really it. So the background on each side of the spectrum is neither white nor black. It's
this beige color or this kind of, yeah, no, we haven't
talked about that at all. It's actually, um, aesthetically speaking, it's, um, it's kind of a,
a sea green color or what I imagine the bottom of the ocean to look like. Um, though of course
there would be no light there. And then the, the yellow is, um, the light color is actually the
same as the yellow. So the light, that light cream color is almost the exact same color as the yellow, just a much higher luminance and lower saturation.
I find it very easy in the eyes.
I've always been a dark terminal developer.
One of the things that I had to get used to was just the use of red.
And I'm used to saying red in my color schemes as Danger Will Robinson.
So that took some adoption to get used to.
But once I got over that hump,
it's been a lot easier in the eyes.
I think late in the day,
my old man eyes aren't squinting as much
as they were previously.
Yeah, it's really important for me
to have both modes, light and the dark mode,
specifically for that.
My eyes are terrible.
I, I have, you know, thick glasses.
And I definitely will switch about, you know, there's, there's a certain point of the day in which I switch from the light to the dark mode.
What's your favorite terminal font?
Oh, I have two of them.
Terminus.
I use Terminus a lot.
I'm a big fan of them. Terminus. I use Terminus a lot. I'm a big fan of that.
Although on the Mac, there's a Terminus port for the Mac, a couple of versions of it.
And they're not quite as nice as Terminus on Linux or Unix.
So, no, I really like Terminus.
But I also have a favorite, which is LetterGothic.
Of course, today we would say letter Gothic mono,
because there are non mono spaced variants that are out there.
So letter Gothic is, um, I don't know if you're familiar with that letter. Gothic is
actually a typeface that was designed for the IBM Selectric typewriter back in like the early
sixties. And it's, it looks like a typewriter font. Um, and it's actually the font that I use
throughout the solarized webpage. So even like at the top, uh, on that yin yang symbol, you'll see
that's, that's a letter Gothic and letter Gothic inspired a lot of other, I think it inspired like
Andale and there's a lot of, you know, there's a lot of DNA from letter Gothic mono and today's
monotype or monospaced, uh, typefaces. I'm testing it out now in myfonts.com, putting it through my rigorous test here of the dash rocket.
I have to put a hyphen with a greater than.
I guess it's used in Haskell as well.
And if those don't line up on that.
Yes.
Oh, okay.
Listen, hey, there's actually, so letter gothic mono is a beautiful typeface.
But in terms of being a typeface for code, I do use it a whole lot.
But I accept and embrace its idiosyncrasies as just part of its beauty.
If you look at, say, the brackets, the curly brackets, they're quite squashed, and they're not very distinct, particularly at smaller type sizes. And the zero is non-slashed,
and there's no dot in it, so it looks very, very similar to the capital O. Those are really
problems in terms of seeing more widespread adoption or popularity for letter gothic mono.
So one of my side projects is something I've been wanting to do for a while, and I've actually started to do this slowly, slowly, slowly, is to begin a new trace of a letter gothic mono-like typeface.
I think that if you do it from scratch, that it's basically okay.
Actually, it was interesting.
You had Micah Rich on recently, and he talked a lot about this, about, you know, the creation of fonts and open source
fonts. And I would, you know, what I'm working on right now is basically an open source implementation
of letter Gothic mono. That's I'm really slow at this and I'm not a, I'm a type lover. Um,
I'm a lover, not a fighter, a lover, not a designer. So'm a lover, not a designer. So I know that this is not my wheelhouse, but I can at a lot on Arch these days. And what's it been like
to move over to Linux and see something that's a little bit more bare bones or engineering driven
instead of design driven? And how have you found that transition? Yeah, well, you know, I've always
had a real split personality in that regard. You know, I've always done both code and design,
as I guess as a lot of web developers have. But you know, uh, it's been exhilarating.
It's been super enjoyable. I love arch. I, you know, I love Linux. Um, and I have high hopes
for Linux on the desktop going forward. Um, I have strong opinions about what's going on with
like Ubuntu right now and, and adoption of Linux on the desktop, but it's, you know, it's like,
I've, I've heard it compared to building your own lightsaber,
particularly with Arch.
And that's, I think, a very apt description.
You're just building everything.
You learn it.
You have to understand it.
One of the great things about Arch is that it's simple enough that it's all text files
and they're all in, you know, the slash.
It's all source distribution.
Is that right?
No, well, it's not like Gentoo, right? Like Gentoo, you know, you have to compile yourself
arch, uh, there, there, there's a binary, they're binary repositories. So you, you know, it's not,
it's not pure source. Um, there is also a user repository, which is primarily stuff that gets
compiled from source. Um, and quite often that stuff stuff which is either a little bit fresher or just necessary to run a reasonable system. So it's been great. I've really enjoyed it.
I'm not running GNOME on it. I like GNOME 3, actually. I may be one of the few people that
do, although I have to say that I really only like GNOME 3 because of the new web-based installer for the extensions.
But I'm using primarily Xmonad.
And Xmonad is a beautiful system.
It's an elegant system.
It's beautiful on the inside.
And it's a tiling window manager, if you're not familiar with that.
Like Awesome or some of the other tiling window managers out there.
And that to me is – it's almost, it almost feels like the future. You know, I, I, I realized that tiling window managers are some of the first window
managers that were available, like Xerox PARC. I think they were doing a lot of tiling stuff.
Back to the future with this.
Yeah. And, you know, I, boy, I tell you that, you know, when I'm working on, on Arch and I'm using
Xmonad and I'm using this tiling window manager, my, you know, your fingers just fly over the
keyboard and you're switching around workspaces
and you're bringing up browsers
and you're bringing up terminals
and you're bringing up MUT.
And it's all super fast.
And then I switch over and I'm working on my Mac
and I feel like I'm going at half speed.
I really, really miss it.
I feel like it's a professional interface to a computer.
Now, I stumbled across Arch, I guess, about a year ago.
I was getting into Tmux, and one of the best resources out there is in the Arch wiki around Tmux.
Have you used Tmux, the terminal multiplexer?
Yeah, you know, I have about 100 bookmarks to look at that involve Tmux.
I have notes about Tmux. I think I was looking
at something about Tmux yesterday. Yeah. I, I mean, I've played around with it. Um, and I,
I haven't really gotten into using it. I've been using like a, you know, I use iTerm in multiplex
mode on the Mac, but definitely. And I, so, I mean, Tmux, if I, you know, understanding it
correctly is, um, multiplexing your terminal, right?
That's right. Within a single terminal. And so, you know, for me, it's, I would,
I want to say it's a non-issue, but in, when I use, um, you know, X monad, that's essentially what I'm doing is I'm multiplexing, but not just the terminal. Of course, I'm multiplexing
the entire windowed environment. It's great if you pair program, because then if someone
tunnels in your machine. Oh, right. Yeah.
No, that's, I don't really see.
I'm such a hole up here in my little cave.
I'd love to pair program.
I'm probably not anywhere good enough to do that with anybody without driving them crazy.
So I was surprised to see support for iTerm alongside of Terminal app.
Do you have a preference on the Mac?
No, I use both. I still use both. I use like on the mac no i i use both um i still
use both um i use like on the mac i use total terminal um and i use uh i use i term as well
so i you know it's hard to say i don't really i don't have a preference i like to keep things as
simple as possible uh on the mac unfortunately in order to get the mac into kind of a usable state
approximating my workflow on linux you know, I ended up having to install a fair amount
of stuff.
Um, but I'm okay with home brew for that, or you wrote your own scripts.
Oh yeah.
Brew.
No, definitely brew, brew, brew, brew all the way brew.
Um, oh my God, brews, brews the best thing ever.
Um, I mean, I, you know, I know, you know, Mac ports has been out there and is you know that's the
a great gray beard system for the for the mac and i used to use mac ports all the time um
but i really feel like brew is also the future for you know it's sort of the it's the missing
repository isn't it absolutely it seems like the the one missing piece for OS 10 that Apple's left
out. And thankfully the community is, yeah. And you know, I, I realized like they have come out
recently, um, with, uh, you, you know, you, you can probably specify this in a way that I can't,
but, uh, with the support for, um, installing the command line tools that you used to have to
install Xcode for now you can download those separately, which is great. And I felt like that was a real nod to the
brew, uh, effort, um, sort of a kind of a tacit endorsement and, you know, keep going guys,
but it would be great to see more support from Apple in this regard. You know, I mean, this is,
if you look at brew and then you look at, I'm, I just learned about taps the other day, brew taps.
I have not seen that.
Yeah.
So brew taps, boy, and hey, brew people, if I'm butchering this, also my apologies.
But if I understand taps correctly, it's a way – so, okay, it seems to be focused on binary distributions using brew and not just – is that right?
Is that what taps is? Okay. I can see see people i can hear them rolling their eyes right now but but the the other cool thing about taps if i if i'm
getting this correct is that i will be able to set up a repository which is named something like
homebrew dash solarized and then you could then on the command line, type in brew, tap, altercation, which is my GitHub handle, slash, or altercation slash Solarized, I think is the syntax.
So basically pull packages from other users or other repos without going to the canonical source.
Correct, using brew.
Yeah, yeah, yeah.
So forget what I said about binaries.
The unfortunate part about Homebrew is just the naming.
Every time I try to Google something around Homebrew, you have to read through everybody making their own beer. Oh, listen, Wynn, this is a huge issue
for open source. This goes back to everything. This is aesthetics actually. Um, I, it's not
homebrew specifically. I, I think homebrew is just the bee's knees. So, you know, they can do no
wrong, but, um, you know, it's like, did you see recently that fresh meat rebranded? I haven't,
I haven't been out to fresh meat in years. Yeah, well, nobody has, I think.
Oh, geez, Freshmeet guys, if you're listening, I'm sorry.
But it's got to be the truth.
I think they realized that they needed to rebrand.
And I can't remember.
It's something to do with code.
I don't even remember.
It's a more business-y sounding name.
And I can imagine that what happened is, of course-
Freecode.com.
Yeah, Freecode.
That's what it was. So, you know, you try to sell services or you try to pitch like an open source related
project or product.
And if you're going to do it in a business environment or you want to just get traction
on it, at some point having a really goofy sounding name or a name that you can't Google
is a real hindrance.
I'm looking at you, Gimp.
Yes, you GIMP. Um,
GIMP makes me sad on a number of levels. Are you a GIMP user? You know, um, I really gave it a go, uh, and I'm not giving up yet, but I'm not really a GIMP user. Um, you know, Photoshop is a,
Photoshop is what keeps me on the Mac. I'll be honest. Um, Photoshop, not just Photoshop, but the entire Adobe suite, you know, it's, you know,
I use, I do a lot of print work.
Um, so I use InDesign pretty heavily.
Um, I suppose less and less, but you know, I still use a lot of InDesign Photoshop, of
course.
For me, Photoshop's turning in just to the last pit stop on the way out to the, to the
browser.
I usually start in Illustrator and then just copy and paste that smart object into, into Photoshop and add some layer effects. And so, right, right. Um,
I do that. I definitely do that as well. But you know, one of the, one of the differences between
Photoshop and GIMP isn't just the, you know, it's integration with a smart objects and illustrator
for me, but it's also the fact that it does 16 bit, um, still not there with GIMP. We're still stuck in eight bit land and it also does, um, lab color
space. So, and CMYK. So I noticed your personal website's running, um, hackle, which I guess is
Jekyll for Haskell. Yeah. You're writing a lot of Haskell. Um, well, you know, I'm, I'm cutting
and pasting a lot of Haskell, which is a kind of writing, isn't it?
Yeah.
And it's not just cutting and pasting.
I definitely write.
Haskell is great.
One of the reasons Haskell is great is because if it runs at all, it usually runs right.
And, you know, part of that is just, I guess, the nature of it being functional.
But it's a really beautiful language to write in. For those that don't know, it's functional, yet it's it's a really beautiful language to write in for those that don't know it's functional yet it's typed is that right yeah and you know what i'm i'm gonna
take a pass and describe giving you any more details about haskell because i'm definitely
gonna screw that up but um you know my intro to haskell was actually xmonad um again the tiling
window manager that i use in arch and so xmon monad is you, you, you implement X monad using essentially what is a, you know,
your preferences is also the actual, um, runtime.
So there are other window managers like that as well.
Um, boy, what's the one from, Oh, I'm drawing a blank here.
It's not awesome.
There's another one.
Um, it's been a while since I've been in that here. It's not awesome. There's another one.
It's been a while since I've been in that space, probably since metacity.
Yeah. Yeah. Yeah. Well, anyhow. But yeah, so the runtime is the preference file basically. And I started to just muck about with that and, you know, X monad, if you're not, if you're not
familiar with, I often see people ask like what tiling window manager should I try? Should I try
awesome? Should I try Xmonad?
And I know a lot of people kind of freak out because Xmonad is written in Haskell,
and Haskell is a really alien experience.
I mean, functional programming in general is kind of an alien experience.
But it's not really hard.
Once you look at a couple examples and you look at other people's stuff
and you can kind of get a feel for how they're doing stuff. It's super fun to work with.
Does Xmonad integrate with GNOME or is it its own deal?
You can. You can run Xmonad while you're in GNOME.
So you just run it as your window manager then.
And you get to keep things like your GNOME widgets, your taskbar, your menu bar and stuff.
So it was, I guess, Xmonad that brought you into haskell and not necessarily any sort of syntactical advantage of no no it
wasn't i mean you know there's i i can understand and i can appreciate the beauty of haskell now but
it wasn't um it was a purely it was out of necessity i guess um you know it was really
the only it it was the tiling window manager that I felt I could customize myself. There's, for example, there's a great
module for Xmonad, which is the, um, it's the input module. It allows you to create like kind
of a, if you're familiar with, uh, like Quicksilver on the Mac or Alfred, uh, or a gnome, there's gnome
do. So it's, you know, one of these quick entry tools. Um, there's a great feature in Xmonad, which is called Xmonad Prompt.
And you can basically do anything you want with it.
You can create it.
It's completely programmable, customizable.
So back to Solarize briefly.
2,200 watchers, 45 pull requests out there.
What's the story?
Do you need help?
Yeah, you know, I actually went to my first linux meetup the other day my first face
to face real world linux meetup specifically to chat with some folks about about solarize and
sort of the next step um you know and my decision at this point is first of all it's definitely
going forward but i haven't really been sure whether or not i should just um there's a there's
a whole list of little niggling problems, which I really wanted
to solve and solve properly, uh, before I started to, to iterate this any further. Um, one of them
is, is terminal colors. Uh, terminal colors are really, really tough. Um, for example, the way
that I have the terminal color set up right now, um, with the black and the bright black, I basically
needed to swap those around.
And then that's going to impact every other implementation out there. That's also doing
terminal color schemes. And then the other problem is I wanted to edit the history of the
GitHub project. Boy, you know, this was like my first big GitHub thing. I had done one other big
open source project prior to this, which was kinkless. And that was also, I had a lot of users,
but that was pre GitHub days. And I hadn't, I had a lot of users, but that was pre GitHub days.
And I hadn't, you know, I didn't really know what I was getting into when I did a big kind of GitHub project. I didn't know it would be a big GitHub project. Um, and I dumped a lot of
just garbage in the GitHub history that I shouldn't have. There's a lot of like Photoshop
files and stuff. So I thought, Oh, okay, I'll just edit those out. Well, that turns out to be
kind of non-tribulant. I don't want to screw it up so i thought about you know maybe what i'll do is
i'll just um kind of not mothball this but i'll start essentially solarize two at some point
and that gives i guess there's a couple advantages to doing that one is um i can i can i can revise
the the terminal color schemes and such and it's going to be very, very clear that people are going to have to update
because it'll be version two.
And also, I've got two other color schemes.
One is a lot like Solarized.
It's symmetrical, but it's neutrals, so it's not the blues and the yellows.
And then I have another which is non-symmetrical,
and it's a little bit wider gamut.
It's a higher contrast color scheme.
So then I'll be able to build those into that release.
And that's basically the next step.
Now, in terms of time frame, I don't want to hold myself to anything, but that's sort of my this year project.
Do you foresee having some sort of build tool in that repo where folks could test their colors across all of these different tools, or would you split these out into multiple repos?
Well, that's actually a question that I haven't resolved yet.
That's one of the reasons I was excited about BrewTap, because this whole idea, one of the neat things about BrewTap is that you'd be able to have the different repositories.
Homebrew wouldn't have to be pulling them in.
Homebrew could let different maintainers manage their repository entirely separately, but still have it be accessible via brew.
And I thought that's really cool.
Not that that's going to map over to Solarize directly, early on when i when i set up the github repository for solarized i really wasn't
sure whether or not i should be using things like sub modules um you can tell i mean i still feel
like a git newbie in some ways and i i'm relatively experienced with it but man there's just a whole
lot i just don't get in terms of like best practices like binary files for instance the
best way to manage binary files.
So what I ended up using was something called Git subtree, which is a non-official GitHub module or Git module.
And basically just some porcelain.
It's bash bash based get porcelain.
And that allows me to include external repositories in my main repository. But unlike sub modules,
you don't have to then run a separate command to import them after you check
out the repository.
Now I feel like that was a good solution at the time.
Now I'm not so sure what I would read.
The ideal situation for me is to have all the different ports for solarized
be completely externally maintained by different people and, and people and not have to be pulling them in, not have this enormous gigantic repository,
because it would be huge if I pulled them all in. So I'm not sure the best way to do that is,
honestly. I'm really open to suggestions from people.
Sounds like you need to fire up IRC and get a hash Solarized.
Oh, I've thought about that. I've thought about having
a hash solarized channel for a long time, but I don't know. I have, you know, I'm on IRC a lot,
actually. Maybe I should do that. I hang out in Vim occasionally, but, you know, signal noise
is the issue. So 222 forks of this project, and I'm sure a lot of that is to, you know,
add support for additional tools and things. But when you see folks tweaking the color scheme,
how does it make you feel? Oh, I'm fine with it. I'm okay. I'm okay with it. Um,
you know, it just means they don't have any taste, right? No, no, I've got to admit the,
and I'm not sure if this is I term or what, but, uh, I had a very early version of Solarize that the red was very, very red. I noticed,
actually, my colleague Karthik, when I saw it on his screen, I was like, you know, I could live
with that, but that's not what happens when I go to Solarize and iTerm too. And I think I had a
very early version or old version of it. And when I redownloaded it, I was able to live with the
more muted red. Yeah. The red, um, I spent so much
time on that red easily. Like, I mean, I think I spent more time on that red than all the other
colors combined. Red, red is really hard. Part of it is just like the human visual system. Right.
Um, part of it is the way that it interacts with light backgrounds very differently than,
than dark backgrounds. Um, part of it is the way that the display device works with red.
Um, you know, there's a real, there's a perception of bleed color bleed. So yeah,
that was really, really hard. Um, yeah, that's actually one of the things that I'd like to do
is there's actually a lot of interesting research, CIE related research and color space and lab
related research about the way that, um, not just the human visual
system works in terms of the nonlinear response to say different luminosities, but the way that
the visual system, our visual system works in terms of a contextual contrast. So the specifically the
way a certain value of red looks against a dark background versus a light background. And I'd like
to incorporate some of that research and sort of the next, either the next iteration of Solarized
or a different color scheme. Another thing that slowed my adoption of Solarized was just
tweaking my TMUX setup to have yet another color scheme in there because I'd already done that for
my dark color scheme. And so TMUX colors are very lightly documented.
I finally found the way to do essentially transparent colors by just saying default.
I can let the window bleed through from underneath the status bar.
But do you have some sort of glossary across all of these tools that maps, you know, this is that and this tool and this tool and that tool?
You mean in terms of like transparency of the background?
Like foreground color, you know, the syntax changes between what you want to pull off in vim versus the terminal versus mutt
no no i don't it's and you know even mutt um you can have end curses mutt and you can have slang
mutt and um they're both they both handle colors slightly differently um those you know it's
if there is a rosetta stone for this out there, I certainly don't know of it.
I don't have it.
Um, other than like lots of notes and then the cognitive map that I've developed over time and lots of pain.
So you haven't automated any of that.
It's all no hand.
No.
And well, it's all by hand.
Um, and that's one of the reasons that I don't have, I didn't initially roll out support for, you know, just a wide variety of
terminals right off the bat, because they really do all require a lot of handholding.
So you mentioned Mudd a couple of times, any other text mode tools that we should check out?
That specifically have support from Solarized or that are just awesome?
Either, either. I'm always looking for awesome text mode tools.
Well, I'm a big TaskWarrior fan right now.
I don't know if you know TaskWarrior, but it's a command line task management tool.
They just released version 2.0.
2.0 is available via Brew.
And one of the reasons I'm excited about TaskWarrior is not just because it's a CLI tool for doing your task management.
And they're cognizant of things like GTD.
It also does have a solarized color scheme built in, but it also has a cool server-side component,
uh, which is still in development. I don't believe that it's available. It may be available somewhere,
um, in alpha form, but I'm not using it right now, but once the server-side component is out,
then it's really going to be kind of a distributed, um, device independent solution. And I, you know, it's, if you look at
the development of that project, they're very active. I'm currently using task paper VIM just
because the task paper iPhone client allows me to take it with me on the go. How are you
handling the mobile aspect of it? If at all? Well, for a while I was doing,
I was piping stuff in through email.
I don't do, and I am pushing stuff back out through email,
like doing quick, you know,
like shopping list exports from Task Warrior.
But, you know, I do also keep like just text,
flat text file lists that are essentially like task paper.
I think task paper is pretty cool.
But, you know, in terms of on the go stuff i'm in
my cave all the time i'm never on the go going back to favorite monospace font before i let's
forget to ask drew neil dimcast fame wants to know about your favorite monospace font which we
asked about that earlier but what you would like to do with it yeah well no it's definitely um what
i want to do with it is that uh is what i, it's definitely, what I want to do with it is what I described,
which is that kind of an open source retrace
of Letter Gothic Mono.
Ah, gotcha.
Makes total sense now.
When I got that via Twitter yesterday,
I thought maybe it was some sort of inside joke
that I didn't know about.
No, no, I introduced him.
Ask him what he wants to do with the font.
Yeah, I know.
I introduced him to Letter Gothic Mono.
I mean, I think it's, you know,
Letter Gothic is, it's classic. It's
beautiful. Um,
I certainly, you know, I keep coming back
to it. I'll occasionally leave it for something else, but
I keep coming back to it. So,
um, definitely would like to see
it in an open source format.
Do you have a solarized
theme
for task warrior or is it just inherit what
comes from the terminal?
Somebody else built it. They built it and it should be distributed
with TaskWarrior 2.0.
I think it was also distributed
with 1.x as well.
In terms of setting it up,
it's like a single command line
to run,
operation to run to set your preferences
to use that color scheme.
And they have both a light and a dark mode and they're really well done. I should say,
use more light or dark. Oh, I it's, it's a pretty even split, um, time of day based or,
you know, what's funny is I actually started designing and developing the dark mode first.
And that was sort of the dominant, you know, cognitively that was the dominant theme for me.
And over time, I think I started, I've, I've kind of migrated more towards the light background.
But it's definitely time of day.
You know, it's definitely, like if I'm in a dark room, for sure, dark background.
Before we started recording, you were telling me about, in the move to Linux, audio and Linux was the biggest challenge.
Yeah. Yeah. Huge sigh. Yeah. You know, it's funny. Well, this is just sort of indicative
of Linux on the desktop in general. And I see so many people ask that same question and I'm sure
you do too. Right. Which is why, you know, is this the question we all kind of scoff at and
laugh at, which is, is this finally the year of Linux on the desktop?
And the answer can only be a resounding no for most people, but it's certain I think developers still do.
And I mean, I use Linux on the desktop.
I know a lot of developers that use Linux on the desktop.
I would be Linux on the desktop full time for everything if certain conditions could be met. And those conditions would be that audio
not be a complete nightmare. Um, that, that I had a decent graphics editing tool,
you know, I don't, I'm not asking the world. I don't need, I don't need, I even give up CMYK
support, but I just need it to be 16 bit, you know? Um, how long have you been using Linux on the desktop since 2010? Um, and
prior to that, of course I used Linux. You're relatively new. Oh, I'm a total noob. I'm a
total noob. But you know, I mean, I jumped in with both feet. I mean, I've released a lot.
I've written a lot. I wrote like a, an installer for arch Linux from scratch just to kind of teach
myself how to do it. Um, you know, I've written, I've done a lot of,
yeah, I've really tried to be aggressively engaged
and also kind of a good citizen of that community.
I think I first got into Linux on the desktop 97 or 98.
Oh, man.
It was so funny back then,
you would spend all this time on your Windows desktop
to trick it out to make it look like Linux
just because it had the cooler look and feel feel and sometimes you're on linux you'd
go the the opposite direction but lately i spend most of my time in text mode oh yeah totally um
that i mean that's for sure like you know one of the reasons that uh x x monad has been so great
for me is because i you know i'm just spawning terminals all the time um And having it be a tiling window manager is ideal.
But this is one of my biggest appointments
with Linux on the desktop right now.
And actually, look it, Ubuntu,
I applaud what Ubuntu is doing with Unity.
And I'm not a Unity user myself,
but they're taking a risk.
They're experimenting.
My problem, I shouldn't say my problem with Ubuntu, but,
uh, my concern, I guess, is that I S I see them doing things like, you know, they were,
they were working on like the T Ubuntu on TV. And to me, that is such the wrong direction to
be focusing their energies. Um, you know, it's a consumer product. I understand. And, you know,
we have Linux and consumer products today. We have Android, but I would love to see concerted effort over the next 24 months to solve a couple key problems in
Linux and the desktop. First of all, I would love to see these distributions focus on developers.
I mean, this is the low hanging fruit people, right? I mean, like developers right now,
if you're a developer, if you're a web developer, what are you doing? What are you choosing from?
You're choosing between Mac and Linux primarily. That's true. Right. And, and the Mac is a really
appealing platform. The Mac has some awesome tools, but I am super happy developing on Linux
other than the graphics issue. And what's weird to me is I look at the development of things like,
you know, that, that kind of strident response from the gnome team where they were like, look,
we're not going to allow any customization.
We're not going to have – they were really adamantly against the web-based extension installation.
Ubuntu with Unity and this real push to really focus on sort of like consumer adoption. I feel like what's happening is they're forgetting about the fact that they really – they cannot lose the developer market.
If you lose the developer market before you've achieved the consumer market, you've lost everybody, you know, and that, so
that, that's really, I think number one, just don't forget about your key market developers.
Um, and, and, you know, anything, if you're not focusing on developers first and really making
sure that you're at least taking care of them, everything else is a fantasy. Um, number two is
they really have to solve the hardware problem. You know, I like boy, when I was researching what laptop to buy,
I don't know if you have this experience, but like the, I went through probably 16 different
wikis before I made a decision. And one reason why I'm on the Mac is it limits my choices.
What did you end up getting? Well, I went with Lenovo and, you know, I've always been a fan of
ThinkPads. I've had ThinkPads since they were produced by ibm and i've always been fairly happy with the build quality um
my my experience has been sort of mixed this time around i've had i have two lenovo sitting right
next to me right now i have two thinkpads i'm on i'm on an x220 um tablet with the touchscreen
actually which is pretty cool i'm excited about the multi-touch features that are being put into the, into X org right now, but you know, that's, I just feel like, uh, another great move would be
some kind of industry consortium where you had like Fedora, Ubuntu, a couple of the other big
distributions arch, of course. Um, but you know, get these people together and say like, let's,
let's pick for the next 12 months, the next 24 months,
three laptops, two laptops, make it two, make it simple, you know, one high end and one kind
of very lightweight netbook like system and have those be baseline gold standard systems.
You know, if I knew that it was as easy for me to go out and get a Linux laptop and, you know,
for certain values of easy, but if I could go out and get one of those two gold standard systems and know that Fedora, Ubuntu, and of course, Arch, the most awesome,
that these distributions were going to be supporting that particular model for 12 months.
I mean, not supporting, but that they would be tested or that it would be sort of a known,
and you know, this is Linux we're talking about. I'm not, I'm not saying that it's not, it's,
it has to be easy, you know, like just out of the box, everything is working.
But there is going to be a dedicated forum for that laptop.
There's going to be a set of drivers that are tested and that I can get it working and I can feel comfortable making that choice.
That right there, I think, would spur a lot of adoption.
Have you had any problems getting drivers for Arch?
No, no.
It's been great.
In fact, Arch for me is a lot better. I really prefer Arch because of that. I mean, the rolling release model is stellar. I love it. You know, I have not, you know, you always hear horror stories about Arch breaking and I certainly, I haven't had many problems with it. I mean, occasionally once or twice, but it's never been a showstopper for me um no i i just love it i feel like it's much easier for me especially given the weird hardware that i'm running the touch screen
it's been a lot easier for me to run arch and get that kind of that kind of stuff uh working
functional the way that i want it um you know i have multi-touch running with xmonad right now
so that i can swipe using a four-finger swipe on the screen back and forth and have it switch
xmonad spaces i mean you know like that kind of stuff i can't even so that I can swipe using a four finger swipe on the screen back and forth and have it switch Xmonad spaces. I mean, you know, like that kind of stuff. I can't even do
that. I can barely get, you know, OS 10 Lion. I can barely get spaces working the way I want.
You know, this is why Xmonad is great for me because I can just absolutely customize it down
to the metal. And spaces is broken on Lion. If you have multiple screens, it's just,
oh, it's terrible. It's terrible. I mean, it's criminal, really.
You know, that's UI criminality right there.
So one last question for you.
What's on your open source radar?
Anything out there that you just want to play with?
Oh, boy, that's a good question.
Boy, I don't know.
Let me think about that for a second.
Thinking, thinking. Yeah. So, uh, things that are open, uh, open source
projects on my radar, um, I guess I, there are things that I would like to do certainly, uh,
open source projects that I'd like to, to be involved with. Um, I, you know, I'd like to do
a lot more with Vim. Uh, Vim's always on my radar, but it's great to
see that Vim hasn't slowed down at all. Uh, one thing I would love to do is, and this is not like
a particular project of my radar, but I'd love to see some, some effort in terms of the kind of the
Vim documentation and the Vim wiki, which is really aging. Um, I'm not sure what, you know,
what could be done there. And I feel like there's enough smart people in the Vim community right now
that something could happen. Um, so I'd love to be involved with kind of revising that.
Vim's one of those tools that your friends tell you about and then you get into it, but it's,
it's kind of hard to go somewhere and, and learn and make an objective decision of if you want to
jump into this editor. Oh yeah. I mean, it took me, I really had to like section off about a,
literally a month of my life to learn them without exaggerating
like i think i just kind of like hold up for a month and was like okay i'm gonna learn them
um it's like touch typing for your brain right i mean it's you know it really just requires a
significant remapping of the way that you deal with text and i think dr nick called it 1960s
video game technology.
1960s were awesome.
He's got a certain – that rings true to some extent.
Some people ask you, how did you do that in Vim?
A lot of times, I don't know.
I'll have to do it and watch my fingers because it's just muscle memory.
Oh, totally.
I mean it's like I have passwords like that where if I think too hard about the password, I'll probably type it in wrong because my fingers remember it pretty well, but my brain doesn't.
Um, other than that, no, I'm, I am still playing with PF sense. I have a, I built a router, um, which is running PF sense, which is a BSD and it's just an outstanding, uh, uh, firewall and router solution. And I did a lot of custom hardware for that. So like I had a custom faceplate burnt
or custom faceplate cut out locally here in Seattle
and did a lot of custom chassis design for it.
So that's been a lot of fun.
Well, thanks for joining us, Ethan.
It's been fascinating to talk about Solarize
and some of the theory behind it
and just a wide range of topics.
Yeah, well, thanks for having me, Wynn. It's been a very enjoyable chat.