Welcome back to the show. Today we have with us Steve Bauman, who created a brand new package. It's called IMAP Engine, which is deep into the abyss of email, correct? (laughs) So tell us, if you don't mind, just tell us a little bit about IMAP Engine and how this got started, why you created it, and sort of the backstory on it. Yeah, yeah, so I have a side project right now, not product promoting, but it's called SpamWise, and it's an email-based service.
And so users can sign up and they can attach their email to my service, and I need to process incoming emails, and I had to do it through IMAP. And so I did what kind of any kind of PHP developer does when they have to access some kind of protocol or something that appears super complicated, and they go, "I wonder if there's a package for this," right?
And so I went searching, and I went and found what I thought was kind of the best at the time, and I installed that, and over, I started, after I started working with that, once you start working with this kind of stuff, you start noticing issues. You're like, "Oh, I bet I could fix this "or I could make this better in some certain ways," and once you start getting a handle of how it works and such.
And I started getting a lot of issues with the package that it shows, and I was kind of just, I ended up forking it and rebuilding it from scratch, and that ended up just being a nightmare because it was so convoluted and complicated. I'm like, "There's no way that it's this complicated. "It can't be true that it has to be this complicated "to work with this protocol. "There's no way." And so I was like, "You know what? "I'm gonna dive into the RFC.
"I'm gonna read the whole RFC "and see why this is so complicated." Because I was also, because when I was having these issues, I was like, "Okay, maybe there's another package "that I could use." I started looking around, I'm like, "I'm looking in the source of these packages." I'm like, "Why does this look so complicated?" I'm like, "I'm having a hard time understanding this." And so, and yeah, so I just dove into the RFC.
I'm like, "I'm gonna just take what I know "and try to just build from the ground up, "like connect with the stream, "read the stream character by character "and create a tokenizer and create a parser "and all this stuff." And eventually I got to a point, I'm like, "Oh, okay, it's not actually this difficult. "I've just been reading convoluted and difficult solutions "and I could just make it simpler." That's awesome. Speaking of reading the RFC, do you enjoy that?
Is that like a good hobby that you have on the side? That's like the driest read you'll ever find in your life. Yeah, no, I didn't like it at all. It was so painful and it was born out of the frustration.
I think a lot of other developers make feels that, you know, I'm like, "You know what, I'm gonna do this "and I'm gonna grind through it "'cause I don't want anyone, if I'm gonna do this, "I don't want anyone to have to do, "to read an RFC, this RFC again "and I want to never have to have "other developers experience this pain." And so that was a motivation for it. I'm like, "I'm gonna sit there, "I'm gonna do this every night "and I'm gonna finish it and it's gonna be beautiful."
(laughing) That's awesome. Well, I guess that's what relates me into, you know, what was your sort of the biggest challenges while reading this? Reading the RFC itself or was there any code thing that was like super hard or? Yeah, definitely the parser and the tokenizer the trickiest thing for sure.
I use a lot of back and forth, like rubber ducking with chat GPT and various models and stuff, just trying to figure out how to properly parse some pieces and what the proper format was of some responses and error codes and all that. It's definitely, it was tricky to nail down and it took two weeks to kind of really, two weeks every night just kind of really wrestling with it, nailing it, writing tests for it and keep iterating and iterating on it.
And I'm not typically one to write tokenizers and parsers. Like I rarely ever do that, that's super in the weeds, right? Like talking and listening to a stream back and forth is super like low level, which is something I don't do. And that was definitely the hardest. Gotcha. I guess one of the question that I see come, that I've seen come up a lot is how does this package differ from like the native PHP IMAP function, from back in the day?
I mean, that thing was probably created in the early 90s, I'm guessing. Yeah, yeah. And I probably would have leaned into using it if the methods or the extension was like available easily, but right now the IMAP extension doesn't get shipped with PHP by default. So you can't just toggle it on the INAML file. And so you have to actually like compile PHP with it, which is its own process. And it's all like complex and convoluted.
And the package that I was using at the time was just using a raw stream to do it. And its feature was like, oh, you don't have to have the extension for it. And I know the pain of having to like install the IMAP extension too, because I tried that at the very beginning of this product that I was building. And that was difficult.
And one of the other primary things that the IMAP extension doesn't have is called idle, which is basically it opens up a stream and keeps it open and receives notifications of when new emails come in. And so it basically allows you to just get alerted or pinged as soon as emails arrive, and you can immediately process them or do something with them. Versus if you're working with like POP3, like in other email protocol, you have to introduce polling.
So you're just constantly like asking the inbox if you have new emails every 15, 20 minutes or whatever interval. And so that was something that I had to have as well, which isn't possible in the PHP IMAP extension. Understood. Yeah, because I was trying to think, because I used to do a lot of email parsing back in the day and we would basically just had an old Chrome job. It would just log in through IMAP, check and see what's new, download it, and then go about its life.
So with this idle thing, you don't even have to do that anymore, right? It's more real time, I guess is the right wording. Yeah, exactly. It's real time. So you can basically just get to boot up some kind of daemon in the background. So you just register, like I just use a Laravel command that I registered as a daemon on Forge and it just sits there open, basically in its own loop and its own stream loop. And it just waits for new messages from the server.
Sweet. So, and then I assume that's like super beneficial for, you know, for, I guess for like speed or, you know. Yeah, yeah. Basically there's just lots of benefits to doing it this way versus the sort of the old school way. Yeah, yeah, absolutely. Because especially in the product that I built, and it's imperative that I act on the email as fast as possible. And if I was going to build it, I had to get at the emails as soon as they arrive, if possible.
And if I wasn't going to be able to get them like as they came in, then there's kind of no point. Because if I'm looking for spam or phishing or whatever emails and the user can interact with it before I actually scan it, then the product's kind of defunct. I can't really, I'm kind of not helping them much there. So, yeah. Yeah. So how about, let me go get my note here.
This, I think we touched on this, but we'll just clarify, does it support parsing and handling, you know, sort of the different character encodings or non-UTF8 emails or all the other mess that you might get out of a email inbox? Yeah, luckily that's handled by the package we're talking about Z-Bates and Mail, Mine parser. Mine Mail parser, it's whatever combination is.
But yeah, luckily, because that package saved me months of work and huge kiddos to him to build some solid package and out of the code there to make sure I was like, if I'm going to install this, I can't just have this package wrap some other library that I don't think is well built. I really want it to be like a complete solution that feels good and is also, if any packages that I was going to have to be reliant on that those also be well built.
And so I think he did a great job on that, luckily. Yeah, that's sweet. Yeah, that's, we were talking about it kind of before we started the show and that was a package. I was, had some familiarity with because it takes a lot of the headaches out of parsing. Like, you know, what you, like, I don't know if you've never parsed the emails before, you will get into the most random bugs and issues and just weird stuff that you've ever seen in your life. Yeah, oh my gosh. Yeah, holy moly.
I was so surprised at how complicated and deep in the weeds you have to get for email parsing. Email parsing is so complicated. I was like, I hope someone wrote something well for this. Yeah, yeah. And then everybody's like, well, you know, there's this SaaS app you can just install and use there. So I was like, well, I can't use that when we do self, you know, self installs, all this other stuff, but yeah. So then it was just, you know, parsing it yourself is not fun. Yeah, yeah.
And I think we need these solutions. If like, I feel like it's really common in the JavaScript land that you just kind of outsource these core functionalities in your auth and your queues and your email service and all this stuff. You outsource all these huge components that I feel like we should be able to have ourselves and PHP without having to sign up for the service and pay them to do it, you know.
And they've offered so much of that, you know, so much of that for free that you can just host locally, like on your machine or on your own server. Yeah, for sure. I think that's one of the benefits, you know, to a true full stack or a full framework, you know, it handles all this stuff and you technically don't have to go reach for third parties unless you just have some obscure use case or something.
But that does bring me, speaking of third party stuff, if didn't like Google and Microsoft and all those guys or Habs, didn't they try to prevent you from using IMAP and wanting you to go directly to API calls now or am I mistaken on my memory there? No, you're partially correct for sure. So you can actually connect to IMAP through like to, you can use IMAP to connect to Google and Microsoft inboxes if you use either OAuth or a app password.
App passwords is easier, but you kind of have to go deep in your weeds, deep in the weeds of the account to generate an app password. And usually they won't even advertise it, they do, you have to grab like a link from somewhere to navigate directly into your account to do it. Google, for example, doesn't even display that they have the functionality, you have to actually navigate directly to like an account manage link with app passwords on it and generate them there.
So really deep in the weeds, but getting access to connect over IMAP with Google in particular is extremely difficult. I had to do it, I had to go through CASA2 verification because if you connect through IMAP, you ultimately have full access to the mailbox, you can move emails around, you can delete them, basically full spread, right? You can do whatever you want. And they consider that as like a dangerous level of scope.
And so because they see it that way, you have to go through their intense security verification. And it took me four months of just back and forth, back and forth, getting like trying to figure out what they wanted next to make sure I was compliant. You also have to go through a third party, which does some pen testing on your live application, just to make sure that there's no obvious like polls and all that stuff, which made it very painful, very painful.
And now they even, they made the process even more difficult because they stopped offering it for free. So you have to pay 600 US dollars a year to keep your CASA2 verification just for the privilege of OAuth thing and connecting through IMAP. So now I basically, but luckily there's a workaround to OAuth and it's for Google and it's just generating an app password and you bypass all of that. So that's basically what I've had to instruct users to do on my platform is connect over app password.
Yeah, yeah, that makes sense. I seem to remember like a couple of years ago, we were using app passwords and then they were like, we're shutting that down and like you have to move to OAuth or move to something else by a certain day. And it was the same way, it was like you had to go through all the stuff and it was just the pain. But speaking of your product, I know you mentioned it's called Spamwise. So just tell me about that, like how does that work?
Yeah, so Spamwise isn't, it's Spamwise.ai and it's an AI based app. And it kind of came from me getting phish. I got phished once by a perfectly targeted email, a delivery notification email. I was expecting a delivery from a company about a year later and I got an email like the next day saying that, they tried to deliver and to attempt to re-delivery, we're gonna have to charge you fee.
And I've had to pay this kind of fee before and so I go through and I enter in all my information, my credit card and they had the whole peer later website all mocked out and stuff. And so luckily I thought that was weird as soon as I went through the payment. I'm like, that was kind of weird. I should probably check if, this is on my smartphone at the time. I was doing this all to my phone. And I was like, that was kind of weird.
Maybe I should check to see, like make sure, go back to the link and double check the domain name. And of course it was some weird domain name. I'm like, oh my gosh, why did this email, this obviously not peer later email land in my inbox? Like why did Microsoft, because I use Outlook. And I was like, why, this is such an obvious phishing email because the address wasn't even a peer later address, but at the time they didn't show the address in there.
So anyway, once they were short, that was, I was so upset that I got phished that I'm like, I'm gonna make sure that this never happens to me again. And anyone else who may have also happened to. And so I built the product that I tested first. I was like, I wonder if I could use Chagibiti to determine if an email is like phishing or not. And I was like, oh my gosh, this is so accurate. It's so, so accurate. It's like 95 to 99% accurate.
It's highly accurate in figuring out just IO3 header checks or by like contents or by the links and having like AI context to determine if something is spanned is super accurate. And so the issue is gone for me. Like I don't have that anymore because of the product. And that's why I built it. And I'm really glad that. It works. Yeah, that's like, yeah. Those are the best product ever is like, I had this problem and I'm just gonna fix it. And if people wanna buy it, good.
But it's gonna solve all my problems. Those always seem to be really good products. You mentioned Forge. I know it started off the same way. Taylor's like, this is annoying. Let's build something. And then it took off and now it's successful. But yeah, that's a perfect use case. Scratch your own itch kind of stuff. Absolutely. It is wild though. I use Gmail, like Google apps for your domain or whatever. And there'll still be occasional like PayPal ones that come in and I'm like, this is shady.
Like none of this makes sense. I'm like, I don't even know why it's in my inbox. And it's like, it's even like to the wrong person. But for some reason, I don't even know how. I need to go back and look through all the headers. But I end up just deleting them always. I'm like, oh no, not touching that. But yeah, it's crazy. Yeah, it's frustrating. So as far as like the IMAP stuff, at its core, since you're sort of using another package for the parsing and stuff like that.
So the IMAP side of it is you're just like logging into the mailbox, just checking, I guess folders that you've sent in your search string. And then just grabbing new emails that come out. Is that sort of, am I thinking of IMAP the right way as far as how in works technology was? Yeah, it's like a mailbox management API. So you can get all your mailbox folders. You can get all your messages in your folders. You can execute queries, like they support like their own query syntax.
So you can look for messages before or after a certain date that are not seen or flagged or that are within certain folders. And you can move them around, delete them, flag them, unflag them and kind of do whole management across, oh, you can also create draft emails as well through IMAP and then like later pick those up through SMTP and throw those, like send those away. So basically it's just like a complete solution to managing your mailbox. I like that.
And as far as like, I know since you're running SpamWise and you've created this, is the majority of people sticking with like Google and Outlook or Gmail and Outlook or is, or there are still quite a few people still running their own mail servers and stuff like that? Oh yeah, it's a good question. I've actually seen, it's pretty split. I've seen, like I don't have many users. I think I have probably like 12 subscribers right now. It's very, very small still.
I think I have a half our Outlook and Gmail and half our like custom, custom my mount servers for sure. That's interesting. I didn't think anybody would still be running their own mail servers. For sure, yeah. I was definitely, I'm definitely surprised there. Yeah, yeah, me too. Yeah, I'm surprised. I can't imagine running that. Cause that would be, that would certainly be an uphill painful battle to run your own mail server and keep the reputation alive to make sure they're at all deliverable.
Yeah, yeah. And I assume like you need to, I didn't even look at that on the read me. You gotta make sure, you know, if they're using IMAP engine package, then they should be using spam wise because what better way to make sure you're not pulling in spam than to run spam wise along with IMAP engine. Yeah, that's right. Gotta cross market this stuff, you know? Yeah, yeah. I'm always careful about kind of like cheapening the message a bit though.
I always, like I don't, and it is also like a scratch manage thing. Like it's so nice to not care if it's successful or not. I'm like, I don't care if it's successful. I'm gonna run it and maintain it regardless of anyone who uses it because I'm gonna use it every single day and it doesn't matter. And that's, I think also very freeing, right? You don't, you have to be like, I don't have my livelihood riding on this app. And also it gives confidence.
I would think to the users that, okay, this guy's gonna be running it whether or not it's successful. So it doesn't matter. Like it'll always be online essentially. Right. What are some other apps like the, as far as like the IMAP engine, like how do you see it being used or, I know it's pretty new, so you might not have a lot of data behind all this, but I guess kind of anything that you're building PHP with email, you might need this.
Is that sort of what you've been seeing or is it like more specific use cases? Yeah, I would think a lot. I would think of used a lot in intranet apps. I came from, like my career was kind of born in the enterprise world, building intranet apps for the federal government of Canada. I was a young kid just building in siloed servers, not having access to the internet, but we had all of our infrastructure internally.
And so I was using PHP at the time to kind of talk to all of our internal services and stuff without access to the internet. And so I think it would be, I think IMAP engine would be probably particularly useful in those circumstances where you do have maybe some in-house email servers or you are kind of processing incoming emails to act upon them for something, maybe like an IT help desk or something. And those kinds of apps, yeah. Yeah, that makes sense.
Yeah, in my past history, we had a help desk app and it was the same way we'd had a bunch of customers that would just run it completely offline. But then I can't remember how they would get around that, but they would check emails somehow and then it would, but basically you could run it all offline or all behind a firewall or something. So that makes perfect sense there. And not to sort of, well, I guess we should close out with this. Did we miss anything that you wanna talk about on the IMAP?
Not really. I think it- Cause I was gonna say, cause I would like to talk about your other package. You've got one called LDAP record, is that right? Yeah, yeah. Yeah, yeah. It was born out of the same kind of frustration, I think, as IMAP engine. And for those not familiar with LDAP, that is directory access for finding users or something like that. I'm thinking about it right there. Yeah, it's lightweight directory access protocol.
And it's again, another intranet focused protocol, like Microsoft Active Directory, which is basically a directory of users. Like if you are working in an enterprise and you have a user account, that's where it's gonna be stored. And so again, since I was building everything internally in a Microsoft based environment, we had everything connected to Microsoft Active Directory, which uses LDAP. And so we had like our printers connected to it.
We had all the computers, all the devices, all the phones, like mail servers, everything is connected to this Microsoft Active Directory to manage all the user accounts, all the permissions, who accesses what and everything. And so that's where that was born from, yeah. You're just deep into the woods of, stuff that most people, I guess most new developers probably haven't touched any of these technologies, have they? But the, which I'm trying to think of, where I was going with this.
So the LDAP record or LDAP directory isn't tied to email, but it can, you can use it as far as like pulling emails. Am I thinking, can't they kind of go together at some point? Yeah, absolutely. You can use it to like authenticate, like using those credentials to authenticate IMO, for example. Yeah, like that's where the username and password could be stored for the mailbox in IMO, for example, that like Microsoft Exchange server could be connected to. Yeah, and it is really deep in the weeds.
It was something that, that when I again was interacting with this protocol, I was like, there's gotta be something out there and the solution's out there that I tried. Again, I forked another package and I was like, why is this so difficult? It can't be this difficult. I'm like, there's gotta be a reason why it's this difficult. And so I started like playing with it and I rebuilt that package, but I had to eventually throw it all out.
And I started something from scratch and I've been maintaining it for probably the last three, three, four years now. It's matured quite a lot and it has actually like a quite significant amount of downloads. And I think there is an untapped market in PHP in the enterprise, in the intranet enterprise market where there's an unseen amount of people building their full apps internally that don't actually do anything on the outside. I mean, that's what I was doing for years.
I wasn't building anything public-facing. I had maybe, I was lucky to have maybe 10, 20 users of the enterprise kind of using my app. And I felt super proud of that at the time. That was a kind of a guess. I got like 10 people using this, this is sweet. That's awesome. But yeah, it was a really fun experience and it comes with trade-offs and benefits, but it was a lot of fun.
On a personal level, like how, since you're so big into like the Microsoft world, what made you go with PHP versus like ASP or ASP.net or whatever is over there now? That was, when I started it was PHP or ASP. Those were your two things or ColdFusion. So I'm just curious like why PHP and not ASP since you're so big into the Microsoft world? Yeah, that's actually a really good question.
When I went to community college, I was taught C-sharp and PHP and PHP at the time just seemed a lot easier and it was kind of easier because it wasn't C-sharp is very strictly typed and you have to compile everything. And it was a slow moving process. I think at the time I was, I gravitated to PHP because I could just change something and refresh the page and it something happened.
Because every time I did jump into C-sharp, change something, click the compile button and play and then it rebuilds and then you're able to access the new code. And it was such a hard process, a hard learning process, especially back then we didn't have any AI to tell you what you're doing wrong and what you're helping. It was like, I would spend hours trying to get something to compile.
And so when I didn't have to deal with that in PHP land, it was such a significant productivity boost where you just keep like change something, refresh, change something, refresh, change something, refresh, it just kind of spiraled from there. And I'm like, okay, there's definitely something. I think I can get something going here. All right, that's cool. Yeah, my history. So when I started, it was, I used front page and then-- What's that built on?
Microsoft, Microsoft front page from back in the day. Oh, right, right, right. And you didn't use, basically it was just a WYSIWYG and you would publish the web. And I was like, well, I wanted to build this little app. And it was, at the time I was like, I don't know any language. And, but the internet was like, you either do ASP or PHP. So I started doing ASP because I was already on a Windows machine. I was like, oh, this will be good.
But then I started looking at hosting and like the ASP hosting was like $20 a month. And I was like, well, that's dumb. I'm just gonna PHP. (laughing) That's how I found PHP and never left. Jesus is kind of like an economic decision at the time. Yes, it seemed to work out in the end. But-- How was your learning curve with PHP then? How did you make that migration? So I was actually working at a motorcycle dealership in sales and I was like, we need a way to show our inventory on the internet.
And that sort of got me, so I just wanted to build an app. I had no programming experience at all. And so back then you would just go visit forums, ask questions, read questions, try to help out. And that's how I kind of sort of picked up PHP and figured it all out. So this was way back. This was before CSS was around. It was everything was tables, spacer gifs, stuff like that. So it was way back. When did you personally discover like Laravel?
So for me, I went from just straight PHP and then moved into found code igniter and I was like, oh, this is really good. And then as soon as I found Laravel, which was like version, I don't know, it was super early and Laravel, because Laravel went from like version one to three within a matter of six months probably. So it was somewhere in that range is where I found Laravel and I just never left. I was like, this is great. I love it. I like the way Taylor, his ideas going forward.
So I just kind of stuck with it and the rest is history. So I guess that was what, 13 years ago, 12? I don't know, it feels longer, but it could be shorter though too. Were you in the version three round then when you started building with it or at four? Oh yeah. No, I was in the round when it didn't have anything but just the really simple route. Like, I forgot what, anyway, it was like sort of right after the first announcement of where Laravel came out.
It like didn't have models or controllers or anything back then. Oh, it was very verbal, okay. Yeah, so it was really early and really, really, really a long time ago. But yeah, it's a, yeah, back then it was IRC. We all just chatted on our IRC. So old, yeah. Back in the good old days. Yeah, yeah, no kidding. Well, to go back to what you're working on, any other projects and stuff that you've been working on recently or you have launched?
Yeah, well, I'm actually working on a product that I didn't think that I would ever really think I'd be able to build is I'm working on my own email client, actually, so my own desktop email client. And maybe I can ship it on a phone at some point because I've been an Outlook user for my whole life. Not really by choice, it's just kind of landed. And Outlook just when I was a kid and I just have used it for my whole life and stuff.
But I've been kind of getting a little bit upset with the recent changes with Outlook. And so I'm like, I wonder now that I've built my own engine for connecting to IMAP, I wonder if I could build my own email client that I would love to use. And maybe others would love to use. That is just super simple, it's just emails and no AI nonsense, no trash all over.
Because I think all these email clients, the same with Gmail and they become so heavy and convoluted with features that you don't want or need. It's like, I just want my inbox, my folders, and my email with a basic like markdown editor if possible. And that's it, like I don't need anything else other than that. So I'm wanting to, I'm right now building, using native PHP actually, Simon's native PHP, I'm building on top of. So I'm gonna see if I can make it happen.
I was gonna, that was actually gonna be my next question, is what you're building it on. So native PHP seems like a perfect pairing for that. Yeah. And yeah, it's funny, like every year, I guess email clients are sort of like to-do apps. Like every year I go searching for a new email app and nothing is like perfect. It's like, surely something out there is perfect, but it's like, I've yet to find it yet. So I think there's always a market for email apps and to-do apps.
Yeah, yeah, like there's always something wrong about it or the company you download it from is pushing one kind of service or another, or they want you to pay a subscription or something. And it's like, can I just get like an email app that just does email and that's it? Like just super bare bones and a clean interface, that's all I need and that's all I want. And all these companies are just trying to add all these services on and especially AI, right?
Like the AI craze, everyone is trying to get them at AI craze to slap services in your email. And I don't want any of that. I want like the spam protection service that I'm using. Like I want just the emails filtered out that I shouldn't see, but when it comes to actually like looking at my email, interacting with my email, sending emails, replying, I want that to be a really clean and bare bones experience where there's no nonsense, you know?
Yes, speaking of AI, the best use case, I think I've seen in an email is it's through the search and you can be like, you know, what meetings do I have tomorrow? And it'll go through all your emails and be like, these are, you know, these are things that might be coming up due tomorrow, things like that, which is kind of neat, especially when you have it like talk to somebody in a while.
It's like, when's the last time I talked to, you know, John, and it'll just pop up and be like, here's all the John's you've talked to recently. Things like that I found kind of interesting. Interesting, Abhiu, is there an email client right now or email service that does that for you? Yeah, it's, speaking of subscriptions, it's superhuman, but it does all that with its AI integration, but it does a lot more to that. That's really the only use case that I've actually enjoyed for the AI.
The rest of it's just like more annoyance, you know, where it tries to rewrite your, you know, it tries to be like a Grammarly and like rewrite how you're writing and stuff like that. Exactly. And I hate all that. Oh my gosh, yeah. Just let me write in my natural tone. Yeah, and you know, that's so funny you say that because the whole issue I have with Outlook and why I'm building this email client now is because Outlook recently introduced CoPilot in their writing experience.
And so as you type, it shows what they think you want to say after you're typing. Oh yeah, yes. Kind of like in an editor in a way, but in editor it helps more. It's like I don't need help to write an email, like stop it and I can't disable it. And so now I'm building my own email client so that no one can mess with my email experience. That's great. That's the new age of clipping, right? You know. Yeah, yeah. Please stop. Please let me know. That's wild though, yeah.
That's probably my biggest annoyance with AI is the things like that. I know Google, like Gmail wants to do that too. I don't know if you, well, since you use Outlook, you probably don't use Gmail. But as you write in the Gmail interface, it tries to auto-complete and do all this stuff. And it's the same way, it just, to me that gets on my nerves.
And the other one that gets on my nerves is actually Grammarly, you know, because I write a lot of articles for liberal news, so I use Grammarly to try to help me fix the spelling mistakes and commas and all that other stuff. But now it's like, well, you should just rewrite this whole sentence. And then they like, it loses context. It's like, it just don't even sound like something I would write in the first place. And that part's very annoying with the AI. Yeah, yeah, 100%.
And I think I've gotten to the point. There's a lot of AI tools right now that really are trying to not get you to write things, even though they should be, like things that should be personal and authentic. And I think email and text messages and posts on social media, these are really like services that you should be posting things that are authentic and stuff that you would write.
And these services are trying to get, like trying to shovel or pigeonhole themselves in and be like, no, it's okay. Like we'll thank for you, we'll write for you. And say, I don't want that. I'm like, I'm okay with like code kind of being pushed in and I can touch it up and change it and everything.
But when it comes to those personal services that require authenticity, I'd rather be okay with making the mistake of like grammar mistakes and stuff and showing that nowadays, especially nowadays, because all the AI slop that we're seeing and Twitter and Facebook and all these posts, right? Everyone's using AI to write stuff. Yeah, yeah, that's very true. It's almost like mistakes are now more authentic and it makes you feel, makes it more human than perfect writing.
Exactly, which is such a weird circle of events. Yeah, well, even the kids, like I've got two kids in high school now and when they do their reports, if they don't make any mistakes then the teachers thinks they're cheating. So it's like, there's this whole like weird dynamic going on where they can't trust anything anymore unless there's mistakes in it. It's like, what? Gosh, I wonder what the experience of elementary school and high school would be right now with AI, that'd be interesting.
And your kids are loving it. Yeah, I remember now this probably ages me. So I took typewriting in high school and the guy that sat beside me, of course we were on like, you know, 1992 Windows machines but he taught me how to copy and paste. And I was like, cause you know, you'd have to write the same line like four times and that was like, oh, this is the future, this is the best thing ever. And now it's just like AI can just do everything. Oh my gosh, that's crazy.
You have such a nice frame of reference though, right? But it's so interesting because, you know, you would think that you would show anyone, you know, from that distance of time, if you transported them to now, their mind would be absolutely shattered. They're like, how is this possible? This is like a machine God we're speaking with right now. But because it's been such a gradual increase of intelligence, we're kind of warmed into it, you know, gradually warmed into it.
And so it's not as shocking as it should be but it is actually so shocking to where we are right now. The intelligence is actually wild. Yeah, well, that sort of reminds me too. I know we're getting so kind of off the subject but when I first started, I really struggled on like comprehending you had a web server, you had a database server, and then you had the browser and how those all pieces fit together.
Cause like I could not comprehend this database thing and how we connect to it and talk to it and all this. And then all of a sudden one day it clicked and it's like, well, I was sort of an idiot back then, you know, but now it's just like common knowledge that everybody knows. It's like, oh yeah, it's basics. But we didn't have video tutorials back then either. You know, it was just what you could find. Yeah, I mean, yeah, that was so new.
I mean, MVC, the MVC pattern was super, super new at that time for sure. And figuring out how to do that properly and make it feel right was very difficult. You know, cause when I, I'm sure you remember this one when PHP first got around, everyone was kind of, you'd have a form and you'd inject PHP tags at the top of a form to like handle the form submission in its own page. And that would also like execute like a SQL query to the backend database and stuff. And it was so ugly and it was weird.
And everyone was trying to figure out how does this work? How do we make this work? Yeah, well, I remember like PHP didn't even have classes, you know, back, I want to say PHP four days or, you know. Yeah, that's right. It was only functions. You could only write functions. It's crazy just how far we've came in the last 20 years, you know, I guess 24 years, cause this would have been early night or late nineties, early 2000s when I was around. But yeah, it's just, that part's crazy.
Just thinking about it. Yeah, not having classes, that would be wild. I've never had PHP without that functionality. So you were there for the glory days. I mean, I'm thinking they didn't, I mean, nobody used them. I think you're right, yeah. If they did have classes, I don't remember ever seeing a class until like PHP five, but I could be totally, totally misremembering this stuff. You know, I am getting old now. I'm quite forgetful.
But I don't want to do this all day, you know, I don't want to keep you from family life and other life, but anything else to work on that we miss that you want to bring up or people to check out? Well, I wouldn't like to check out iMap Engine. Just take a look and if they're interested in viewing how it works, or if they're thinking about building a project with it, it'd be nice to give it a start if you're interested and take a look and all the other open source work that I have.
I think they might find things that are useful they could build with. And I really tried really hard. I tried really hard in all my open source stuff to make sure that the developer experiences is top tier to what my own standards. I love that. I love that. Well, I want to say thank you again for coming on the show and talking about all this very nerdy email stuff and active record and all the fun things. I can talk about it for days. I'm so invested.
Ask me anything about the RFC and I'll tell you. (laughing) That's great. Oh, that's fun. Well, Steve, I want to thank you again for coming on and everybody I'll have all the links that we talked about in the show notes and we'll have a post on Laravel News dedicated to all this and everything. So thanks for tuning in and until next time. Thank you so much.
