The Changelog: Software Development, Open Source - Building the Ultimate Hacking Keyboard (Interview)
Episode Date: December 11, 2015László Monda (aka Lotsy) joined the show to talk about a keyboard for hackers — the Ultimate Hacking Keyboard. We discussed the features, the hardware design, the open source that powers it, and m...ore.
Transcript
Discussion (0)
I'm Laszlo Monda, and you are listening to The Change Log.
Welcome back everyone, this is The Change Log, and I'm your host, Adam Stachowiak.
This is episode 186, and on today's show we're talking to Laszlo Monda, also known as Lati.
He's building the ultimate hacking keyboard.
That's right, the ultimate hacking keyboard, also known as UHK.
We talked all aspects, hardware, software, the open source around it,
how it's a platform for hackers to hack on and make it their own.
We also had four awesome sponsors, CodeShip, Toptal, Harvest, and also Linode.
Our first sponsor is CodeShip, and they've got an awesome e-book totally for free for you to download today.
Head to resources.codeship.com slash e-books, and you're going to see a book there called Why Containers in Docker Are the Future.
Now, this e-book is going to help you learn what the differences are between your traditional virtual machine and container stacks. You'll also learn about Docker and its ecosystem and why it's
such a big deal. And you'll also learn about Docker and its community and how they're helping
to standardize the container workflow. Now you can go to resources.codeship.com ebooks right now and
download this ebook. And I shouldn't tell you this, but when you do that, you're going to get access to three other eBooks from CodeShip, diving deep into Docker,
continuous delivery, and how to do all this with native Docker support. Head to resources.codeship.com
slash eBooks and download those eBooks right now, or head to our show notes for the link.
And now onto the link. And now on to the show.
Everyone, I'm here joined today by Lazo Manda,
also known as Lazi. And now maybe, Lazo, you can describe,
because you're Hungarian, how names work for you.
Yes, so in Hungary, the first name comes last and the
last name comes first so in Hungary I'm Mondo Laszlo and in the U.S. I'm Laszlo Mondo. So which
one is actually your first name then? Laszlo. Laszlo okay. Yep. But your friends and the Hungarian
nickname for you is Lottie.
Yep, exactly.
And so for this show, I'm going to call you Lottie.
Okay, thank you.
That's awesome. I like that.
Well, you know, we like to be very personal with our guests around here at The Change Law.
We love, you know, not just the software you produce and the community that thrives around that software and what gets open sourced and the education you share.
But we also care about our guests.
And, you know, one of the things we love most is just kind of diving deep into the past of a guest.
Now, maybe to set up the topic at hand, though, is we're going to be talking mainly about this keyboard you've made. This ultimate hacking keyboard is what the name of it is. And if I can recall correctly in ChangeLog Weekly issue number 36, we linked to a post that you shared
on the TopTile blog called From the Ground Up, How I Built the Developer's Dream Keyboard. And
that was the number one clicked link. And for those out there listening to the show that subscribe to
ChangeLog Weekly, we have sponsored links in
there and they're clearly marked this was a sponsored link and it was the number one link
in the entire email so we were pretty stoked about that what did what did you think about that did
you even know about that not really i i it was crazy because the attention that that post got
was way above our expectations.
And it got reposted in various sites.
And it gave us about 2,000 subscribers.
And we talk about some days too for that post.
That post was posted on, let's see if I can see the date here.
I can't tell a date, but I know that changelog 36
came out around the same time of that
post and that was in
January 17th
of this year so all
year long you've been working hard at this
you wrote that blog post on
the TopTile blog and you're also part of the
TopTile network so dogfooding
here a little bit a little disclosure to you and the listeners TopTile has, and you're also part of the TopTile Network. So dogfooding here a little bit, a little disclosure to you and the listeners.
TopTile has been a sponsor of this show for many years now.
They love what we do here.
They support almost every single show, but we have a deep partnership with TopTile.
And they're actually sponsoring this show in particular just by happenstance.
They didn't even know that you were coming on the show, but you're also part of the TopTal network.
Can you speak a little bit about your experience so far at TopTal?
So I went through their interview process
and became part of the network.
I haven't yet worked through TopTal.
I created a couple of blog posts on their blog,
and this was the more popular most popular so far so i was
talking to anna who is also a top town member and she mentioned me that i should really write a blog
post to the top blog and for what i gathered i've talked to brennan uh benishat the co-founder and
cto or coo as a matter of fact
and you probably know Brendan
but part of the TopTile network
isn't just about helping developers get plugged into
actual paying gigs
where you're getting projects
it's also becoming a part of this
worldwide developer network
and I really don't want to make this an ad for them
but I think this is really interesting because
this is a chance for us to talk to and top teller are here on the show and share a bit about you know what their
process is and kind of how you stepped into that and while you may not have taken on any engagements
you've blogged and as you'd mentioned this particular blog post that we covered in change
all weekly issue 36 was huge for you so what was the the
ramifications what came from that initial blog post about this project well uh what do you mean
by saying ramifications well when i say like what uh what was the ripple effect so you posted the
blog post we obviously covered it who else found interest in this post and was like, wow, this is really interesting?
Okay.
So this post got featured on the blog.
And then I think the blog has,
the TopTab blog has 7,000 subscribers or viewers.
So it got huge attention. And if you see at the end of the post
there are dozens of comments and then it got reposted on there is a site java.dzone.com
where it it received a huge attention again and then i I sent it to Slashdat, where it got featured on the main page.
So it was a huge ripple effect for sure.
And it helped us tremendously.
And we got our 2,000 subscribers just based on this one post.
Now, as our listeners know, we do like to dive a little deeper into the past and history of our guests.
And like I said, this ultimate hacking keyboard is the main topic.
I got a couple more questions that kind of, you know,
kind of tee that up a bit,
but we are going to dive deeper into your past a bit
and find out where you came from.
But if I go back to this blog post,
and listeners will have this in the show notes for
the show so as you know go ahead and head there look for the post from the ground up how I built
the developer's keyboard or dream keyboard and you'll see the post we're talking about if you
want to follow along but if I look through this post it's talking about Arduino it and the look
of the keyboard that's being shown here is different than the look of the keyboard now. What
stage was this keyboard in? What was the stage of the project when this post went out? Was it early?
Was it still not quite where it's at today? Yeah, I guess that was our third generation
prototype that we featured in that post. And back then, the two keyboard halves
were connected by a retractable cable,
which had a totally different look
than the current cord cable.
It's like a telephone cord right now.
It's shorter.
A spiral cable.
Yep, yep.
Yeah.
I kind of like that better.
I can imagine.
I haven't touched it yet to know,
but I feel like that's a better kind of cable.
Absolutely.
Which is why I asked you that,
because it does look a lot different.
Yeah.
So those retractable cables failed on us.
Like there is no tomorrow.
Those were super unreliable.
And the funny thing is that there is a manufacturer on the market who
says they keep their keyboards with that cable and some customers complain that it's unreliable.
And because we had so many iterations with our prototype, we were able to throw that cable and use another
one that is actually reliable.
So we won't have complaints later on.
Gotcha.
Well, Laci, I mean, I think the listeners have got enough so far to understand that
English might not be your native language or first speaking language.
And I find it very interesting.
The last show we had, episode 185, if I recall correctly.
Let me go back to my notes real quick. We talked to Ahmad Nasri, who is from Syria originally,
and he had this really rich story of how he came to software,
how using the internet was illegal in Syria,
but yet he found and others found a way around hurdles.
And you can take that same conversation we had in the last show
and take it back to Mitchell Hashimoto and several other guests we've had that have been influential software developers that come on the show.
Maybe I teed that up in a good way, maybe a bad way, but what is it about your history? You're
from Hungary. What can you share about where you came from to get to being a software developer?
Where should we start with that? Well, I got my first computer in the age of six.
It was a Commodore 64.
And from that point, there was no going back.
So I guess I'm just the geeky type who likes to tinker.
And programming pretty much allows this. You can break down problems and
solve them. And it just makes sense to me and it's attractive to me. And later I got
my first PC and around the year 2000 broadband internet access became widespread in Hungary.
And I got into web programming.
And over the years, I used a large number of languages, Java,.NET, Python, JavaScript, Bar Shell.
And I wrote all kinds of applications,
GUI, command line, client, server,
and lately programming microcontrollers and understanding the various layers of the software stack.
And I guess I'm pretty much full stack.
Pretty much full stack. Pretty much full stack.
I would think so.
I mean, here in all the languages
and things you've messed with,
that's definitely full stack.
And I think it depends on who you talk to,
what full stack means.
I would actually probably label you polyglot
more than full stack,
even though full stack is a better,
probably totally accurate.
I think full stack is sometimes used to describe somebody on the web, potentially that's, you know, backend database, you know, ops, front end design even.
But maybe polyglot.
What do you think about polyglot? Yeah, I think it's a better term in my case because the UHK is not only about programming,
but also about designing hardware and soldering microcontrollers on the circuit board.
So yeah, polyglot glut is a better term, I believe. So whenever you look at a problem and that problem involves design, software, how do you first think about it?
How do you reverse engineer a problem to say, this is the language I would use, and I would use this feature, this feature, and this feature?
How do you approach some of the things you've done here?
Or maybe even some of the first problems you had whenever you were first learning a program?
Oh, geez, it was such a long time ago. We have so much more opportunities right now.
And nowadays I use JavaScript whenever possible because it's so easy to prototype stuff in JavaScript.
But well, back then I used BASIC for the Commodore and learned C and then scripting languages
and realized how much easier it is to achieve
to solve problems in scripting languages.
It's a pretty general question. I'm not sure how to answer it.
Well, I think from the polyglot standpoint, you know, whenever, okay, let's maybe, instead
of going back in the past, let's state it now or in the last few years, whenever as
a polyglot, when you look at a problem, what are, you know, how do you, you know, for those
out there who may not know what a polyglot is or have an idea, want to be one, which is someone who loves and knows many languages and can look at a problem agnostically and say, why do you use this language for this problem?
Or I would use that for that.
How do you think about things like that? Lately, I had to learn so many stuff that I ended up using mainly JavaScript.
So JavaScript is your thing now?
Yep.
Because earlier I used Python for certain purposes and then Node became VisePread.
And the whole JavaScript library ecosystem got so rich that I realized that I can solve almost any problem that I encounter with JavaScript.
And I adapted it as my number one language. Earlier I used PHP and Python for many of those tasks,
but nowadays it's mostly JavaScript for sure
and C for microcontroller programming.
Yep, so maybe I'm not the best guy to answer these questions
because I just had to learn way too many stuff lately
and I had a lot of things on my brain and i i have to focus
the one language gotcha well when it comes to um i guess some history what was you know you
mentioned the commodore 64 and you mentioned the PC. Can you remember some of the very first substantial things you've done that
were like,
that played a pivotal role into either you building the UHK keyboard?
Like what was it that was pivotal earlier in your life that,
that is a,
you know,
a fun story that you can tell that's about how you got to where you're at today.
Wow.
Could be an influencer, could be, you know, a particular project, maybe some client work.
What was it that got you, you know, prepared to be the person behind this awesome keyboard?
It's so hard to pick a single experience. Tell me. Yes, so for example, I was working on an
government system for a client and for that I used PHP and Ajaxified, so to speak, a major UI component. That was a filter table.
And then I was working on a startup as a co-founder.
It was called OneDir.
And so it worked like you logged in to, it was a web 2.0 site,
if I can use that term because it's a web 2.0 site if i can use that term because it's heard yeah so the way it worked
you logged in and you you searched for songs and you you added this the song of your choice to the
to your uh playing uh to your wish list and then the system was listening to about 100 radio stations.
And as soon as on one of those stations,
it encountered with a song on your playlist, it recorded it.
And so you could play it back or download it in your browser.
So this was a pretty cool and fancy web application.
Gotcha.
And as I understand it, kind of fast-forwarding a little bit closer to today
in preparation for all this happening,
and I guess to tee up prior to the break,
we got about three or four minutes before the next break,
but just to tee up the next conversation and maybe prime it a little bit,
the UHK, the Ultimate Hacking Keyboard, just to tee up the next conversation and maybe prime it a little bit um the uhk the ultimate
hacking keyboard um has it has not a kickstarter it's uh it's something different that i haven't
personally heard of until i went to this one which is crowd supply so if you go to
crowdsupply.com it's a similar to kickstarter i don't know, why did you choose CrowdSupply over something else to, to in quotes, kickstart this thing?
Yeah.
So the two major crowdfunding sites are Kickstarter and Indiegogo.
And about two years ago, we were contacted by Indiegogo
and CrowdSupply independently. And initially I was hesitant to choose
one over the other but I guess CrowdSupply better appeals to the geeky
type. If you take a look at their campaigns there are many developer related projects like hardware projects and developer boards.
And I think these products appeal to our type, to our kind.
And they not only do the crowdfunding stage, but they can also help you in in pr and and in uh contacting manufacturers and
yep they they do all this extra so crowd supply is a little different than kickstarter i didn't
i never really looked into the details like i almost imagine that you you're in charge of your
own kickstarter it's essentially a platform for bringing the interests of the masses
but it's up to you to
build out your page, do a video,
source materials.
This seems like it's a little
bit more... Here in America
we have a show that you probably
watch yourself.
It's called Shark Tank and it almost reminds me
a little bit of that where if you
work with a shark, which is what they're called in the show, then they bring their own attributes to help you get to your goal.
So not only do they bring buying into equity with funding or whatever, they'll bring in licensing partners.
They'll bring in retail manufacturers.
They'll bring in distribution operators they've been working with for years.
So is this similar with CrowdSupply,
where not only are you hosting your fundraising campaign on there,
but they're also helping you in other ways too?
Yep, they are able to if you ask them.
Okay.
Yep, absolutely.
Does that mean they take a bigger piece of the pie
or does that mean that's just an a la carte feature
that you could just use if you want to or don't well i'm not actually sure what's what's the deal is regarding regarding the
the extra services like contacting manufacturers because in all honesty we didn't use that feature
because we built up the connections with manufacturers.
You already had your own contacts then?
Yep.
Good.
But it's pretty interesting about crowdfunding that many people think that Kickstarter or
Indiegogo is a way better platform because they are better known.
And the truth is that really you have to bring the people to the site.
So prior to launching our campaign,
we were proactively working on developing this subscriber base,
collecting all these people via our site.
And if you don't do that,
then you won't be able to make your campaign a success.
I'm glad you mentioned campaign because that was next on my list before we go into this break is, is there's a campaign,
as you can guess on CrowdSupply because as we've been talking about here,
the campaign's name is Ultimate Hacking Keyboards.
If you're going there and searching, feel free to,
but we're going to put the link to the campaign show page in our show notes.
And right now, before we go into the break, you are 104% funded, which means you don't really need the help of this show, which the funding ends this Sunday.
So we're recording this on December 9th around mid-afternoon here in US Central Standard Time.
And we'll have it edited and live on Friday morning.
So if you're listening to this, it's either Friday, Saturday, Sunday or later, obviously.
But if you're listening to this now and now for you is December 11th, December 12th or December 13th.
If this is an interesting topic to you, you can go to the URL we'll have in our show notes
and commit some support to this project at whatever level, and we'll talk more detail
about those levels.
So I always find it interesting to have these kinds of conversations on this show because
it's sort of two parts.
And in some ways, if Jared was on the show today, which he's not,
he had some things going on, by the way.
So that's why it's just me on the show.
But in some ways, we don't really want to be the show where we have funding things
on this show because we kind of feel spammy in a way.
But there's so much open source you're doing behind this. And it's such a core component to being a hacker to have the ultimate hacking keyboard.
It only made sense to have this conversation. So this is the last time I'm going to really
press the issue of going there and checking it out. And if you want to fund it, then you can.
So as I said today, we're recording it on the 9th. The campaign ends on the 13th,
which is December 13th. So if you're listening to this between 9th. The campaign ends on the 13th, which is December 13th.
So if you're listening to this between the 11th, 12th, and 13th,
you still have time after that.
Maybe before the closing break, you can tell the listeners,
if they're listening to it on the 14th, 15th, 16th, or beyond,
what can they do after the funding is over
to kind of hop in and take part and support this?
Yes, so like I said, we will take pre-orders. over to kind of hop in and take part and support this? Yes.
So, uh, while you're crowd supply, we will take pre-orders.
So right now keyboard costs, uh, $200 and, uh, beginning from the, uh, from the
15th, uh, it will cost 220, a little bit more expensive, but still cheaper than after the shipping,
which will happen on the July of the next year.
Gotcha.
And then also to, to mention, um, on that note, if people are going there now to
support it, um, you're shipping potentially what mid to end of 2016.
So it's, it's the end of 2015 now so it's almost a
year turnaround until someone might have this in their hands that is that roughly your estimate
well uh it will happen in july okay so july 2016 is when shipping kicks off exactly yep good well
all right lots of that takes us into our first break. So let's take a quick break.
When we come back, we're going to dive a lot deeper into the UHK,
what it is, the software behind it,
what it takes to actually make hardware and software meld together.
This has been a labor of love for Lottie, so I'm sure we've got lots to cover.
But for now, let's break real quick here from a sponsor, and we'll be right back.
TopTal is by far the best place to work as a freelance software developer right here on today's show.
Lottie and I talked about his experience at TopTal and how he's enjoyed being a part of a global network of engineers and the impact that has had on the ultimate hacking keyboard. If you're freelancing right now as a software developer and you're looking for a way to work with top clients
on products that are interesting to you,
challenging, and using technologies you want to use,
TopTile might just be the place for you.
Also, a new perk to mention is being able to apply
for a grant to work on open source of your choice
so you can take a break from client engagements
and get back to open source
with the financial help of TopTile. Now, if you want a personal introduction, reach out to me,
adam at changelog.com, and I will gladly put you in touch with the right people at TopTile.
Otherwise, head to TopTile.com slash developers to learn more and tell them that change law sent you.
Alright, we're back with Lottie.
So, you know,
Lottie, I'm just so excited about
the conversation coming up because we're diving deep
into the ultimate hacking keyboard.
And now I'm going to preface this
next two parts of the show with
the fact that I've personally
never thought about using
something like this. Now, I'm primarily a front-end guy, designer, user experience,
fluent in SAS, HTML, JavaScript, those kinds of things,
but more on front-end web development.
So I'd never really thought about personally using one of these.
And I know Jared uses a similar keyboard.
It's more for ergonomics, not for re-key mapping
and totally hacking this keyboard. But
I'm kind of curious if you can share where this idea came from for you. What made you think, man, I need to make a keyboard that's totally for hackers?
Yeah, so it was back in the August of 2007, and I noticed moving my hands between the various blocks of the keyboard.
Like there is the alphanumeric block and there are the FKEs and the navigation block and
the numpad. And I thought that it would be great if I could stay on the home row and never leave it.
And of course, it's possible with whereas editors like for like VI, but you aren't always in VI.
And I wanted to stay on the home row in a universal manner in every application.
Right.
So that was a major design
principle. The other thing was I wanted it to be a split keyboard because I noticed my hand in this
in this rather uncomfortable posture close to each other and I thought that it would be great if I could just separate the keyboard
halves and position and orient them in any way I want and I also wanted to make it in a way that
the two halves can be attached as one and so it's super compact for transportation purposes.
So I came up with this idea and became super excited about it and created a Linux user and I created an XMODMAP keyboard,
which is basically there are these files,
these XMODMAP files that you can write and they contain
various keyboard mappings.
And I configured my software mapping in a way that I press the Windows key along with
JKLI and it mapped to left, right, up, down. So I created the navigation block in the JKLI
keys and I mapped other keys like page up, page down, home, and to that region. And this way
I didn't have to move my hand, only my fingers. But it wasn't ideal because for switching between these layers
that is reaching the navigation function via the Windows key,
it wasn't really comfortable.
And I was thinking how to make it more comfortable.
And I realized that if space is split then
one part of it, one side of it can be used as space and the other can be used as a layer
switcher key so to speak.
So on the UHK the right space is the space actually and the left space is the mod key and if you keep mod this is a layer
switcher key if you keep it pressed then the jkli will will trigger left down page up and page down and seven becomes F7. So you basically map every key
outside of the alphanumeric block to the alphanumeric block with the mod layer.
To paint the picture, we mentioned that it breaks apart. So at the middle of the keyboard,
I'm not sure which exactly, I got a picture up here. Let me go over it real quick so I can reference this.
But basically, if you're looking at your typical keyboard,
from the number row down to the space bar row,
you got 6, T, G, B, and what is normally a space bar,
which is actually split between a mod key and a space key on either side.
That's where the keyboard splits.
And that's on the left-hand side.
On the right-hand side, you got, again,
from the number row down to the space,
you got 7, Y, H, N,
and what's typically the space bar,
that's on the right-hand side.
So at that point in the keyboard,
if you're looking at your own keyboard right now,
that's where you can see the split
that Lottie is talking about.
And so I just wanted to paint that picture
because you're describing it to kind of paint
that picture for the listeners, because this is not a visual.
Sure.
Okay.
So the keyboard is split according to touch typing rules.
So if you do correct touch typing, then you should be comfortable and not reach over to
the other keyboard half.
Which means the J key and the F key has got that little knobby
that you can kind of feel with your pointer finger.
Yep.
Okay.
And the six key is always a subject of debate
because in the US,
US people are trained to press the six key
with their right hand, but for
various parts of the world, for example in Hungary, we are trained to press it
with the left finger. I guess I really thought about what hand I used
to press the 6 key. I guess maybe I just did a little test here as I was listening to you
I'm thinking I would probably go with either. I don't know, I guess maybe, I just did a little test here as I was listening to you, I'm thinking
I would probably go with either. I don't know, I guess it depends on how my brain feels.
I never really thought that there's a particular pattern that's already existing there.
So the reason the 6-key is on the left half is because of symmetry. Because the keyboard
is more symmetrical this way.
Right. symmetry because the keyboard is more symmetrical this way right so this is the reason so there is
the base layer that features uh hj cal k l and the other keys and there is the mod layer if you keep
the mod key pressed then then this becomes left down right and all the other navigation keys. And there is the mouse key
that is in the place of Caps Lock and if you keep it pressed then JKLI will move the mouse
pointer and this works without installing any special drivers because the keyboard exposes standard USB descriptors towards the host.
And then there is the the Fn layer. You are all familiar with the Fn key and it has various
MIDI shortcuts like volume up, volume down and all these kinds of stuff. so there are these four layers that makes you access all the functionality
of the standard keyboard and more i do want to dive into that because it's there's four layers
and even the mouse that you'll probably dive into as well like even the mouse you can tap into and
kind of remap we have some questions specifically around that um and i also noticed as you're
describing it,
so for the listeners out there,
we'll put some links in the show notes
that you can kind of watch along
because this is not a video podcast.
It's a audio podcast.
As you can tell, you've been listening for years.
But nonetheless, we'll put some show notes in there
for links out to images.
And if you're following along,
on the left-hand side,
when we talk about
the break of the keyboard we have a mod key and a space key so typically where the space key is
on the left hand side there's a mod key and beneath that is this extra which which is typically like
this outer boundary of the of the keyboard that's not used which is a space key and on the right
hand side you have the space key and then the mod key which is alternated why
why did why what's with the alternation there is it uh that you can kind of set i don't know
because because this can be completely rematched it could be your own keyboard no keyboard is the
same you can move your settings around as you want to which we'll talk about i'm sure but
it seems like you know why would you have the the mod key and the space key be alternated on either side?
Okay.
So the guiding principle is that every modifier key
should be featured both on the left and the right side,
because in order to access various shortcuts,
it's just comfortable.
So just this way way the mod and space is accessible by both hands but
in a diagonal manner because if you if you use the uhk for a week then you will fire your brain to use this layout or your own layout if you so choose. And most of the
time you won't have to use the case buttons that you mentioned. And the case buttons exist
because simply because it's easy, they are easy to reach by our thumbs. So there is a large amount of space there. And this way, you could make
the layout symmetrical. I mean, feature the modifiers on both sides.
Gotcha. We got a little ahead of ourselves. I wanted to dive that deep a little bit later
on, but that's okay. What I'm looking for at this point is to kind of escalate this conversation over the next 20 or so or 30 or so minutes is to figure out what was going on in your brain, in your mind, in your day-to-day life as a software developer.
What made you be like, man, this, you know, because there's there's mechanical keyboards out there you know there's ergonomic keyboards out there why did you not like what
was currently available on the market whether it's open source not open source crowdfunded or not
what problems were you hitting as a software developer that was like i've got to make this
uhk even if it was back in 2007, which is almost eight years now,
more than a little over eight years now,
since this problem has been existing for you,
what were you hitting?
What happened to make you think,
I need to build something that's much better for developers?
So two key words are productivity and ergonomy.
So if I don't have to move my hands, it's in my
mind this is great because really all this started from me moving my hands across the
various blocks. And if you use a dedicated mouse, it's also much easier to access it this way because
the distance is shorter between the keyboard and the mouse because there is no
navigation block and numpad. And the other thing, the ergonomic ergonomy is just, it's so much more comfortable to orient keyboard halves.
You can even use it in Shutter with this whole design, this compact, truly split
design that merges as one and reconfigurable.
This whole concept, these features just made sense as a software developer,
not moving my hands, holding my finger,
being able to reposition the keyboard halves.
Gotcha.
So obviously ergonomic keyboard made sense.
Even mechanical keyboard made sense,
but the lacking of the remapping,
the lacking of the open source underlying software,
whether it's a CAD drawing, whether it's the JavaScript agent, various things we'll talk about,
these things were something that you wanted to bring to fruition.
So what were the... I guess I didn't understand fully your question, could you please?
Well, it wasn't really a question, it was more like a statement priming you to chime in.
So you've got open source obviously involved here.
And as I understand it, it's the firmware,
the electronics design files.
So I'm assuming there's some sort of CAD pieces in there
that you're actually open sourcing on GitHub.
You've got the agent.
And these are all coming under the GPL license.
So, you know, to kind of take a step back, you've got ergonomic keyboards, which have
been there, you know, whether they break apart or not.
And then you've got mechanical keyboards, whether they break apart or not.
There's various different types.
And truth be told, behind the scenes in the changelog members room, we've had several
conversations about, you know mechanical
keyboards and how to change your life and as i said to you know to preface my scenario i'm not
the kind of person i don't think that needs this although i think i can appreciate it because there
are a lot of people i know that would love love love to make their keyboard their own and to never
leave the home row as you've described,
and to never do the things that you're describing,
which is to have to touch a mouse.
And so I'm just wondering behind the scenes,
you know, what the motivations were,
not just to solve a problem,
but also to put some power back into the community,
which is through open source,
through open source diagrams and those kinds of things.
Gotcha.
Yeah, so I've been using Linux for a year, 2000,
and it just makes sense for me as a developer
to open up a product to make it super customizable.
Right.
Because I've been in situations when I've had a router
and I wanted to use a third-party
dynamic DNS provider
and I couldn't because that router
offered me about three options
and my preferred options
wasn't amongst those.
And it seemed really trivial to be able to specify a URL to be pinged, but it couldn't
do it.
And, or I'm, my sister purchased a DVD player and put in a disc and then the subtitle fonts were very small.
And there wasn't a way to enlarge them,
which is ridiculous because if the software was open source,
that would have been so much easy to implement.
So I encountered all these limitations
and we are surrounded by these devices containing general purpose processors.
Yeah.
And we are unable to exploit their full potential because the whole thing is a black box and I hate it.
So what I hear you saying is that whether it's a DVD player,
whether it's whatever out there,
there's general purpose software that's available that makes literally no
sense to have as,
you know,
in quotes proprietary,
like maybe the company is not trying to hide it or keep it or close the
source purposefully.
But it sounds like what I'm,
what I'm hearing from you is that that really irks you and to be able to
build something that was physical, you know,
actual hardware object that has software tie-ins and to make that software open
source so that those who want to tinker,
like you've said you wanted to in your past were able to,
were free to do so. And obviously in the end, you know,
on the, on your GitHub repos,
you do have the ability to veto or not veto pull requests.
So that doesn't mean that every single pull request
has to be committed back to master,
but that means that the power of the people is available.
And that sounds like that's a motivating factor for you.
Yeah, yeah.
And a number of, I think, empowering people.
Yep.
Yeah.
That's exactly what the changelog is all about.
This show, why Jared and I do this is because we exist to enrich the lives of developers. And there is no better way that we
can think of right now in today's age, other than through great community and open source software
development. So that's, that's what I love to hear about., you know, part of this show is going deep and technical,
and part of this show is discovering the whys, the mysteries of why Lottie and his team would say,
we need to rebuild this hardware thing and make all of it open source, you know.
And I want the listeners to understand where you're coming from because you've been through some sort of, you know, some sort of past that got you to where you're at now.
And that's important.
Mm-hmm. Yep.
All right. So it is time for another break.
I'm going to fast forward the time by three minutes.
So if you're listening to this and you think,
man, this break is coming just a hair too soon, it is.
It's coming exactly two minutes and 56 seconds too
soon because when i come back diving deeper into this uh topic with lots i want to go even more
deeper to all the tech behind it how things mapped out and uh that's a pun on purpose so
we'll hear we'll hear more when we get back. So not for another break. We'll be right back.
If you thought Harvest was only about time tracking, check again.
Fast invoicing and payments.
You can easily create and send invoices and accept payments with PayPal, Stripe, and many more.
You got expense tracking without the mess.
You got an iPhone or an Android app to go on the go with you.
Snap those receipts and store them in the Harvest app.
You can also connect favorite tools like Slack and use chat commands to start and stop your time risk.
Head to getharvest.com and start your free trial.
And once that trial is over, use our code CHANGELO
to save 50% off your first month.
Everyone, we're back with Lotso.
We're diving deep.
You know I said Lotso.
You know why I said Lotso?
Because I was thinking about Toy Story.
Anybody out there listening to this show,
thinking about Toy Story when I say Lottie,
because one of the characters in the most recent,
I can't believe I'm going on this tangent,
but I'm going to just run with it.
Because Lotso was the antagonist of Toy Story 3.
And so when I said Lotso, you kind of reminded me of Lotso, nonetheless.
We're back, nonetheless, with Lotso.
And we're diving deep, even deeper into this ultimate hacking keyboard.
And maybe the best part to start with this segment is uh is the
open source behind it we've got everything from cad drawings to javascript user agents
firmware bootloaders where do we begin with talking about the open source out there that
powers this hardware device okay so everything is open source except for the CAD, which we will release in a delayed
session. Five years later, that is the only way that we gain some leverage.
I see.
All the other components, that is the electronics, the firmware, and the host side
software are already open source and uploaded to GitHub.
So when I'm on your profile, which if you want to follow along listeners, you can go to github.com slash ultimate hacking keyboard.
And you'll see some repos there.
The first one that might come to notice for me is agent, then electronics, then firmware, and then bootloader left, and then ultimately bootloader right.
And the languages GitHub chose to label these, tell me if they're wrong
or not. So agent is JavaScript, electronics is KiCad, which is why I said
CAD. I thought that meant actually CAD drawings. And then the firmware is
obviously written C, and then bootloader left is
processing, and then bootloader left is processing,
and then bootloader right is C.
Are those accurate labels that GitHub mess up?
Actually, bootloader left is C,
just like bootloader right.
But other than that, it's correct.
We just saw a processing lab,
we just covered processing recently in an issue of ChangeLog Weekly,
and I didn't think it was C-like.
It's different.
It's more something else.
Well, the Arduino platform uses a processing API that is implemented on top of C.
Okay.
So in a way, it's C, but a special API.
I see. Okay. So let's start with Agent then, if we can. So Agent is the configuration application used for the UHK.
What is this? This is your native language. You love JavaScript, so it's your preferred.
What is this? What does it do for the keyboard?
Well, there is a difference between what does it do and what will it do, because agent is in a pretty early stage at this
point. Right now it's a command line application which enables you to
configure and enumerate the UHK and do some operations but really ultimately
this will be a GUI configuration applications executed on top of Node WebKit.
That is, I think the project has been renamed to NW.js, I mean, Node WebKit.
So this is a runtime.
This is basically Chromium and Node.js fused together.
So you can develop native applications
on top of web technologies and Node APIs.
So Node WebKit, aka nw.js,
that agent runs on Windows.
It runs on OS X and also runs on Linux platforms.
Can you tell us more about that project and how you're using it?
Sure.
So right now, agent is a command-lay application.
I can use it to re-enumerate the keyboard.
So normally it's enumerated in keyboard mode, but it can also be enumerated in as the left and the right bootloader
if I want to upgrade the firmware of the keyboard via USB. And I can also manipulate and query the
EEPROM memory of the keyboard. So right now it's rather low level and command line, but by building
on this low level functionality it will end up being an Angular application, AngularJS based
GUI application in which you will be able to individually configure the keys and the layers
and key maps of the keyboard and all kinds of functionality,
the speed of the mouse movement and its acceleration
and the various add-on modules.
And so this will be a full-blown configuration application.
Gotcha.
And you mentioned mouse and i gotta mention
uh i gotta imagine that anybody listening is thinking like now i have a keyboard with four
different layers of technology of of different functionality that i can totally program
including the mouse can we talk about the accuracy of the mouse whatsoever how does the mouse function
work is it enough to do i mean is it to use? Obviously you're not going to say no, but how accurate is it? Will people really
enjoy using the mouse feature of this keyboard?
Yeah, so for what it is, it's surprisingly useful. I implemented inertia, so when you
start to move your pointer, it doesn't start with full speed, but slowly increments.
So it's pretty useful.
But of course, such a keyboard-based solution can't replace a dedicated mouse.
And this is the reason why we came up with add-on modules. So if you split the keyboard, you will be able to mount additional physical hardware
modules to the main keyboard, such as a key cluster on the left hand, or a trackpad and
the track point. So you can choose of these modules and mount whichever you like.
And this is the extension of the original concept of Neverlandy Homebrew. And there is a large area
that are thumbs cover and you can easily reach dedicated point or devices this way.
So these modules are obviously pretty interesting. Anybody listening right now is thinking like,
okay, so I can layer on these modules. Are they optional? Are there future ones plans?
Are there some that you've already kind of pre-configured that are available? And then
obviously since this is the ultimate hack hack keyboard you can obviously make your own or at least i'm assuming you know are the optional are there future ones planned
what are available right now yeah they are completely optional you can use use the uhk
without any more juice and if some of the more juice are you think you think you would be using, then you can just purchase them separately and use them
as you like.
Replace them.
You said the word purchase there,
which may have gotten some people like,
whoa, hang on, I bought this keyboard.
Now there's more to buy. I feel like there's
in-app purchases, so to speak.
Can you talk about the
ecosystem from a revenue
generation point to the hacking point because
obviously hackers love to make their own things and use freely uh not meaning don't pay the person
who made it because we obviously want to support you making this thing in the first place to make
your business sustainable to keep doing this thing but um you know what are but what are the plans for modules? Is there going to be a module ecosystem
people can go to and purchase things? Describe that as you might like to.
Sure. So we will open up the protocol via which the modules communicate with the keyboard itself and third-party developers will be able to
develop their own modules and we will also sell a developer kit and publish the CAD data of the
modules so anybody will be able to 3D print their own modules
and create whatever crazy input device they want to make.
We could even use joysticks or, well, there
are a lot of possibilities there using any kind of pointer devices.
So what I thought of as modules
and you thought of modules
seem to be similar but different.
So you just talked about a joystick.
It sounds like we're breaking out of just the UHK
into actually allowing developers
to have open source that you're providing
to build their own modules.
And then you're using that same open source
to build your own modules,
which you'll be able to sell.
Is that right? How did you mean this exactly what i mean by that is that you've got some open
source after that that allows somebody to build their own own module so they can 3d print their
own thing if they wanted to so they wanted to hack away and build something like a numeric key
you know or just a a keypad that sits there. They can do that if they wanted to.
Is that what I heard?
Yep, they could do that,
but because of the mechanical constraints,
so the whole thing is designed that the keyboard halves
are interconnected by these precision machined steel guides.
And these same steel guides are used for modules.
Gotcha, okay. So when you separate the two halves, steel guides and these same steel guides are used for modules.
Gotcha, okay.
When you separate the two halves, these same guides are used to mount the modules themselves.
So this way the add-on modules are mechanically constrained to be located there between the two keyboard halves, essentially.
And there are pogo pins for the electricity and data.
So there's some hardware that they might need to buy from you that they can build upon, basically.
Yep.
Okay, that totally makes sense.
So once you break this keyboard apart again,
once we went back to the earlier analogy,
6TGB down to the space bar is the left-hand side
when you break it apart, and 7YHN,
if I remember correctly myself, that's the right-hand side.
And in between those two, once you break it apart,
hackers out there that are working with UHK
could essentially buy some hardware for themselves
to put in between these two pieces
or attach to the two pieces or attach
to the two pieces once they're broken apart and use open source that you've already provided
to build upon it fork it make their own things and potentially even 3d print their own actual
stuff and connect back to it yep that that really does complete the whole entire cycle of being the ultimate hacking.
I mean, so when you said ultimate hacking, you really, really meant it, didn't you?
Yeah.
We really want to push this as much as possible to cram as much functionality to the hardware
as possible.
So we camped out a bit on the agent. to cram as much functionality to be hardware as possible.
So we camped out a bit on the agent.
Let's talk a bit about firmware,
because I remember we got emailed from you,
let's say about a month ago,
and we've had some things going on in between now and then that didn't allow this call to take place
until roughly three days before your funding end.
But nonetheless, you mentioned that once funding was reached,
you would open source several things.
And one of those things was the firmware, electronics,
the agent we've just been talking about here.
Can you talk a bit about the electronics piece?
There's an electronics project on GitHub on your profile there,
and there's also a firmware.
Can you talk about those two pieces there?
Sure. So the electronics repo contains the KiCad files. KiCad is an electronics design program.
So if you download and install KiCad,
then you can open these files and you can see the the printed circuit board and you can manipulate it
you can even send to a fab and get it made so it really enables you to to extend the uhk add
leds backlighting for example or all kinds of crazy stuff.
So when you talk about KiCad, you're talking about the same,
if my Google-fu is correct,
if you go to KiCad-PCB.org, which is KiCad EDA,
a cross-platform and open-source electronic design automation suite,
is that the same thing you're leveraging,
you're building upon somebody else's shoulders here yep it's just it's the project that we are talking about it's the kycat pcb i know the hardware hackers are they're like adam get with it you know this
is out there already but you know what open source moves fast so we just try to keep up
so okay so this is this is some more open source already out there,
available developers, and you're just
building on the shoulders of more giants.
Yep.
Originally, we used Eagle,
which is another
popular choice
in the electronics design, open source
electronic design community, but
that isn't an open
source software, and you are limited
but to to design very small boards with the free version so eventually i migrated to kai
cat because it is totally free unlike eagle and this way we can enable more people to hack the keyboard. Right.
So the electronics repo is a KiCad project building upon the KiCad ADA cross-platform open source software we just talked about there.
So your open source is leveraging specs, platforms, software already out there from someone else
that's desiring the same thing you are, which is,
hey, I have some hardware I want to be able to manipulate
and give back to as a developer, whether super hacker or not,
back to open source.
Yep, that's the idea.
Fantastic.
All right, let's move to the next one then.
So the next one is the firmware.
What's going on in the firmware?
What can a developer do inside the firmware that is notable?
Okay, so the way it works is the left keyboard half
sends key press and key release events to the right keyboard halves. Then the
right keyboard half maintains a matrix of keys and the state of the
keys and based on this state it decides which layer is the active one and it sends out the relevant scan codes via USB to the host computer.
And it's more versatile than most keyboards because it exposes three different USB interfaces.
There is the keyboard interface, of course.
Right.
There is the mouse interface to implement the mouse functionality.
And there is a third, a generic HID interface
for communication purposes.
So when you use agent to configure the UHK,
this third interface is used as a transport.
So, and there is a library that is used for the
firmware of the right keyboard half that is called LUFA, which stands for lightweight USB library for AVRs.
The microcontrollers are AVR processors and this is pretty much the most popular
library to interface with USB capable
AVR microcontrollers because
USB is a very complex protocol. If you think about it
there are pen drives and
Bluetooth modems and printers and all kinds of devices that use USB, a single protocol.
So this is a heavily layered, super complex protocol.
And I personally couldn't write from the ground up a USB stack, USB library.
And luckily, this is available and open source.
And we built up on this library.
Very interesting.
So you got the left side and the right side.
Can you talk a bit more about,
I can imagine those listening to that piece,
they were thinking like, okay,
the left side communicates to the right.
The right, as we mentioned earlier in the show,
has alternate modifier keys.
The space key typically is alternated on the left and the right as we mentioned earlier in the show has alternate modifier keys the space key typically
is alternated on the left and the right so the left hand side is is um let me go back to my
screenshot to make sure i'm speaking correctly so the left side the key uh that is typically your
space bar is the mod key and then when you break it apart the right side which is typically your
space bar is you guessed it the space bar and so those two then when you break it apart, the right side, which is typically your space bar is, you guessed it, the space bar. And so those two alternate whenever you break
them apart. Can you talk a bit about this conversation that happens between software
and between the hardware that hackers would enjoy when they really make this thing their
own between the left and the right? So it all starts with the keyboard matrix.
So the keys are arranged into matrix of rows and columns,
and this matrix is scanned about a thousand times per second.
And so the software can maintain a state of these keys.
So the state of the keys are stored in this matrix in the RAM of the
microcontroller. And like I said, the left keyboard half sends over the keyboard, the
key press and key release to the right keyboard half. And then we end up with a matrix of keys.
And then in the next phase, the firmware checks for the layer switcher keys like
mod or mouse and fn.
And based on those keys, it sees which layer is the active one and and then accord based on that layer it uh it constructs
a usb report containing the the scan codes that are related to those keys on the actual layer on
the actual key map did that make sense it totally mean, it makes sense as much as it makes sense.
Without seeing it, touching it visually as we have this conversation,
it's a little foreign, but I'm following.
And I guess what I'm trying to gather at this point is thinking like,
you know, going back to the name, the ultimate hacking keyboard.
I know some people that just are, I don't want to call them true hackers
because it sort of mislabels the word hacker, period,
but they're just people who love, like you had mentioned earlier, to tinker,
to go beyond the status quo of making something their own.
And I feel like what you've done here with creating the hardware and the
software is what,
maybe not where it's at right today.
And maybe you can help back me up on this,
but I'm going to hypothesize that the future of this thing is that if you're
someone who loves to tinker with our keyboard,
loves to make what they do their own,
you love the fact that you can break apart a keyboard
and do all sorts of stuff and maybe even borrow some of your polyglot attributes they can dive
deep into this thing make it their own and above all else what we haven't even talked about is take
it anywhere you know like that's what i love most about what I think this conversation is about is like this hardware piece that came out of like several years of love from you and a passion for when you when you touch a hardware object that has software components, not being able to change those, but making what has come from it open source so that those who use it can and even add to it and enrich
the ecosystem so if i'm understanding correctly like this thing sounds to me like a hacker's dream
and going back to the original blog post on uh on trello how i built the developers
dream keyboard seems to me like it's really going to be playing true yeah originally
i gave a more modest title to that article yeah and the top tag guys made it a little fancier
but uh well thanks for saying that well you know going back to our friends at top towel those guys
are committed to excellence.
And outside the sponsors that you've,
the sponsor notes you mentioned
that I've mentioned during this show,
we love those guys.
We love working with TopTile
because they are so committed
to enriching developers' lives.
And, you know, I think that post with you
and then, you know, how they helped you with it and then where you're at today is is completely evident.
So if you've been on the fence about what TopTal is, go back and listen to our sponsor mentions.
We love them. We think you'll love them, too. We totally trust them.
But moving on to some some future topics here, we got to go to a break real quick we're gonna come back and we're gonna talk
uh a little bit about uh not so much the uhk but uh who you are i guess again as a as a software
developer maybe some of your heroes something that's um super secret that no one knows about
you can share but uh we're gonna take a break we'll come back and we'll talk about that
our friends in the note are huge fans of the show and they're excited to support what we're going to take a break. We'll come back and we'll talk about that.
Our friends at Linode are huge fans of the show and they're excited to support what we're doing here at the ChangeLog
and they want to invite every single listener of the ChangeLog
to try out one of the fastest, most efficient SSD cloud servers on the market.
You can get a Linode cloud server up and running in seconds
with your choice of Linux distro, resources, and also node location.
And they've got eight data centers spread across the entire world.
North America, Europe, Asia Pacific, and plans start at just $10 a month.
They've got hourly billing with a monthly cap on all plans and add-on services.
Get full root access for more control, run VMs, run containers, or even your own private
Git server. Enjoy native SSD storage, 40 gigabit network, and Intel E5 processors on your servers.
Use the code changelog10 with unlimited uses.
Tell your friends it doesn't expire until December 31st, 2016.
That's next year.
Head to linode.com slash changelog to get started.
And now back to the show.
All right, we're back with Lottie again.
Just so excited about what you've built here so far.
And the open source component of it is obviously pivotal.
So if you're out there and you're listening to this and you're thinking,
this literally is, or I think it might be, the ultimate hacking keyboard, hacker keyboard.
The open source component, to me, is unheard of.
It's not there so far.
We talked about the agent.
We talked about the electronics, the firmware, which also led to bootloader left and bootloader
right, if I'm clear on that.
What else do you have planned on the open source horizon around this hardware device that is going to get hackers excited today that they're going to make them either want to go support the project or do whatever it takes to get 200 bucks out of their pocket and give it to you for this thing yeah so i i think the uhk provides a unique set of features i mean there are other
split keyboards on the market right it's not a new thing it's been done before but you're doing
it differently yeah for example the the add-on modules are one of a kind. I mean, nobody has ever done that before.
Or the other unique feature is the stainless steel inserts
on the back of the keyboard.
So you can mount it, the two keyboard halves separately
to the arms of your armchair.
So this is another unique thing.
So you can sit essentially back into like a lazy boy, so to speak. Here in America, we
have a lazy boy and you can put one on the right and one on the left and kick it all the
way back totally in comfort, in leather, in hack.
Yep.
See, that's the best, man.
Yeah. And the way I see see it this is a platform i mean uh it has a hardware software
architecture and based on this architecture we plan to build other keyboards in the future like
this is a 60 keyboard which means that it only contains the f numeric block we plan to build an 80 percent version which will contain the
alpha numeric block plus the fks plus the navigation block and okay and then maybe other
versions but the way i see it is really just this is a nervous system uh if you will, and you can fit this nervous system into various shapes and forms.
And it can be a basis of other split keyboards that have the same great features and extensibility
with add-ons and all this fancy stuff.
So even hackers can design keyboards of other shapes
with this same core of hardware and software and firmware components.
You know, on that note too, I think we, you know,
it just wouldn't do it justice if we didn't touch on
it because it's clear as day when you go watch the video and I don't want to repeat everything
that's out there already although it should at least be touched on and what I think is kind of
interesting is that like no matter what the program you work with whether it's a game
whether it's an IDE whether it's you know you know, you name it, the four layers
that we talked about already, and even the mouse, all the application specific key maps
you can do, it's totally customizable.
So if you're playing, you know, Fallout 4, for example, and you want to configure it
specifically to how you like to play that game, you can do it for that.
And if it's Ruby on Rails, or if it's, in your case, JavaScript programming,
and you've got some specific keys that really help you be a better developer,
then you can remap to that.
I think that's really an interesting piece there,
is just the ability to just make it your own,
regardless of application device.
You know, you can just do that.
And it's easy.
Yeah.
Hopefully. Is it easy?
It will be easy.
Right now, you have to modify a matrix, a C matrix.
Right.
But later on, if the agent, the configurator application will be in a more advanced state that will happen before shipping, then you will be able simply to click in a GUI application and reconfigure the keyboard, the key map.
And for example, I'm a heavy user of convenience shortcuts.
So add tab, for example, is used by every one of us
many times a day.
And add tab on the factory key map is mapped to the key of the mod layer.
So instead of reaching out for add tab, I simply press mod D
without leaving the home row.
And this may not seem like a big deal,
but when you use Atab hundreds, if not thousands of times per day,
it's a big deal.
Probably half a thousand for me.
500 times a day, I'm going to guess.
Yeah, I think it's a good estimate.
Yep.
So Jared couldn't make this show,
but, you know, it wouldn't be a show.
It wouldn't be a change-long episode
if we didn't even have a little bit of Jared in here.
And there's been a couple sprinkles of it in here.
But he said before the modules are super interesting.
They're totally optional. You mentioned some plan for the modules are super interesting. They're totally optional.
You mentioned some plan for the future of these modules.
How will you support those out there who are maybe making modules and don't
have the ability to 3d print?
What,
what kind of support can you give back to the community?
That's,
that's,
that's building upon this,
but don't have the ability to print.
Well, that's building upon this, but don't have the ability to print?
Well, we will offer developer kits for sale.
And that way, do you mean the physical accessibility of creating an add-on?
Yeah, well, I think there's the software side of it,
which I think people can probably get to the point on their own.
But if they actually want to build something out of it and they don't have the ability or let's say they build it and it's kind
of like yeah it's okay uh and maybe it's something they want to pony up back to you and say well can
you manufacture this and give it a give it to everyone you know is it it's that cool yeah we
should be able to do that uh maybe maybe we should do a pause about it later on.
Because if there is only one person in the world who wants that Mojtul,
that is just simply not feasible to be manufactured.
But if there is a significant community interest, then we should be able to do that.
We should do that. In order to develop a module you will have to have some hardware skills
because software is easier in this respect.
You just have to download the IDE and stuff and start coding.
But in order to develop a physical module you have to have some gear
like soldering iron and stuff like that and some experience with with electronics i think
is pretty much necessary uh we want to make this process as simple as possible for people but but however it's just uh harder
yeah that's all to there well it's it's you actually have to make something real you know
yep plastic metal whatever you whatever you know whatever material you're working with, we get so used to this command Z, RF, RM, to
just remove something from command line or something like that. We just get so used to
that in the real world, all things are real. Yeah, but more and more developers seem to go into the
hardware scene and they purchase Arduinos and start incurring with hardware. And once you get
into it, you learn more and more and this becomes natural over time. So it's not rocket science, but it needs some practice for sure.
Right.
And if you want to create a new virtual,
maybe you also have to order components from drives, stores,
like joystick or what have you.
Right.
I think it's interesting too,
going back to your note before about being a platform.
And maybe I'm reading between the lines, you tell me,
but being a platform to me sounds like you're not going anywhere, right?
And there's something that there's a promise there, so to speak.
So when you come on this show and you go out there
and you create a crowdfunding campaign and you actually make something real and you ship it to people and
you open source software and you talk about it and you live it and you dream it
it sounds to me like you're making a promise and especially when you said there's a platform here
like if there's someone if there's someone listening to this show and they're thinking this
may this may not be for me it sounds interesting the software sounds interesting the the open
source aspect of it sounds interesting the hardware clearly is interesting um we didn't
even touch at all on i mean i guess to a degree we touched on, you know, the makeup of it, how strong and sturdy it is.
But when you make something like you have, and I haven't touched it, but I've talked to other people who have that I trust, right?
Egghead.io, I trust that guy, you know?
He touched it.
He pulled it apart.
He put it back together. But the point I'm trying to make here is that if you're doing that and you're saying this is a platform, to me it sounds like to the developer world, you're making a promise that you're going to be there for the future.
Whether it's in the open source, whether it's in the hardware, and that if you can dream it and you can build it, sounds a little cliche, but if you can do those things
with this ultimate hacking keyboard,
then you're going to be there in one way or another
to support it,
whether it's through some way to make money from it
as other developers
or one way to support their open source
and help them become better software developers.
Is that a fair statement?
Absolutely.
You are spot on by saying that it's a platform.
I mean, most manufacturers create a single product, but we rather think about integrating
the hardware, the firmware, the software and cloud and provide the the how should i say say it uh more
let's let's stop for a minute well some some sort of support some sort of support if there's
something built from it then you're going to be able to provide a way to you know almost uh
package manager it you know know, to it away.
Like if you build it, people can find it.
Yep, and the hardware and software
is much better integrated than on other keyboards,
which is maybe a brave statement to make.
But when you open up the box,
you will encounter something that you have never seen
in other products.
And I don't want to talk about this,
but I want to surprise people.
So I rather won't talk about this.
We have to leave some cards up our sleeves, so to speak.
Yep.
We can't reveal every single thing,
but we can do what we can to get people excited about it.
I have one more question on your open source piece.
And as we talked through the agent, the firmware,
and several other pieces,
if someone's listening to this and they're going to those repos now,
they seem a little, let's say, a better way to say it might be sparse right there's not a lot of
uh getting started so clearly some documentation is lacking here and one final question i have
before we go into some of our closing questions is uh for those who are trying to hack it or
uh reprogram it or do other things.
Right now, it seems like the resources to do that are a little lacking.
How soon will those come online?
Will those be in the individual repos?
Will they be at some of the plays?
Will there be some screencasts about it?
What can people expect to say?
Like, hey, lots of you gotta you
gotta hold my hand a little bit get me started how can i get to the hello world of the uhk
sure so i plan to gradually add documentation to the repos i just uh published them
yesterday so i haven't had time to do that. This is fresh enough and sore. This is fresh and new right here.
This is as fresh as it gets.
Yeah, but I agree that it's super
important to hold the hand
of other people
and this will be done for sure.
I really want this to
be easily digestible,
easy to hack on.
And maybe some grace back to you from the community is that, you know,
maybe 30 seconds, share what you've been going through.
Like you're just about to close out a 104% funded project on CrowdSupply.
You know, so you've got the necessary funding to do what you're promising to do.
So you've got a lot of pressure on you as a one man maybe a two people show i don't know who else you haven't involved with you yeah and we didn't talk about that really but you got a lot of pressure
on you to deliver right now and so you've got priorities and maybe documentation and getting
started in hello worlds are lower down, but not at the bottom.
So should I talk about the priorities?
Yeah, sure. What are the closing priorities on this?
So on Sunday, it's clear it's going to be funded. So on Sunday, it may just be even more overfunded.
But right now, even before the end of the funding, it is fully funded.
So what's next? Sure, so now we should start to create the molds
of the plastic parts as soon as possible. So we should finalize the design very quickly because
the mold making process will take about three or four months. So we have to kickstart it as soon as possible. So right now,
this is the fifth generation prototype. We will iterate a little bit to make it easier to
manufacture and then contact the company who will create the mods. And then gradually create mods for the add-on modules
and in parallel further develop the firmware and especially the agent. By the way, my partner
András is a mechanical engineer and he is very hands-on with these mechanical
topics of the project.
Right, right, right.
Which is very different
from outsourcing everything to China
and
expect them to
make everything
perfectly. Because we could totally outsource
anything
but then
András would have to fly out a dozen of times to
china or taiwan or live there so for a live there yeah yeah so there are huge hidden costs
so i think it's just great that he's able to to hop into the car and drive for an hour and arrive to the company and directly
see where they are.
Well, that's a lot easier than a plane flight than a half day trip or something like that.
So that's interesting too.
Like I have to apologize for not asking you who else is involved in this because, you
know, I guess the sole conversation people have been assuming it's just you.
And it's not just you. It's counterparts that complement your existing software development skills
to make proper hardware and to do all the mechanical pieces and stuff like that.
Yeah, if somebody takes a close look at the UHK, it will be apparent that mechanical engineer is heavily involved because just the interconnection
mechanism, these precision machined stainless steel parts and all of this mechanical solution,
this is very robust and professionally designed. And András is a great mechanical engineer and perfectionist.
So I fully trust him absolutely to make this great product.
Well, let's stop tailing off the call to some of our closing questions, which were
just as much interesting as our previous conversations around the UHK,
the open source around it, the platform, the promise, the hardware,
all the ability to hack it to the hacker's heart's content.
But again, going back to who you are,
maybe the first question we can start with is what's something that's super secret,
that's not known by anybody else?
It could be a personal attribute, could be an upcoming announcement.
But what's something super secret that no one knows about you or what you're doing that you can share here today on the show as we close out?
So I'm pretty much a perfectionist and I take code quality very seriously.
And I guess it's challenging for me to...
I can work in a team, but I always strive to write super clean code
that is as simple as possible and even name the individual variables
and both on the high level and on the low level
create something that is very easy to understand.
And yeah, it's a personal challenge of mine,
but I think it serves the projects
that I work on on the long term.
So, yeah.
So you're a perfectionist.
Yeah.
And you're asking for grace on being a perfectionist.
Yeah.
To a degree.
That makes sense.
I mean, we all want to, you know, one of the biggest fears about doing something like you're doing which is
days away and uh people are listening to this and they're thinking this thing is awesome i want it
or it's the worst idea ever i hate it you know who knows what they're thinking i'm guessing the
former right and we we have seen all these opinions over the years. Right. So you've seen all the opinions.
And what I'm thinking is that as makers, right,
as someone audacious enough to actually make something real,
not saying making open source isn't real,
but what I mean by that is like we just went back to it,
the promise that you're making.
Like to make this promise
to deliver what you're doing takes a lot of courage right in my opinion and you may completely
agree and the listeners may as well but it it requires so much courage that you might get to
the point of like the go button right the button that says okay make it real and the problem with you might be like
man i'm so scared that this thing might actually be successful and i have to do
the thing i have to deliver so i can appreciate the the juxtaposition of perfectionism and
actually releasing something because the fear gap between those two pieces
can weigh heavy on the person doing it and ultimately may just cripple you and you never
do it and i'm glad that you got through it and did it yeah but for me it's a no-brainer because
quite honestly this is in my mind this is the coolest project that I can work on
in this phase of my life.
So really, there is no option for me.
I just want to do it so badly.
And I think it can be a great offering for many.
So maybe a good segue would be to talk about
who might have influenced you.
And so here on the show, we call that question, who's your programming hero?
It could be professor, it could be mom and dad, it could be high school teacher, it could
be whatever.
But who is the hero in your life?
Who is the influencer in your life, programmer or not, that said to you,
Laci, you got the talent to do it,
do it, or here's how I encourage you
to do it. Who's your hero?
Well, nobody
has explicitly told me to
do Yoishke, but I
look up to a couple of
people for sure. For example,
the first
person that comes to my mind is John
Carmack probably because I played too much doom back in the days and I
enjoyed it a little bit too much right I think it's it's crazy that he could he
could develop that engine back in the days to smoothly run on those pieces.
And there wasn't OpenGL or any high-level APIs and he had to implement it from the ground up.
So I think it's a major accomplishment. And there isff atwood who created the stack exchange that were co-created
jeff's been on the show before coding horror he's been on the show before great guests yeah so uh
so easy to talk to as well yeah super smart guy very Very capable. Smart entrepreneur as well.
I mean, the way they built Stack Exchange
and now Trello is a part of the ramifications,
to use that word again,
the ripple effect of doing what they did
with Stack Exchange and all that
was what we know as Trello today,
which we use here internally at the ChangeLog.
Yeah, honestly, what would we do without Stack Overflow? We'd be lost. We'd be just coders in the dark, so to speak. Coders in the dark.
Another guy is Dean Camara, author of the Lufa library, this USB AVR library.
I think it's a beautiful piece of software.
I mean, so well and cleanly written.
He may not be that famous, but I look up to him.
And he's pretty young, by the way.
I'm not sure about his age, but he's young and very talented.
Yep, that's it.
Good. Well, those are good heroes for sure.
You know, one of the reasons why we do that segment,
just for the listeners' sake that have been listening to the show
several times, I'm like, you know, I always love the heroes part of it,
but why?
And I think that maybe this show is the best place to earmark that
is to say that, you know, there's somebody, as you've said, that has influenced you, whether it's directly or indirectly, to have the courage to do what you do.
And I think that's the best reason why.
Who is your hero?
Pretty diverse.
John Carmack.
And I wouldn't say that Jeff Atwood is any less of a John Carmack, but he did not create what he created, which was like the Doom stuff.
But he did do some pretty cool
with Stack Exchange. So he's not
nobody, but they're very
different.
To a degree, polar opposites
gaming and then
enriching developers' lives.
It's always interesting
to see who's influenced
you.
I guess the last closing questions,
given that we've talked about the UHK,
the open source that powers it and the promise and the platform that you're
going to give to software developers and hackers around the world through this
hardware software combination.
The only question I can think of to close the show would be, what's on your radar?
What's on your open source radar?
What's on your software radar that's got you excited that if you had a weekend that you
weren't doing UHK stuff, what softwares, what projects would you be playing with,
and why is it interesting to you?
Yeah, so I'm interested in the whole JavaScript ecosystem,
and within that, Angular interests me,
and I'm looking forward to Angular 2.
I would love to be an agent on top of Angular 2,
but right
now its API is in flux.
And
other than that, I'm interested
about microcontrollers
and
yeah, all
kind of this stuff.
Good deal. Good deal. Well,
I will say, only because
I have to, that I did notice that you did say Angular earlier.
And I didn't go deeper on that for a reason because that's not what the show's about today.
However, there are some conversations I want to have with you around Angular that we're not going to have today.
So listeners out there thinking about that, feel that I feel your pain.
Wanted to have the conversation about it,
but it just didn't make sense
to have that conversation today.
So maybe some of the time in a blog post,
you can talk about why Angular for you
versus all the other options, obviously.
IoT platform, but also super interesting.
I would like to build a smart home if I had time.
Yeah, yeah, absolutely. build a smart home if I had time. Yeah.
Yeah,
absolutely.
Well,
Lassie, it has been an absolute pleasure to dive deep with you on this ultimate
hacking keyboard.
I think that the promise,
the platform,
the open source and everything we've talked about today is something that our
audience and hackers around the world will resonate with.
So if you love this show, go on Twitter, mention it today,
share it with a friend, do whatever it takes to share what Lottie's doing
and his team with this keyboard.
And if you totally appreciate it and you use it and you buy it
and you get it next July when he ships it,
well, maybe not in July in particular,
but somewhere in those few months thereafter, and you love it,
it may be months and months away from now because it's just near the turn of 2016,
so we're a few months away from that.
But if you get to that point and you're listening to this show and you're thinking,
man, I love this thing, tell the world.
And point back to the changelog and share what the story's about.
So, Lottie, thanks so much for coming on the show. Is there any closing thoughts you have that you want and share what the story is about. So lots of you.
Thanks so much for coming on the show.
Is there anything,
any closing thoughts you have that you want to share with the audience today before we close out the show?
Well,
there is nothing else on my mind,
to be honest.
I thank you very much for them.
I appreciate it very much.
Absolutely.
Thanks for having me.
Totally.
It was great having you.
Well, I do have a few people to thank. Totally. It was great having you. Um, well,
I do have a few people to think I got,
uh,
obviously you,
the listeners,
we couldn't do this show without you.
Your ears are very important.
Um,
and we thank you so much for listening to the show and to our members who
support us.
If you go to changelog.com slash memberships,
let me make sure that you are correct.
Cause I always forget
if it's plural or not. It is membership, not plural. I'll add a redirect to memberships to
membership. But nonetheless, if you go to changelog.com slash membership for 20 bucks a year,
you can support what we're doing here. We give you access to our members-only Slack room, exclusive discounts from
our favorite products and most trusted partners, unrestricted access to our archives, which can be
Googled, but nonetheless, you can't find them easily just by clicking around the site. And then
also, if you want a change-law tee to outfit yourself with, we give you that basically at
cost, half off, because we love our listeners and our
members we also love our sponsors those sponsors our code ship top top which we mentioned so top
top big shout out to you today on this show harvest love tracking time with harvest and linode linode
is awesome vps's that are just tried and true in Linux easiest way
to get up on the internet with
Linode thanks so much
to those guys for supporting the show and thanks so much
to you Lotsy and everyone else for
joining us on this show today
and with that
let's say goodbye
thanks for that We'll see you next time.