John Koster, Author of Advanced PHP Strings: Text analysis, generation, and parsing via Laravel
A Leanpub Frontmatter Podcast Interview with John Koster, Author of Advanced PHP Strings: Text analysis, generation, and parsing via Laravel
John Koster - John is the author of the Leanpub book Advanced PHP Strings: Text analysis, generation, and parsing via. Laravel. In this interview, John talks about his background, some of the fundamentals of Computer Science, Laravel , his book, and at the end, they talk a little bit about his experience as a writer.
John Koster is the author of the Leanpub book Advanced PHP Strings: Text analysis, generation, and parsing via. Laravel. In this interview, Leanpub co-founder Len Epp talks with John about his background, some of the fundamentals of Computer Science, Laravel , his book, and at the end, they talk a little bit about his experience as a writer.
This interview was recorded on October 20, 2022.
The full audio for the interview is here: https://s3.amazonaws.com/leanpub_podcasts/FM242-John-Koster-2022-10-20.mp3. The Frontmatter podcast is available on our YouTube channel at https://www.youtube.com/leanpub, in Apple Podcasts here https://podcasts.apple.com/ca/podcast/frontmatter/id517117137, on Spotify here https://open.spotify.com/show/00DiOFL9aJPIx8c2ALxUdz, and almost everywhere people listen to podcasts.
This interview has been edited for conciseness and clarity.
Transcript
The transcript below is unedited output from OpenAI Whisper.
====
Hi, I’m Len Epp from Leanpub, and in this episode of the Frontmatter podcast, I’ll be interviewing John Koster. Based in the Greater Grand Forks area in North Dakota, John is a software developer, blogger, and book author with over 15 years of professional experience on a wide range of projects, including web development and critical government reporting applications. You can follow him on Twitter at John M. Koster and check out his blog at Stalatt.com. John is the author of the Leanpub books, Advanced PHP Strings, Text Analysis, Generation and Parsing via Laravel, and Laravel Companions, Second Edition. In Advanced PHP Strings, and I’m borrowing directly from the book description on Leanpub here, John provides an approachable guide through reading, writing, looping, and parsing multi-byte strings through hundreds of hands-on examples using the Laravel helper methods as a familiar foundation. In this interview, we’re going to talk about John’s background and career, professional interests, his books, and at the end, we’ll talk a little bit about his experience writing and self-publishing. So thank you very much, John, for being on the Leanpub Frontmatter podcast. I always like to start these interviews by asking people for their origin story. So I was wondering if you could talk a little bit about where you grew up and, you know, your first computer and how you got into programming. My first computer was one that my mom actually bought, I think it was our five or six, she was at a garage sale and she just saw this little computer box and she’s like, well, that looks interesting. We don’t have anything like that at home. She just brought it home one day and set it up. And the only thing that would work on it, it was just a terminal display with a eight inch floppy. Then you put it in and it was Oregon Trail. And that was the only thing you could do with it. Right. So you would hammer away at that and, you know, find interesting ways to die of dysentery every day. And that was my introduction to computers. And then from that, it was about a year or so later, I was at just a local churchyard sale and I picked up a Windows 3.1 machine that they were getting rid of. And that’s when I really started to get into like graphical interfaces or like computers in general. And you go from that black screen with the green text and you’re like, I can drag and drop stuff around. And, you know, Windows 3.1, this is amazing. This is the greatest thing in the world. So that’s kind of where I got into it and kind of been hooked on it ever since. And yeah, I’m just sort of curious about your first experience programming. You know, I was mentioning before we started recording that, you know, this podcast has become a bit of a time capsule of like different eras of computing. So there are some people who are like, a lot of people actually, it was like printed magazines that they’d type in programs from printed magazines and they’d buy those and type those into their computer. What was your first experience with programming? My first experience with programming, my daddy was doing some university stuff at the time when I was really young. He went into computers and he was bringing home textbooks and stuff like that. And when he wasn’t busy with his university computer, then I would like sneak onto it, you know, then follow along with the books and kind of do stuff like that. And then from there, it’s like, well, what’s a webpage? How does that work? And then you start ripping things apart and trying to get something to work and it kind of becomes an addictive cycle. Yeah, that’s really interesting. I can’t tell you how many people it’s a sort of parent bringing a computer. I mean, obviously, if it’s your kid, the parents probably initiating it. But like, you know, for a lot of people, it’s a parent bringing it into the home for one reason and then the kid finds another reason to use it and play around with it. And so I’m just looking at your LinkedIn page here. And so I gather you studied computer science? Yeah, I did about three and a half, four years at Mabel State University here in Mabel, North Dakota. That went reasonably well. I don’t think I would consider myself a very good student and it ended up dropping out probably right at the end of the last semester for various reasons. And that’s actually interesting. One question that comes up relatively frequently on this podcast is, if you were starting out now, would you go to university and study computer science again, obviously with the intention of having a career like the one that you’ve had? I’ve thought about this a lot over the years and if you would have asked me this question, I’d say two or three years ago, I would have been like, no, you know, just absolutely not. It was a waste of time and my position softened over time and it’s like, did I gain much from university as far as like computer science goes? No, not really. But all of the other things that go along with it, like that’s where the true value is. So if you have, I would say to other people, if they were thinking similar thoughts is like if you have the opportunity to go, you definitely should because like, yeah, you’re going to do coursework in your field of interest, but it’s all that other stuff that you’re going to get exposed to that really makes the experience worth it. Yeah. It’s funny. You took the words out of my mouth. That’s sort of my line about all that is that like, you know, one of my joking things, which is also true is like people like doctors and lawyers and professors aren’t so kind of, not intimidating, but like impressive. If you were there drinking with them when you were 18 and you remember, I remember you before you were, you know, whatever, you know, like and like it sounds trivial, but actually being going through, talking specifically about being young and going to university, which of course is not a necessary thing, but all these things that you’re exposed to. And like I was also mentioning before this podcast, I come from originally from Saskatchewan a little bit north of you. And so I don’t need to tell you that it’s like in many senses, a very remote place. And when I grew up with sort of like, you know, just before the web, right. And so like when I was a kid and so like it was even more remote in a way than things are now and being able to go to university where there’s just like classes on everything, people taking everything, you know, libraries with books on everything. And then the time to engage with all that stuff is just amazing. And it gives you, it gives you powers that maybe you forget you learned, you earned through that time. So yeah, so I totally agree with you that it’s like, you know, a lot of, there’s so much else going on beyond that sort of specific subjects that you study when it comes to university education. Yeah, definitely. And I think it’s, especially nowadays, like you mentioned, there’s so much material and other ways to get to where you want to go that if you really want to do something, you’ll find a way to do it. Yeah. And it is interesting too, I should mention, you know, like I would say about a quarter of the people that I interview are in the forget about it kind of mode. If you, I mean, if you want to be, if you’re looking for job training for a job in programming, don’t go. There’s like a lot of, like a pretty high proportion of people who are very adamant about that and they have their own very good reasons for staying in that position. And so then, so you sort of, you know, studied and then you went to work and I know you’ve done some interesting work for government, I think on like highway infrastructure data or something like that. And I was just wondering if you could talk a little bit about, you know, what, what kind of, what, what that work entailed and what, what the government was doing. Yeah. So the boring answer to that is it’s a simple records management system that was developed for them and them being select counties within the state of North Dakota. And what they do is they, they send out people to work on the roads, the highway systems. So it tracks everything from their employee management, like resource management down to materials, cost, equipment, use, just anything that you could think of as far as that goes and then various reporting around that, you know, like if they need to dispatch a report to FEMA or finance reports to the local government, all the way up to the state government. Actually, every once in a while I take the opportunity to ask a completely selfish question. So I’m going to ask that now, this is one of my hobby horses, but do they, do they, did they at the time gather data on the noise that they created from the work that they did? No, that would be super interesting if they did though. You’re talking about like decibel levels or? Yeah. But, but, but actually there’s, I mean, in, in the sort of noise community, there’s, there’s two things that, that sort of people, I think there’s two things that’s basically, it is decibel level. And then there’s something, something else technical about like basically how, how penetrating I think it is that has to do with kind of pitch and stuff like that. And I ask, because I live in a, in a city where like the city administration is just absolutely addicted to the use of machinery, just today I had like this horrible experience where some guys were actually like practicing with this, I won’t even go into the details, some crazy leaf collection monstrosity. And just in front of my apartment building, they were just practicing. And it’s hard to explain, like it would have disturbed and made life unlivable for probably a thousand people, what they were doing. And I’ve often thought like, of course, some things do involve noise, but if cities and, and administrations that actually do loud things actually just kept track of like, they might realize, oh, you know what, we’re doing way too much in this one part of town or like, you know what, that, that part of the, that part of the country has had way too much kind of invasive stuff going on in it. Why don’t we sort of schedule things so that we don’t do another thing this month? Yeah, that would be interesting. Almost makes you wonder if they don’t collect the information so they don’t have to act on it. Like, you know, if you think about like the noise restrictions around like airports and stuff like that. Oh, I absolutely think that that’s one of the reasons that people don’t collect data on it, which is, which is very unfortunate. But yeah, but no, that, I mean, that, I mean, that, that, that, that’s the kind of like, one of the reasons I was interested in asking about that is like, that’s the kind of work that actually like keeps the roads running, right? You know, like you need getting data on this kind of thing and, and the kind of things that sort of programmers enable is basically like a sort of infinite variety of just so many important things. And a lot of people I think don’t understand, like you, when you think of like the least computer thing, you know, that might be like highway maintenance. But of course, you know, these, this technology is behind everything. And what, what kind of work are you doing now? My day-to-day work largely involves, it’s in the telematics industry. So GPS tracking and fleet maintenance and fleet management and route optimization and all the things that kind of go along with that. And is that, is that for government or is that private sector? That’s private sector. Okay. Okay. Yeah, it must, and that must be an interesting thing too, to experience things from both of those sides. But, but in addition, in addition to your work, of course, you also, you create a lot of content and you, not only content, but you work on all these really interesting projects. And I’m not sure exactly what the best way into that is, but like, at what point did you find yourself blogging? I think, well, this kind of goes back to the university. I had a professor, his name was Terry, and part of the curriculum, he was like, you know, you’re going to learn a lot of things, you’re going to do a lot of things, you’re going to forget a lot of things. He’s like, so part of the coursework was like, if you find something interesting or like it took you a little while, just write yourself a private blog post, you know, kind of a journal for yourself. Cause you know, you can spend all day on Google searching for things, you know, or spend hours and hours in Stack Overflow. But if you have something that you curated yourself, like, you know yourself the best. Put your own notes, look there first going forward. And that was kind of the impetus of the, or the start of the blog that I have now. That’s really interesting. So you were sort of solving your own problems and then it’s like, why don’t, why do I keep all my solutions private? Just make them right. So that’s where that came from. So that the blog now is almost well over 10 years old down actually this month. So it’s been going for quite a while. Yeah. Congratulations. There’s just, there’s just so much on there. And in addition to sort of all the other things that you, that you do sort of write about, you write about your own projects. And so I was wondering, for example, if you could talk about one or two with him, like, what is the, what is the antlers toolbox? The antlers toolbox. That’s a fun one. Bring it up here so I can reference it. So antlers toolbox is, there’s this link templating language called antlers for the Stata Mixing Maths platform. And it’s designed to kind of help you get, you know, you design your content, your site structure and then the antlers language lets you quickly get that on screen and just move on with your work. And when I started really getting into it, like there wasn’t a whole lot of tools available to kind of help you do that as far as like syntax highlighting so you could see the difference between like what should be plain text or HTML or what’s an actual variable that you’re trying to output dynamically on the screen. So I started the antlers toolbox because there was a member of the Discord server at the time, another John, he posted a message one day, he’s like, hey, anybody, I have to edit around this, but there was an existing tool at the time that just did the syntax highlighting to make it look pretty. And there was this like a weird bug in it where it would kind of do it half ways and then it would like stop working and he’s like, hey, why does this happen? And I looked at it, I’m like, well, that’s certainly interesting. I think I’ll take a look at it this weekend, see if I can fix it. And what usually happens happened there and I started looking into it and took things way too far and then about eight months, nine months later, then we had the fixed syntax highlighting auto-completion until he sends, like understanding your project and providing smart suggestions for you. Oh, it’s really, you know, it’s really great. And everyone interested in checking it out, you can check it out at antlers.dev, which is by the way, a great, great web address. And another project you’ve got is, oh, and actually I should mention, I think, did you mention Statamic in your answer there? I did. Yeah. Can you explain a little bit about what that is? Yeah, so everybody I think would be fairly familiar, like if you were to mention like systems like WordPress or like Squarespace and stuff like that, they just help you build websites. Statamic is a similar tool to that where you can go in there and set up, this is what I want my data to look like and this is what I want the editing experience to look like and this is how I want to do it and this is how I want my workflow to be. So if like you want to use like a git integration to automatically back up every change that’s made to your site, you can just do that. Or you want to drop the control panel admin interface entirely, you can do that. You can just use a text editor if you want, but then just super, super flexible, powerful content management system, almost like the lean pub of content management systems. Like you can drop right down to a plain text file if you want and just go at it. And is it Laravel based? The latest versions really let the Laravel influence shine through. Okay. Yeah. So just before we go on to talk a little bit about your first book and the second edition, they were both called Laravel companion. We’ve actually had Taylor Otwell on the podcast a couple of times, so there may be people here who know what Laravel is, but just in your own words for someone who’s never heard of it before, doesn’t know what it is. What’s Laravel? Laravel is a framework to assist you in application development. And more specifically, it just kind of gets all of these stuff that you probably didn’t want to do anyways out of the way for you and then provides a lot of useful utilities like database management, authentication, just all of that stuff just right out of the box. So ignore all the stuff you probably didn’t want to do anyways, just get right to building your application. Right. Yeah. No, that’s a great, very compact answer. And so your first, I mentioned your first link by book was Laravel companion, and it’s now in a second edition. What was the origin story of that book? Yeah. So this actually gets back to the origins of the blog in general is like keeping track of my own notes. Sometimes I can have difficulty learning a subject. So like I ended up taking a lot of notes and like I was moving from primarily.NET environments, you know, like C-sharp, Visual Basic, ASP.NET, and then I was kind of like playing around with PHP and frameworks like Symphony and related. And just looking into Laravel and it’s just like, you know, a lot of the stuff is similar to what I’ve been doing, but it’s not similar enough where I’m not going to remember this. So I just kept on taking notes and taking notes and writing my own documentation, essentially, as I went through the code base for Laravel. Yeah, I know that’s a super, super, super sort of in a way kind of generous of you to share it. And this I think is common sort of trait that Lean Pub authors have, which is like, you know, I’ve solved all these problems. And like, you know, I mean, if I’ve got a blog, like, why don’t I make a book and sort of put things into shape in a coherent shape, so people will have one place to go. And your latest book is now called Advanced PHP Strings, Text Analysis, Generation and Parsing via Laravel. And yeah, I mean, I’ve got a specific thing. I think, you know, I want to ask you about there. But just before we do that, what was the origin story of this book? So it ties back to the Antler’s Toolbox and related projects, actually. So like when you go and you build something to do the kind of textual analysis, like as you’re typing and trying to figure out what, you know, as developers typing into their code editor, what is it that they’re probably trying to do? Like, what do they mean, even if the document’s like all broken? So you’re gonna have to be able to like parse text very quickly and handle all sorts of garbage input on the fly. And a lot of the techniques and strategies to do that is, it’s obvious once you know where to look, but not obvious to get to that point. And so this kind of gets back to the whole thing of like taking a bunch of notes and Advanced PHP Strings kind of comes out with that. It’s like, here’s a huge collection of things that I picked up over the last three or four years working on these different projects. And one, other people can look at it. But two, now I can forget about it. And when I need to learn it again, I’ll just go look at my notes. And when we talk about strings, so this is actually really interesting. So for anyone listening who’s like, not a programmer, we’re going to actually explain something super cool right now, hopefully, we’ll get there because at the beginning of Jon’s book, he explains in detail in a very clear way how the representation of characters on computer screens is sort of worked out and its history. And it’s super fascinating that the sort of framing I’ll give for this is a while ago, one of our best selling authors had a relative who was like, oh, I’d like to use this Lean Pub thing. But this person was a very, very smart, very knowledgeable, but not a programmer. And so when they encountered Lean Pub and some of our writing modes, you can write in plain text and using something called Markua, which is a plain text kind of syntax for writing books. It’s marked down for books, right? If you’re a technical person, everything I said probably more or less kind of made sense. And if you’re 99.9% of people, it was all like nonsense. And she eventually goes, look, I see this word Markua everywhere. Is it bigger than a breadbox? What the heck is it? And so I took the time after that, after laughing about it, because it was very funny the way she put it, was to write an article about from fun kind of historical and kind of starting from a non-technical perspective, what’s going on with the input and the output of sort of characters in computers? And it’s really interesting. So I was wondering if you could just talk a little bit about, let’s say, what a character is. Yeah, so that’s one of those interesting things that you don’t really think about too much during the day, isn’t it? So if you look at the screen now, like you are on your phone, you see like the letters, you know, like the T-H-E. And then you’re thinking, well, that’s interesting. That’s cool. Like I see little graphical things on the screen and then you start thinking about a little bit more. He’s like, well, it’s got to save that somewhere. And then if you think about it, well, he can’t save the letters themselves because I can move that between computers and that could possibly be problematic. So then you start thinking of how you might be able to do that and then eventually everybody kind of intuitively knows that these things that we call computers and smartphones, they all operate on these ones and zeros. And then we got to find a way to get all of those little individual characters to that and then quickly becomes a mess, you know? Yeah. And it’s one of the really interesting things about it is that, so yeah, as you say, so everything that’s sort of on a computer is eventually broken down into ones and zeros. There’s all kinds of cool information theory reasons about that and bits and bytes and stuff like that. But you can imagine like in the early days, everybody who was making computers kind of just came up with their own like 101 is an A, 111 is a B, you know, like they came up with their own mapping, right? And then the way you can think about why this matters is, for example, and I think you bring this up, like, you know, is like if let’s say I’m trying to, I’m communicating with someone using text, right? And I want them to have text in the end, but let’s say we use a word a lot, right? Like, you know, in my own notation, the word individual, I just use the letter I, if I’m writing something down quickly, like sort of shorthand, right? So you can actually compress, you can use these kinds of things to compress. But if I go like, you know, if I turn at the sentence, like the individual went to the store to the I went to the store, then I have to, if someone else is going to read that, they have to have a shared kind of map or whatever, so that they can decode it. And in a way that in the early days of computing, from what I understand is people actually had all kinds of different, everybody who was doing stuff did stuff a different way. So computers actually couldn’t read each other, basically, it would be sort of the cartoonish way of putting it. And so what people needed was a sort of settled convention for like, what sets of zeros and ones are the character A and what sets of zeros and one, what set of zeros and ones is the character B. And it was actually the Lyndon Johnson administration that helped bring about the kind of, I don’t know, the sort of set of conventions, is that that’s correct? Right? Yeah. What he did is he, I forget the exact year at the point, but he kind of just stepped in and said, like, you know, if you’re going to be working with the U.S. government, you’re going to use this specific standard. And that way, you know, we don’t have this problem of, we pretty much, I would assume I wasn’t there, but it probably came down to, like, we don’t want to have all of these systems that can’t talk to each other in five years or whatever. Then, of course, if you think about that, like, if you have the U.S. government saying, like, we’re going to use this standard, well, probably a good reason why it’s still around. Yeah, definitely, definitely. And so then we’ve got sort of this sort of ASCII standard, right? And I was wondering if, like, just to give you an opportunity to sort of give people a little bit of an understanding of the interesting sort of technical stuff behind this, what’s the difference between, like, sort of ASCII and Unicode? Okay. So, we can start with the way they’re similar. And that is, let’s say you have your list of letters, and it’s just a way to get those characters into the ones and zeros that we’re going to store somewhere and then transmit to them. Other people can take them back on and read it. ASCII is one of the older standards, and it kind of covers the English character set, the numbers, and a handful of control characters and stuff. But unfortunately, it stops. It’s a seven-bit encoding system, so you can keep everything nice and neat and, you know, in seven bits at the time with the byte size. And nowadays, we use eight bytes. Eight bits per byte still holds the ASCII values. So Unicode comes into play because if you think about it, you know, you only have seven bits. There’s a limited number of values you can store, you know? If you only work with English text, you know, probably never thought about it. Like, it handles English just fine. But now you want to start looking at, like, Japanese, Chinese, Korean, even, you know, languages like German. They got, like, the different accents, like the umlauts and all that stuff. Like, you’re going to run out of numbers to start assigning to these characters really quick if you just stick in that limited, you know, 0 to 255 range. So that’s kind of where Unicode comes in and just extends the range of values that you can start assigning to characters. Yeah, and it’s interesting just to sort of go into the real detail there. So like, a bit is a 1 or a 0, basically, and a byte is a set of bits. So if you’re using a 7-bit byte, like ASCII does, you can have seven 1s or 0s in a row. Each one of them has to be a 1 or a 0. And then the binary counting is basically being used to sort of turn those into integers or numbers, like 255 or something like that, right? And then the 255, then somewhere that we know, oh, that is a Z or something like that, which is the way it works. So now that we’ve got this idea, and so there’s, I think with Unicode, if I remember correctly, that there can be multiple bytes that sort of map to a character. Right, so the nice thing about what Unicode did is it’s like, okay, we’re going to preserve the ASCII range. We’re going to have one byte per character. So nothing that was working with ASCII, that all works, it’s not going to break, make Clinton B. Johnson happy. But like as you mentioned, as you get into the other characters, and I use Chinese characters a lot in the book because I think, you know, if you only grew up in English, you see Chinese and you’re like, oh, that looks difficult, that looks hard. So what we do in Unicode is we specifically choose a range, a value in a range that would never be part of the ASCII range and be like, we’re going to use that as the first byte. And if you see that value, then you can expect two other bytes to follow it to complete the full character. Or if you see a range in a certain other circuit value, then you know, like you have two bytes that’ll follow. So you can go from one to four using that kind of encoding scheme. And probably I’ve left some things out, but now that we built up these concepts, what’s a string? And I love, by the way, I love the fact that your book starts with like this really hard question actually. Like we’re going to, what’s a string? Because everybody who’s done computer science thinks they know, but maybe you don’t. So what’s a string? So a string is you just take that concept and you just keep adding more lists of bytes. And you keep on going and going and going and going and then depending on the language or system or whatever you’re using, you might have something called like an alternative by your bytes so you don’t run off into memory and start stomping all over something you shouldn’t be. But a string is just a collection of what might be a collection of bytes. And amazingly, I imagine to like you non-technical listeners, all this makes sense now and it’s so interesting. And there’s so much more to learn, which is great. And one of the reasons your book is 700 pages long, which is quite an accomplishment, which gives me an opportunity to move on to the next part of the interview where we just talk about your life as a writer and how do you go about writing a 700-page book? Was most of it from, as you said, your personal kind of documentation or blog posting that you’ve been doing? Did you set yourself a writing schedule? How did you go about putting that together? The ideas that came up in this book are born from those kind of personal notes. This project, more than most, I kind of cleaned it up with an intended audience other than myself. And I normally would. Do you want to repeat one of the questions? No, no, no. Yeah, no, no, no, no, no problem. And so, for example, do you have a writing schedule, for example, or do you just like do you have like there’s an hour in the day when you tell your family, like, don’t bug me, I’m writing, or is it just random? No, with work and, you know, I got four kids now and with the day job and everything, it’s like, I got to be pretty strict about the time I carve out to actually do the writing. So with this, the general writing process, I’ll sit down and be like, I know I want to get to hear this point eventually, kind of figure out who I want to talk to and explain this to, and then kind of work backwards and then I’ll outline a chapter. So if you think about there’s a chapter in there about parsing Gherkin, a testing language, so then you kind of reverse engineer, be like, what, if I had to explain this to an imaginary person, what would a good set of logical steps be? And then you break down the chapter and outline it, and then from there, I would go through and kind of produce the final code sample, and then start that same process working backwards and destructuring the code into logical bite-size units, and once I have that, that usually takes about that process I do on the weekends, you know, on Saturday and Sunday, that might take about four weeks, depending on the size of chapter, spending just a couple hours a day on it, and then once I have the outline, then you know, there’s a little thing that kind of clicks in your brain where you’re just like, now I got to do it, so then you’re going to wake up, you know, between 4.30 and 4.30 in the morning, then you’re going to write it until 7, and then you get the kids ready for school, and then you do your work, and then at the end of the workday, then you’re like, I’m going to write for another hour, and then you kind of just let it be. It’s a repeat. Got it. Yeah, no, that’s a really great description of a very, you know, determined process, right? Like I mean, in a couple senses of the term, right? Like, you know, you kind of thought through in advance, like, who this is for, and back out, and like, you know kind of what you want to write about, but who’s this for, and back out what you would want to say to that person so that they could understand it, and then once you’ve got, like, I’m an outliner myself, and so I totally identify with what you just described there, that like, I know where I am, and I know where I want to go, and I know that, like, you know, if I, you know, sit down for this period of time, I’m going to, I might come out backwards, I might come out ahead, but at least I know at the end of that session, I’ll know where I am in my project, and that’s a way a lot of people, and there’s other people who are like just, you know, sort of blah, you know, just kind of get it all out there, and that’s a very common writing approach as well that’s really popular with people, and I’m curious, do you solicit, do you explicitly solicit feedback from people on your books on Lean Pub? Not directly on Lean Pub, but this project is one of the ones where I did, kind of sent out a few sample chapters to individuals, you know, within the private network, and kind of like, hey, is this resonating with you, or like, here’s two different versions of the same thing, which style are you liking more, then you kind of pick and choose the people that you know that kind of match closely with your imaginary person that you’re trying to write for. Right. Right. You don’t tell them that, of course, but… No, no, no, that’s a really interesting detail, actually, that not only do you have a sort of certain kind of audience in mind in general, but that you find specific people who are like representative of that audience, and sort of test out your approaches with them. That’s a really excellent tactic. I think you have an answer for this last thing, but the last question I always like to ask on the podcast if the guest is a Lean Pub author is, if there was one thing that had you shouting at the screen and shaking your fist at Lean Pub over and over again, that we could fix for you, or if there was one magical feature that we could build for you, can you think of anything that you would ask us to do? Yes, I have one very specific thing that’s so niche. So at the beginning of the book, going back and forth between English and characters and Chinese characters quite often, and that kind of pattern repeats throughout the book periodically, but one of the reasons it doesn’t is if you want to have that mix of English and Chinese characters, you have to set the book language to Chinese within the settings on Lean Pub so you get, you know, the fonts are embedded correctly and everything. But that also has the side effect of it swaps pretty much all the locale, you know, the published website to then the table of contents and all the little blurbs that Lean Pub adds automatically that it’s all translated into Chinese. Yeah, so just to explain what John’s saying there, yeah, like a little bit more, yeah, no, that’s really interesting. So what Lean Pub has is we’re proud of the fact that we support many different languages, you know, you can write in plain text and write and publish books in all these different languages. But one thing we’ve also done is we’ve kind of localized the pages, but this, so for example, if you, many of the pages, and by the way, this is with the help of a lot of Lean Pub authors. So for example, you know, we only speak so many languages ourselves, right? But we set up, we basically did a Google translate version, a really ugly Google translate version of the book landing pages. So like, you know, it says leave instead of book in French or something like that, right? And then, and then we set up these GitHub, a GitHub repo with all the different language files in it so that people could like update, they could, they could basically make it better, the translations better. So what happened, so when we’re, we’re sort of, we were really proud of this, it was really good. But the way, if you set a book to be a language that has been localized on Lean Pub, so say you changed the language of your book to be Chinese, then your landing page on Lean Pub will be Chinese, in Chinese. And but, but so John’s got this sort of, you know, because there’s so many Chinese characters in his book, he sort of, it was better to just change the book language to be Chinese. But so I imagine that, but, but you didn’t, but it’s an actually an English language book. So did you, did you actually, and I’m curious, I don’t know the answer, but did you actually like create a separate book that’s in the set to the Chinese language in Lean Pub, that’s just not published and you use those files for your, which you set up a separate book in the upload writing mode. Okay, that, now I, now I understand what’s going on there. So then I would go through and I would do the previews with the self book, download all the files, then use a PDF editor to go back in there and relocalize all the content, make, change the, every Lean Pub book’s got that little, this book was published on Lean Pub, you can purchase it here and it’s got the little link, then you make sure to update all of those links to point to the actual book and then find all the little references that… Hey, oh my, oh, I know what you’re describing now. Okay, yeah, that’s, that’s really interesting. Yeah, because there are all these like when you, so the, the book, the book, in addition to the landing page being kind of regularized for the, like the webpage for the book on Lean Pub, there are, when we generate books, there are sort of typical kind of book content, things like a copyright message, for example, right? And that’s been, that’s been localized as well, but there’ll be links to like, you know, if you’ve, you know, buy this, basically buy this book here because ebook files can go anywhere, right? You know, and so you’ve actually have to go into a PDF editor and change the links to do that. Well, thanks very much for sharing that, that specific case. It’s I will make, I will make a note of it, definitely, that this, this is probably something like that because it’s like, what you’re doing kind of totally makes sense, right? So it might, might not be, it might be kind of rare that an author sort of is encountering that issue. It’s not just a proper kind of workaround, but a simple, just don’t localize my webpage or book tick box might be actually like a theme setting that we could set up that would hopefully resolve a lot of these issues. Yeah, that would have been lovely. Well, John, thank you very much for taking time out of your day to talk to me and talk to our audience. And thank you very much for using Leanpub as the platform in spite of, in spite of all the difficulty. Thanks very much for using Leanpub as the platform for your really great book, which I definitely recommend to anybody. I mean, even if you’re not a programmer like that, that beginning section is just, just amazing. Absolutely not a problem. It’s been fun. Thanks. And as always, thanks to all of you for listening to this episode of the Front Matter podcast. If you like what you heard, please rate and review it wherever you found it. And if you’d like to be a Leanpub author, please check out our website at leanpub.com. Thanks.
