The Changelog: Software Development, Open Source - Building the Ultimate Hacking Keyboard (Interview)

Episode Date: December 11, 2015

Lá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)
Starting point is 00:00:00 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.
Starting point is 00:00:46 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.
Starting point is 00:01:42 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.
Starting point is 00:02:26 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.
Starting point is 00:03:00 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.
Starting point is 00:03:47 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
Starting point is 00:04:14 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.
Starting point is 00:04:33 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,
Starting point is 00:05:03 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
Starting point is 00:05:32 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
Starting point is 00:06:01 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.
Starting point is 00:06:43 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.
Starting point is 00:07:32 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
Starting point is 00:07:54 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.
Starting point is 00:08:34 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,
Starting point is 00:08:45 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.
Starting point is 00:09:03 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.
Starting point is 00:09:47 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.
Starting point is 00:10:29 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
Starting point is 00:11:18 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.
Starting point is 00:12:07 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,
Starting point is 00:12:21 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?
Starting point is 00:13:20 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.
Starting point is 00:14:09 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.
Starting point is 00:14:54 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
Starting point is 00:15:49 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.
Starting point is 00:16:26 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,
Starting point is 00:17:22 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.
Starting point is 00:18:07 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
Starting point is 00:18:37 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.
Starting point is 00:19:36 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
Starting point is 00:20:14 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.
Starting point is 00:20:39 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
Starting point is 00:21:01 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
Starting point is 00:21:38 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,
Starting point is 00:22:15 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.
Starting point is 00:22:57 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.
Starting point is 00:23:31 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.
Starting point is 00:24:06 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.
Starting point is 00:24:29 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
Starting point is 00:25:11 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.
Starting point is 00:25:51 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
Starting point is 00:26:24 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.
Starting point is 00:26:56 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.
Starting point is 00:27:17 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.
Starting point is 00:28:17 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,
Starting point is 00:29:19 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,
Starting point is 00:30:17 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.
Starting point is 00:31:17 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.
Starting point is 00:31:46 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
Starting point is 00:32:00 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
Starting point is 00:32:21 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
Starting point is 00:32:44 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
Starting point is 00:33:21 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
Starting point is 00:34:28 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.
Starting point is 00:34:53 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
Starting point is 00:35:10 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.
Starting point is 00:35:47 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
Starting point is 00:36:48 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,
Starting point is 00:37:49 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
Starting point is 00:38:27 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.
Starting point is 00:39:14 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.
Starting point is 00:39:47 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
Starting point is 00:40:10 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
Starting point is 00:40:44 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,
Starting point is 00:41:02 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
Starting point is 00:41:31 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.
Starting point is 00:42:07 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,
Starting point is 00:42:45 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,
Starting point is 00:43:00 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.
Starting point is 00:43:27 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.
Starting point is 00:43:42 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.
Starting point is 00:44:29 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
Starting point is 00:44:59 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.
Starting point is 00:45:31 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.
Starting point is 00:45:52 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.
Starting point is 00:46:17 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
Starting point is 00:47:03 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
Starting point is 00:47:43 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,
Starting point is 00:48:01 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.
Starting point is 00:48:35 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.
Starting point is 00:49:25 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.
Starting point is 00:49:55 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
Starting point is 00:50:56 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
Starting point is 00:51:30 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.
Starting point is 00:52:31 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
Starting point is 00:53:26 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
Starting point is 00:53:42 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
Starting point is 00:54:39 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.
Starting point is 00:55:10 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
Starting point is 00:55:30 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.
Starting point is 00:56:00 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.
Starting point is 00:56:38 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
Starting point is 00:56:59 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.
Starting point is 00:57:32 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
Starting point is 00:58:00 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.
Starting point is 00:58:24 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,
Starting point is 00:59:17 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.
Starting point is 00:59:51 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
Starting point is 01:00:08 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.
Starting point is 01:00:59 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
Starting point is 01:01:26 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.
Starting point is 01:02:16 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
Starting point is 01:03:01 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.
Starting point is 01:03:32 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
Starting point is 01:03:51 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.
Starting point is 01:04:37 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
Starting point is 01:05:41 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,
Starting point is 01:06:18 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,
Starting point is 01:06:43 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
Starting point is 01:07:55 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
Starting point is 01:08:17 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
Starting point is 01:08:59 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.
Starting point is 01:09:28 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.
Starting point is 01:10:01 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.
Starting point is 01:10:34 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.
Starting point is 01:11:33 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.
Starting point is 01:12:01 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
Starting point is 01:13:12 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
Starting point is 01:13:52 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,
Starting point is 01:14:24 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.
Starting point is 01:14:40 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,
Starting point is 01:15:27 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.
Starting point is 01:15:49 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?
Starting point is 01:16:16 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.
Starting point is 01:16:33 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,
Starting point is 01:17:12 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
Starting point is 01:18:07 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,
Starting point is 01:19:12 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.
Starting point is 01:19:40 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.
Starting point is 01:20:28 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
Starting point is 01:21:09 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.
Starting point is 01:21:25 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,
Starting point is 01:22:18 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.
Starting point is 01:22:49 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
Starting point is 01:23:10 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?
Starting point is 01:23:41 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
Starting point is 01:24:12 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.
Starting point is 01:24:40 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.
Starting point is 01:25:23 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.
Starting point is 01:26:28 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
Starting point is 01:26:43 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
Starting point is 01:27:22 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
Starting point is 01:28:20 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?
Starting point is 01:28:58 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
Starting point is 01:29:42 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.
Starting point is 01:29:59 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,
Starting point is 01:30:43 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
Starting point is 01:31:27 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
Starting point is 01:32:03 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
Starting point is 01:32:30 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
Starting point is 01:32:46 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
Starting point is 01:33:49 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.
Starting point is 01:34:26 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,
Starting point is 01:34:51 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.
Starting point is 01:35:17 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
Starting point is 01:35:37 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
Starting point is 01:36:02 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,
Starting point is 01:36:36 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
Starting point is 01:36:54 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.
Starting point is 01:37:24 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.
Starting point is 01:37:44 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,
Starting point is 01:37:56 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,
Starting point is 01:38:23 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.
Starting point is 01:38:46 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.
Starting point is 01:39:01 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,
Starting point is 01:39:09 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
Starting point is 01:39:25 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
Starting point is 01:40:14 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
Starting point is 01:40:37 let's say goodbye thanks for that We'll see you next time.

There aren't comments yet for this episode. Click on any sentence in the transcript to leave a comment.