Tony Grimes Hosts Tait Hoyem
[00:00:00] Tony Grimes: Welcome to the next episode of the LIBI podcast. I'm Tony Grimes, a guest host for this episode and our guest today is Tate Hoyem CEO of Byte Tools. Welcome to the podcast.
[00:00:17] Tait Hoyem: Hey, thanks, Tony.
[00:00:18] Tony Grimes: So, this is my first time hosting for this podcast. And, normally what I do is I stalk my guests and thank you ahead of time for making this easy for me.
I just went to your website and oh, okay. He's got everything here. And, one thing I noticed going through your GitHub is you have a wide variety of projects there. I saw like tons of let's see, what did I see? Apache? We saw Node. There was something with python, you did some Django. You kind of played around with Jekyll.
You'd love Rust right now. You're into Linux, I guess basically I kind of have an idea of how big of a nerd you are right now. how did this all start? Like what, what got you into programming? What got you into just being a big nerd?
[00:01:08] Tait Hoyem: Well, I've always been into computers in one way or another.
You know, I, when I was, you know, 10 or 11, I was always on the computer. Whenever there was a problem, my parents were like, oh, Tait can fix it. You know? but actual, software development. And in addition to that, you know, sort of Linux and that ecosystem. That specifically came out of Minecraft out of, out of all things that people that bring people into programming.
It was Minecraft. at the time I was running a Mac and there was a bug in Java and Minecraft didn't work. And so some guy on a forum said, ha ha, try Linux. And I gave it a go the bug wasn't there. So that started me on Linux and being on Linux, having sort of full control of your system. that got me slowly into programming.
it was that, along with trying to make Minecraft mods, of course.
[00:02:05] Tony Grimes: And how old were you when Minecraft was the big thing in your life?
[00:02:09] Tait Hoyem: Probably 13. 14, yeah. I'd say around there. so then, yeah, after that, it was, I wanted to do that. I've still never made a Minecraft mod. I've moved away from that since.
but it sent me down a path it's sent me down a path of being fascinated by how computers work and wanting to make things better about them.
[00:02:27] Tony Grimes: It's been a while since I've gone through high school, my first language was like basic in computer 20, whatever the name of the course was. computer science, like in high school nowadays, what was your, your experience with that?
[00:02:41] Tait Hoyem: I don't really know because I was homeschooled and so I did not have computer classes per se. I tried my best to do a more structured online learning. And at the time the school I was with actually offered it, in basic, believe it or not. And. That wasn't my first introduction to programming. I had done a tiny bit of Java beforehand, but it was, it was my first formal introduction to programming was, was in basic.
[00:03:09] Tony Grimes: And basic is a pretty old language GOTO's. All of that. There's usually like something like a passion project you might've run into, fond memories of. First language basic probably wasn't it,
[00:03:24] Tait Hoyem: It was not. the first project that made me realize that I could make a difference, was a project that I got into while learning Mandarin Chinese.
when I was learning that, what happened was, I had the, all these documents that were in Chinese, you know, books and short stories and such. And of course I couldn't read them cause I, I couldn't read Chinese very well, but I knew some of the words and I'd try to get away with trying to read them, but it wasn't really working out.
but for learners, For learners specifically, they have books with the phonetic pronunciation of Chinese characters called Pinion or Juyen, depending on where you're from. And I realized that I could probably find a way to insert that into an already existing document. So one of my first big projects was called EPUB with Pinion, and it would take an EPUB document, which is basically just a zip file with HTML in it.
[00:04:24] Tait Hoyem: I extracted everything out of it, and I was able to add these phonetic notations on top of the characters so I could know what I was reading. That was the first, you know, passion project. The first thing I, you know, I, I worked 10 hours a day until I got it done kind of project. And that was sort of when I realized that I have the choice to change things for the better, if I really want to.
[00:04:51] Tony Grimes: Ya and that seems like it joined two passion projects 'cus, learning Chinese just isn't one of those things you just do one day right?
[00:04:58] Tait Hoyem: No, no, it's not. Yeah, you're right. It was totally a cross section of passions, which is what I keep looking for today is something that's not just great engineering, but something that's great engineering, something that helps me out.
Maybe it helps other people out, whatever it is. I'm looking for something that is that, that sweet spot of, a cross cross-section of interest.
[00:05:21] Tony Grimes: And now fast forward to today, just looking at your, I guess, your GIT history, sorry for stalking you...
[00:05:29] Tait Hoyem: That that's all right. That's public for a reason,
[00:05:31] Tony Grimes: but, you now have gotten into Rust and I have another friend of mine who you probably know, Adam who loves, loves, loves Rust.
And I find it very. Interesting, this, this language. How do you feel about it? What a you've got into, into it. You like it, obviously you have some kind of interest in it.
[00:05:56] Tait Hoyem: Yeah. So rust rust was, I would say more of an accident than a, than a choice. what happened was at the time I was talking to some friends from the UK and Romania and they were getting together to build a new piece of accessible technology a so, for people who don't know if you're blind and you're trying to use a computer, you need the computer to read stuff out to you. And that's called a screen reader. they want it to make a better one. They wanted it to make a faster one. They wanted to make a very type safe screen reader so that you did wouldn't have, random crashes and they chose Rust because it had that extremely strict type safety, Inherent within it.
It also handles, asynchronous programming really well. So they chose that. And then I came in as they were sort of designing this project. And I learned Rust as a consequence of this project, more than a, an intentional decision to learn Rust first.
[00:06:58] Tony Grimes: Yeah. It seems like that's a common pattern in your life. You kind of follow your interests and then whatever technology is in front of you, you just, kind of, look at it and you just, oh yeah sure I'll learn this.
[00:07:12] Tait Hoyem: Yeah, that's exactly it. If it's Python, it's Python, if it's Rust, it's Rust. If it's shell scripting it's shell scripting, it doesn't matter. The point is, is that I can get what I want to do done.
[00:07:24] Tony Grimes: I think, what was it the first time that we first had a conversation? I think it was that Uh chess game the, the pull request kind of thing. And I was very interested in that because, you know, as a teacher, I I'd like to give back and be a good Internet citizen and teach accessibility. And I gotta be honest.
I I'm not the best at it. I, I know the basics, but it's not like, you know, I'm great at going through the accessibility toolbar thing in Firefox or anything like that. And this really excited me about that, that chess game idea and like how you would even start with something like that. tell us a little bit about that.
[00:08:08] Tait Hoyem: Alright, sure. So, this is for a website called lichess.org, L I chess.org. And. What happened was at the time I was wanting to play chess with some of my friends who were blind and they had their favorite site to do that. And I had my favorite site to do that. The problem was is that the site I was using wasn't accessible whatsoever.
If you were blind, you were out of luck and their site looked terrible. And so I had a really time using their site. And so I saw this and I was like, man, this, this is a serious problem, you know? And, and it also segregates communities, right. You have, you have blind players of chess only playing other blind players of chess, which is just that's terrible.
You know? And so I found a website which had a, somewhat, they were, they were trying to have an accessible version of chess available, and that was lichess. There, there are a non-profit out of France. And I saw that, and I said, okay, that that's, that's something I can work with this. And so I asked some of my friends, I said, well, how would you want to navigate a chess board?
How would you want the chess board to look like, feel like semantically, how should it be marked up? Should it be a table? Should it just be a bunch of buttons? Like, what do I do? What do I do? So I asked for input, they told me what they wanted, and I took some inspiration from the site they were using originally.
And I was able to put together a pull request for lichess, extending, extending their non-visual user interface to the blind, or rather to beginner blind chess players. It was, it was pretty good for people who really knew the game already and were very familiar with it. But someone who was learning was going to have a very tough time understanding what's happening.
[00:10:04] Tony Grimes: Like somebody who can't memorize the entire board with a slightest glance.
[00:10:09] Tait Hoyem: Yes, exactly. And it was mostly for those people. So I was able to put in a pull request. I, I had lots of them back me up. I said, Hey guys, if you really want this to go in, can you please make a GitHub account and go comment on the pull request and say, yes, I want this.
And it got approved. And so now if you go to lichess.org, there are two modes. there is the standard mode, the mode that I would use, and there is blind mode and in blind mode, this completely separate interface shows up. And it allows you to navigate the board with arrows and keys, like a K or R will bring you to the next king or Rook in the board.
So you're able to have sort of a piece navigation go to the next pawn, go to the previous pawn in the board, that kind of thing.
[00:11:01] Tony Grimes: Getting a little bit deeper into how that will work. Like what, when you asked them what they wanted, what did they answer with? Like, what is it like when they're well, you're blind. You obviously save money on a display. now do you just spend that extra cash on better speakers? Is it a, some kind of weird braille thing? Like what does that look like to somebody?
[00:11:26] Tait Hoyem: Yeah, so it, it depends actually, some people really strongly prefer speech. They will refuse to use braille. I have a few friends that absolutely refuse to use a braille interface cause they hate it.
and I have other friends that refuse to use speech and absolutely are committed to using braille every day. So it's really more of a preference. it's it's sort of like, you know, there's that one guy that has the, you know, 32 inch ultra wide curved monitor and there's that other guy that's using that square monitor from his parents' basement 20 years ago.
[00:12:02] Tait Hoyem: Right. It's closer to that. You know, you have your preference of size, you have your preference of whether it's curved or not. And obviously your budget is a consideration in that as well. Having a braille display, as they're called, are extremely expensive, they're upwards of $10,000 in a lot of cases. So, a lot of people that can't afford it will be using speech and speech is, from what I've seen, more the default amongst people who, who can't see that they're using speech more than braille, because you can use that in a park. You can use that on your walk. You can use it on the train, you can use it anywhere. Whereas a braille display, it's this big, chunky thing you got to haul around with you.
[00:12:46] Tony Grimes: So let's say we had those two paths, speech, and braille. Does that change the way that you. Structured things in your code or do you not have to worry about that?
[00:12:57] Tait Hoyem: Generally not? So a braille display when connected to a computer will generally follow the screen reader. So the screen reader is actually what provides the braille interface.
So instead of saying submit form button, it will just write to the braille display "submit form button". So it's really just a, a medium of this same technology, either way. They're using a screen reader to get around.
[00:13:26] Tony Grimes: Putting all of that in my brain, trying to, you know, trying to visualize how that, how that works.
[00:13:31] Tait Hoyem: It's it's all good. It's a lot of new stuff. I understand.
[00:13:34] Tony Grimes: Okay. So you've had this one, it seems so I was looking through the pull request and, thumbs up all around. It seems in the, in the comment thread. And was that your first pull request or do you often make contributions to third party libraries?
[00:13:50] Tait Hoyem: I try to make contributions, but frankly there often isn't anything for me to add.
[00:14:28] Tony Grimes: I ha I still have yet to do a pull request. It's. You know, one of those things I don't, I don't even know how to get started.
[00:14:35] Tait Hoyem: And it's, it's tough. Let me tell you, I mean, I saw the need for one of these pull requests and man, it took me three weeks just to know what was going on in the code.
W when you come into a new code base and you have no support, you've got no help. You don't have a boss or colleague to go to it's just, go figure it out. I hope the documentation's good. Most of it was written in TypeScript. but there was some Skalla on the backend. I didn't have to touch too much of that. I only had to add a couple things on the backend, but mostly TypeScript.
[00:15:12] Tony Grimes: That's awesome.
I guess I've never had the courage to jump into a code base that I don't even know about, like, you know, where would you even start?
[00:15:22] Tait Hoyem: Yeah, no, no, exactly. And even, even if you decide to start, how do you not get discouraged after the first week of looking at the code and understanding nothing?
And what about the second week where you still understand nothing? it took a lot of motivation from my friends who were sort of egging me on like, oh, you can't stop now. You already put a week into it. Right.
[00:15:44] Tony Grimes: It's going to have good friends like that. Ones to keep you honest.
[00:15:46] Tait Hoyem: Oh yeah. Yeah. Good friends who want you to build their software for them.
[00:15:52] Tony Grimes: So I was. For the, the viewers, we were just, setting this, this podcast up for, recording. And actually my first question was going to be Mac, Linux or PC. which one do you like? And then after looking at your GitHub, obviously Linux and I just assumed because of my own bias that, you know, the, the software we use recommends Windows, Mac and all that. Oh, he's probably got, you know, something that this will run on. And I was like, okay, no, you're, you're definitely, you know, you started with that Mac way back in the day, and it seems like you fallen down the Linux rabbit hole. So I was looking at that. What's your, you have that project, your latest one.
And we talked about this before. What would, what's an update to that, that, Odyssey that you've been on with, I can't remember what it was a bios?
[00:16:46] Tait Hoyem: Oh, the bios. so I have, I have a few new projects that I'm working on. Yeah. So, so the bios is actually not my project. it's actually the project of EDK2 they're the developers of a lot of bios software for major companies like ASUS and Acer and Dell. Yeah, so they are working on, getting audio drivers, working within a bios, for Intel HD audio, that would enable blind users to use their bios, which is something basically that has not existed ever. the best you've been able to do is ask for someone to help you.
[00:17:19] Tony Grimes: Because bios comes first. There's not a lot that, I don't know, that's at the limit of my knowledge of things is okay. Bios that's okay. That's that's as far as I want to go.
[00:17:32] Tait Hoyem: Yeah. Yeah. Fair enough. well, the good news is, is that that's not my project. the next major project I have coming up is actually a diagram tool. So this is, this is, you know, far into the future, I'm sure. But the, the base idea of this is to separate the way we look at data and the data itself. A lot of times when you go into a university class, you're getting lots of diagrams that are images, which is fine for most people. Right. But let's say you can't see the diagram. Okay. Well, now the diagram is just image123.jpg, or what if you're dyslexic and can't read the font?
Right. All of those things, it could potentially be issues and issues for only a small number of people per problem. Right. There's not a ton of blind people in computer science or a ton of dyslexic people in computer science, but collectively altogether, it's, there's a significant portion there. Right? So the idea I had is to, to, to separate the, the data itself.
From the representation of the data, this would enable a teacher to store all their diagrams in a sort of pure data format and then click export to JPEG or export to touch diagram for the blind. So there's a special printer that will sort of puff up certain areas of the paper to make it look like a diagram, kind of like a braille machine, but yes, except except it's, instead of being braille, it would be a, high fidelity, tactile graphic.
It can be any size you want, you can change all that stuff. And instead of using colors, you can use patterns and have a legend for it and all these kinds of things. It's a ton of work. So that's why this project, I don't have an example of this project, right? This is more of an idea. but likewise, if you could hit image with dyslexic font in a one click.
Now anyone can look at that same diagram. No problem. Colorblind one click done. And it'll have a legend saying, okay. Yes, we're using this shade of gray for you, but just so you know, the class is going to be talking about green. I think this idea that the fundamental idea, cause you know, if you're a university or a college teacher and you go to make a diagram, you probably open PowerPoint.
Right. Yeah. You add some circles and you add some lines between the circles and there you go. Now you've got a diagram, but with a specialized tool for each diagram type, you are able to separate that, that core information from the way it's being presented. And that could be a very big shift in accessibility for anyone.
I mean, what a, what if, what if I want a plain text description of the diagram? Well, if the data is separate, Code can be written to make it possible.
[00:20:39] Tony Grimes: So a more complex problem, like the, do people like the voice or the braille, that's just for the blind. You like now we're have to figure out, okay. Here's data.
We don't know what it's going to look like before we get it. What would a, like you have to distill it down so that anybody can make anything that they want with it. Depending on what their, I don't know, whatever they're bringing into it.
[00:21:03] Tait Hoyem: Exactly. And that's, that's something that's obviously extremely difficult and requires a lot of code per even type of diagram.
Can you imagine the difference between, you know, a bar graph and just having like points on a plane, even just...
[00:21:21] Tony Grimes: Map, something map related?
[00:21:23] Tait Hoyem: Yeah. Even just those two differences or, or having. like a map of the U S or Canada and having the provinces be different colors. What if it's not the provinces?
What if it's each riding of a federal districts or whatever, you know, all of those things require, you know, a special code process to go through, which is just monstrous and scary. but in theory, once you do that work, it should be mostly done for that diagram. And using the rule of 80, 20, 20% of the diagrams are probably used around 80% of the time.
So you can get pretty far with a pretty marginal set of...
[00:22:07] Tony Grimes: you don't have to worry about error bars until you get to academia.
[00:22:10] Tait Hoyem: Exactly. Yeah, exactly.
[00:22:13] Tony Grimes: So where are you at with the project and seeing, it sounds like a really fun one. Is this a passion project?
[00:22:19] Tait Hoyem: Hopefully a passion project. I don't know if I'll have passion for it in, in, you know, five years when, when it's my full-time job.
[00:22:26] Tony Grimes: Well, we gotta, we got to set a bar for our passions, mine's three years.
[00:22:29] Tait Hoyem: Yes. Yeah, of course. I want to somehow try to make them if I can't make money off of it, I frankly can't do it. You know, we all have to live. so trying to figure out how to do that because I'm very pro free software. I love the GNU general public license.
I basically don't use any other license for code. And how do you square that? You know, how can I, how can I sell something that's free and anyone can download it's, it's a, it's a tough thing to look into. And I I've, I've considered all the options, including making it proprietary, but I, I wouldn't be able to live with myself if I did that.
So yeah, I think about it. I think about it. I don't know if there's enough people that care, frankly about a project that, you know, yes, it seems like a very fundamental problem to solve, but the truth is that it only improves the lives of what maybe 2% of people, you know,
[00:23:26] Tony Grimes: which is the, a whole, one of the reasons why you need to do it, but how do you do that?
You know, like with rent and, you know, in the real world,
[00:23:33] Tait Hoyem: how do you support yourself in doing that?
[00:23:36] Tony Grimes: Very interesting. So we got a summer coming now, is this going to be for work or play? What do you, what do you have planned?
[00:23:41] Tait Hoyem: I don't know yet, actually, there is a decent chance that I could be moving this summer.
If I'm moving, then, it's going to be mostly that ha ha.
[00:23:50] Tony Grimes: Not out of Calgary, I hope.
[00:23:52] Tait Hoyem: Yeah. Actually out of Calgary I'm I'm
[00:23:55] Tony Grimes: That breaks my heart Tait.
[00:23:57] Tait Hoyem: I'm trying to get out to Vancouver. There's there's more opportunities there. there's more people to meet. There's more meetups to be at. Yeah. It's, you know, it's what you gotta do and, and my girlfriend lives there, so that's, that's part of it.
Yeah. Yeah. but the plan is I want to do lots of biking. I want to get a bike and just sort of peruse around the city. You know, I don't want to, I don't love trails. I personally actually can't see that well myself, so obviously big mountain biking trails are not my thing, but you know, perusing around the city, seeing what there is to eat love my food.
So gonna, gonna try eating it all the local restaurants. And
[00:24:35] Tony Grimes: I'm just saying that just to make me feel better.
[00:24:38] Tait Hoyem: Yeah. Yeah. And then if I have time, I'm hoping to be able to also contribute to all these other projects I have going on and maybe make life better for, you know, those 10 people that really want it, you know?
[00:24:52] Tony Grimes: Well, it's going to be more than 10 people, I think. Somebody does have an interest in the types of projects that you run or just wants to hang out how what's the best way to get ahold of you?
[00:25:02] Tait Hoyem: Yeah. So if it's a personal project that I have on my personal GitHub, feel free to go to my website, Tait.tech
T A I T dot tech. or if you're interested in some kind of business thing, you want to hire me, email@example.com
[00:25:18] Tony Grimes: well, thank you, Tate, for sticking around for this a great podcast. For those of you listening, you probably already know how to get here, but, you can pick up the next episode of the Rainforest LIBI podcast at rainforestalberta.podbean.com and I bid you guys adieu. And a Tate. I wish you the best. And please, please, please stay in Calgary. But that's just my own personal bias and feel free to hit up Tate for a coach. Anytime you're in Vancouver, have a good night.