Have you heard about H, T. M X? We've discussed at a time or two on the show, or back with another episode on H.
T. M X. This time, with a real world success story and lessons learned, we have china oconto on the toast. How SHE move from a react jingo APP to pure jingo with H T M X. This is hot bite on me. Epsom four hundred eighty four recorded october twenty nine th two thousand twenty four are you ready for your house.
please? You're listening to Michael Kennedy on top python to me, life important oregon. And this segment was made with python.
Welcome to you talk python omy a weekly pocket on python. This is your host, Michael Kennedy. Follow me on master on where I am at him Kennedy and follow the podcast using at talk python. Both accounts over at Foster on dot org in and keep up with the show and listen over nine years of episodes. Talk python, D F M.
If you want to be part of our life episodes, you can find the live streams over on youtube, subscribe to our youtube channel over at talk paths that firm slash youtube and get notified about upcoming shows. This episode is sponsored by posit. Connect from the makers of shiny public share and deploy all of your data projects that you're creating using pipon streaming dash shiny boat fast, A P I flash quarter reports dashboard and A P S.
POS. Connect supports all of them. Try posit connect for free by going to talk by them at a film flash posit P O S I T. And this episode brought you buy a blue host.
Do you need a website? Best get blue host their A I B or press site in minutes and there are built in tools, optimize your growth. Don't wait, visit hock by thon dot FM slash blue host. They get started. You know, welcome to talk ethon me.
Thanks so much.
Happy to be here. I'm happy to have you here. We've got an awesome topic, cute up, one that I just I don't know if i'll ever get tired to come back to this because i'm just such a thing and policy and get stuff done and not like let's see how many layers of of things we can py on and by that I mean, H T M X as a success story or going from a hope enterprise stuff, want to different muli multiple apps.
I was good friend, go back and talking to each other, but kind of be in separate as well. And switching the H T X. And you wrote up a really cool essay on this, and we're going to a dive into so and share your experience.
Pretty fantastic experience overall. I I was really surprised by H I. Mix when I came across at the first time because there are so many fashionable front end library and framework.
So when I heard about us like another one of those whenever and then I K, I W into a jane on a thing was twenty twenty two. And I saw talk from Christmas in the audience and that got me excited about IT. And that's that's kind of when my my whole story started, what I had been doing before was working with.
But so I had this team and we were boarding a thing and we had a react front end. So on the front, that's a Normal thing. Like if you want to like a modern front end application, you you would do something like react of you or one of the many competitions.
And then on the back end, we had jane, and I think that's like a fairly in Normal, fairly accepted way to do things or IT has been for a long time. But I think it's like I think it's a little faulty. I think that front web development has been a little bit of a complexity.
Death fire for the last little and like sometimes was using sometimes are really helpful. But life for some things, you need certain tools in the front end, I think. But yeah, I think things have been going in in the complexity for or direction for a long time. And hdm x solves a lot of problems.
But you think back, you know, think back to the j query days. How do you use j query? You included A C, or if your wild, you might download IT and include in your own static content, then you just started using IT, right? And just layers and layers have just been building.
And the java scrip pt of twenty twenty four area looks nothing like ten years ago, fifteen years ago. Java script. Yeah, I would say it's one of the more complicated programing environments compared to something like c plus plus, right? Because there are so many steps and there are so many implicit linkage and stuff.
there's a lot of dark magic under the hood. It's very hard to know what's going on. And I think like one of the chAllenges is that a lot of people used to get into web dive as a gateway drug to to programming like that.
They started with web and then brunch out from there. And now it's like this magic, we had box with so many layers, and I think it's sort of missed a lot of people up as a chAllenge to to get started in the way the people used to get started. And it's like the barrier to, I know entry level program is used to need to be here and now here.
And yeah, there's a lot of key things to the ecosystem as a whole. The gear, like all the old steps, all the magic things that happen, the hood and the fact ge have like tasks switch between completely different applications and completely different, like, ways of thinking. So for me, I always love jangle so good.
So with the thing that I was building, I went to jane because I needed to build a thing really, really fast. And so my efficiency was important, and then was like, I need a good friend and react was a clear choice at the time. But that means like switching, like for me to work on this thing, I need need to keep holding the jangle application and the react application in my head and how they talk. And it's not just react as like rex and sager and side of fix and acing china goodies and and then on the jangle side at all of that janes, I think much simpler to get your head around. And the act actually is a tRicky thing is definitely .
is a tRicky thing. And one thing I would just like to put out early before we get too much mail, this is not necessarily that I hate on java script. There are people in the node space, the super friends of H T, M X.
And I think what is not obvious about the benefits of ht x as we get into IT, talk about other things. You were just touching on them like you've got this react from. And IT has its own state.
IT also has its own capability, so which weren't in the client side. So I can't talk to file systems or the data abase IT can only talk to APP. On the other hand, you've got the jan APP, which probably is not talking to A P S, but talks the database, talks to you know the server levels, things.
And you've got to as you're working on this APP think, okay, I mean, this context that means no database, that means this context that means partly just database, right? And it's just you have these two world and if you could say, but I just right in one of them, yes, in the drivers that people might even pick, like I just want to stay in job. Gc, but always know you are always, at least you'll pick one of the styles of programing and not just constantly switched back.
And fourth, between these, you have browser capabilities. You have server capabilities. You have browser information like that is just not productive.
It's not the best, right? And so as much as you can avoid that and it'll see H T M X is too crazy about keeping IT in one place, right? So that's I think that's one of the big things that people should be.
We talk about what we talked t java script. I use IT a lot where it's needed. I think that is a fantastic tool in the tools. X that i'm on sides of you that it's just the complexity of of switching context all the time that slow you down. And it's like to keep in your head. And so like for me, when I was working on this application and needing switch context, told the time would like like you can just make a thing like you have to like, do the dance to make the thing and said .
of four different chained file watchers to do their things and step right.
So just like as a little bit of a like a slower than that you would like to be, there's like more tedium, then they should be nice if you could just like build the thing quickly in a simple way. And I just works and is beautiful and SHE makes kind of allows that along with other tools. yeah.
So for me, that context, watching was like a painful, painful thing. And for the team was working with as well. Like I had a bunch of junior on my team, and I was so hard to get them productive because I was like, okay, you are going to be productive on the man, but you, anna, be productive on the and then on the like.
That was complicated because of the, again, react redux, redux sag. So so they were all just like suffering. And then to put real features in the place.
you've got ta do a vertical slice, right? IT would hit most, if not all. Know you probably probably have to touch the react from end.
You probably need some new tiny bits of U I designs of C S S. And maybe some as step there. You know like then you're doing the side bets and then you're in a atabapo gration. And just like it's and .
yeah and for some people, not even reasonable to expect them to have all of those skills as into in skills and then it's like you have to make your team complicated. You have to have a back in team and they need to now great with each other and so like the takes resembles the team stack .
yeah that is a group of this later group of that little, you know, look, if you're a huge company, maybe that actually makes tons of sense. Maybe i'm not that what you but when you a small company that does not right when you building .
something and you do need to think about the team that's going be building at the skills right now, the skills that they're gonna a have in the future, the kills that you're gonna to pull into the team in the future. And so it's I don't know that makes sense to to do well in my context, that doesn't makes sense to to split up the team. If I had the tools to allow everybody to be in the same place from the beginning, that would be thanking .
fantastics. Let's talk a bit about H. T. X. So we said we've been talking about this, but I and sort of broad terms, but let's be a little bit specific.
And maybe you could tell us what is this ht. maxon? And why is IT? Why is IT not just a different flavor of reactor of you or something? And we could talk few examples.
The way I explain H T. M. Mix to myself is that I imagine looking at H T M L, H T L is with us.
It's going to be with us forever, not, but for a very long time. what? What if you like?
There many attempts to replace IT, and they were all bad.
Yeah, yeah. So it's it's probably going to stick around with the foreseeable future and is everywhere. And what if we could just augmented slightly so that I could do what we needed IT to do in the modern weight like we like, since H.
T, M, L invented like it's quite a simple tool, but now we need to do all this extra stuff because people expect all sorts of like interactivity in the user interfaces. They expect a nus workload and and things like that. And what if hm l could do that and IT can do that? And it's not actually that hard to make you do that.
You just need to add a few extra attributes. And so what H T M mix is as a really, really small java script library, and you just included as a scrip tech in your page and then it's there and it's available and it's installed just like the old the good old days of jay query. And yeah, you could just go back and through IT in A C.
D. N, if you wanted, could you? That's right. I don't really found from there.
You you just have these extra attributes on your H D M L tags to do different things. So for example, like so if you makes us a lot of different stuff, but a few were ted, like eighty twenty years, and look at the part of the most used, then basically the stuff you will use the most are like tying into events like click of even handles or what not.
And then when you you click on the thing, whatever, it'll send an a request to a back end and the back and response with an HTML fragment, and then you swap that fragment into your page somewhere. So if you were to look at the the ht max documentation, the hello world, that H T M max is a button and the buttons says has the attribute to ex post. So it's saying, like when you click on the button, then send a post request to A U R L that like four text so you can decide where like what H E D P method you using and where it's going and want to be enter you're time into.
And then when the response arrives, then you do something with that in the responses HTML. It's not a jahn response that they need to like turn into HTML. It's at playing old Normal HTML.
So too per simple to right. And then you you take that HTML and you put IT somewhere on the page, so maybe you swap the current button you just click with with the issue that was returned. Or maybe you take IT and you put IT, like at the end of another elements.
You can, you can a pain stuff. You can pre pain stuff. You can replace entire elements.
You can replace the internals of elements, and that little pattern is actually really, really powerful. And you can time into all sorts of different events. So is like interacting with individual elements, like a click or a form submission. You can say like on load, or like on scroll, or all sorts of different things. So so if it's yeah absolutely .
so one of the motivations, the curl person, but there is why should a and form only be able to make A T V request? Why should you only build a click and have click and submit events, trigger them right in all these things? Yeah so it's kind of like just extending some of these nh features like you can click a button but not an image in HTML to to all the pieces and then, like you said, exchanging a fragments of h tl, right? Like just instead of sending Jason back and then having the client side turn, just do on the server .
and stick IT where to go code as which is fantastic I S so it's a simple you're just so beside linder ing some HTML like we used to a long time ago. So IT feels IT feels very familiar to people who got into wave there a long time ago. The code itself is very, very easy to write. Like initially you might like spread your hair is unfamiliar, but give yourself a couple hours and they will start to feel familiar. It's got to love you to work in yeah.
I would also encourage people that want to get started with this and play with this. The examples that they have on the website are pretty comprehensive where if you call through other and know how many there are, maybe one year.
So a lot yeah.
there's a lot of them here. And then so if you go into each one of them, it'll show you basically some interesting things. So you will go to the first one. I click at IT.
IT says, here's a bitter static HTML like a label and a dive and then a button says, click to edit and all that has A H X get and IT says, edit this thing right? And when you go and click and there's little example the bottom, you click IT, that's all fun. But if you open up the bottom, there's like a little history of interactions and like, I don't know what you call IT, but like a web history that shows what's transferred.
So when you you click edit, here's what the response was. And IT shows that H, T, M L, which in itself as a new H X, has H X events. And then when IT saves that IT goes back to the static and to an and I think it's a really pretty easy way to get a sense what IT is. What do you think?
Yeah, I think so. I think so those examples are great. I think like one thing that I like to do is use H T mics and thing called alpine E J S together. So for me, h two makes is great for when the daughter needs to be passed back in both.
But like for something like this, I probably use something like alpine just to say like show and hide hide the form ah, it's also fantastic so you don't like needed, I suppose. But and that does save on like some back and fourth and IT does make things a little bit more like in one place, a little bit more like locality of behaviors, are you? So now we're looking at to L P, js.
Hello, world. And this is cool because it's also it's it's like H T mix. And then I just add a couple of extra attributes to your H G L tex. And the eighty twenty of this is that you can define variables. And those variables are like this, like a state, and they are defined within the scope of the place where you defined IT.
So if you, if you have like the egg started equals open false as a Jason object is like within the scope of the Steve, we have the same called open and its initial values false. And then you can do things like click on a button to to change open to true or total ago open so you can have a like show form, dw force. And then you can say, then you can like say, this is span extra equals open.
So we are only show that under certain circumstances. And you can also have like not open, or you can have like a speaks java script. So you can do some interesting things in .
there as well. Yes, this pretty interesting. This, yeah, I have not really used, but I do hear alpine H M X mention together frequently. They do have a similar vibe.
Yeah, yeah, they do. They do. Ah, i've enjoyed a lot. I I tend to just user for like small, simple things, but this simple things add up. And so for example, if you have menus that open and closed and things like that, you might you might want something .
like this yeah or handling like if you click this button and change the state to this and then that triggers to open a close sections and so on. You, yes, okay, interesting. This portion of top python omy is brought by posit, the makers of shiny, formally our studio, especially shining for python.
Let me ask you a question, are you building awesome things? Of course you are. You're developer, a data scientist. That's what we do. And you should check out posit connect.
Posit connect is a way for you to publish, share and deploy all the data products that you're building using python. People asked me the same question all the time. Michael, I have some cool data science project or no book that I built.
How do I share with my users? stay. holder. Teammate, I need to learn fast. P, I flaskful, maybe you will react.
Is now those are cool technologies, and i'm sure you benefit from them, but maybe stay focused on the data project. Let posit connect handle that side of things. With basic connect, you can rapidly and securely deploy the things you build in. Python, streamlet, dash, shiny, both fast P, I, flash, quarto ports, dash wards and A P, S. Posit connect supports all of them in position net, comes with all the belden vessels to satisfy IT and other enterprise requirements.
Make deployment the easiest step in your workflow with posit connect for the limited time, you can try posit connect for free for three months by going to talk by them at a family slash that's talk by thunder F M slash P O S I T the link is in your pocket player heroes think you did the team at posit for supporting talk by the n one example that I can give from over that stuff i'm working on, as i'm definitely H T. Max over talk about on training IT for courses. And I added this little tag.
Cloud is not quite a cloud, but a lot of different things you can score. So when you load this page, actually one of the things that really chAllenging is that has the Price in your local currency. So IT figures out where you are, people where you live in that currency.
The Prices of those things, you know, outside of the U. S. Change lot its super. Sometimes that can be really slow.
Figure out what the Price of every courses of their sales and you're in this country, and that applies in this way. So all these Prices are all calculate H T M X. So IT loads Normally without the Prices, then probably by the time you get to IT, the Prices already there automatically.
And then as you click around, you get this is all like as you click these little tags up here, you can even click on the h two x agency of three H T M X courses right with last year, and one that's just use IT. But all of this stuff, this is no job script page, at least not doing any that this is all just H, T, M, X rides. That's great.
Beautifully good, is so good. So i've certainly into IT work with that, but let's talk a bit about you're right, like let's talk about you then the rest time on your story 也好, 有 you started using ht max。 I mean, you've given us some of the the sense, but let's talk about the APP that you were building, right? You have a team of barely junior developers.
What's the story at the time was working for a nonprofit. Provider in south africa. And we used to have everybody on premises in this place called jackie's town, which is really a dodging place.
And IT was great. I was IT was a lot of fun that. But then code happened.
And so we had to figure how to support everybody remotely. And so but ton animals. So initially we like looked around that animates means learn of management system.
We had a whole other learners. We had, I think they're about one hundred and fifty at the time. And we needed to figure out like how to support them from home. We couldn't just be like come back next year because like possibly, we couldn't let them down. Mostly the funding model would not .
work in all sorts of things. So I was an insane it's kind Normalized in our history because we've moved passed IT about member that I was a disturb time.
Harror story is from from then I was like this as hard. I was like, super, super stressful. But in the end we ended up with the cool thing.
So like a lot of elements is exist. You can get one of the shelf. And there a lot like very clever textbooks that track las over time, that for us, we are training.
We are training software developers. And so we wanted something more than a textbook. We want to train professionals. And so we ended up building the thing from the learning perspective that was a cambden board. And then they could move cards around on the board to do different things like, I like start a project, and then we create a repo for their and make adam as a collaborator and protect the main branch and all of that good stuff. And then we could get them to review each .
other and could track all that. And the time .
they got to work, like they always very good over, is getting into their first job, and then then say, like, this is familiar, like we know how this and that .
was really i'm teaching people .
stuff here actually that's weird yeah exactly.
Yes.
to build this thing out and managed to keep training the people and that worked. And then IT was like, okay, this thing is pretty rough around the edges because we bolted in self offence. And like you should, I hope this works. So we needed to, to build more on IT. And we were hiring a lot of junior developers because we were training like very, very big and stuff.
So if you want to teach a person what return saint is, a, what a lop is, or anything like that, then you don't need a senior developer or like a senior elector, you need somebody who understands what this and what a Better return statement is. So he had, like all these juniors running around by helping out, and they needed to build stuff with their own growth as well, and their own, like if they don't build stuff and they then built. And I said, so so yeah, they were trying to get them productive on the stack.
But that was very, very difficult. So for me, yeah, i've been working on react applications and i've been working on jane. And so for me, IT was fine.
I could just like I could keep the whole thing in my head, but was I was just really tough for them. I think there is a little bit art to making a junior developer protective but like, I just was not figuring that out. So tried this for a while and then one day went to, uh, generic on U.
S. And I saw Christmas talk that spoke about H T M X. And I was just like, maybe this is worth a try. And as like, okay, just going to prove concept IT and see if I can build the weirdest part of our application in ht mix.
If you're asking, will IT work you like? This is the most crazy interactive bit. And if we can do this, the other stuff is easy, like switching from log into log out, like OK. Most most of .
our functionality was around the camp. Make some cards and make some columns and see if I can shift stuff around. And IT all worked out really well and wasn't IT wasn't super hard like I think one of the one of the chAllenges with H T M X is that is very easy to build like bigoted templates because you have flag the main template and all these partials and you need to, and then all these you are els that are pointing to the partial.
So so IT is possible to get yourself in a bit of tangle there. You need to arrange things nicely. But yeah, the process was so smooth that, as I can me try this.
So our application was the jane APP on the back, exposing a venture of aps with danger race frameworks. And so the idea was to just instead of like we we leave the react F S is and we're keep on working. Meanwhile, would we just build out to make perfectly Normal jangle views to do the H G M X stuff, and then we could move IT everybody over to the new, the new application.
So the new front ting was part of the original jangle APP. So we didn't rebuild absolutely everything. We just revolt that pot. And generally speaking of somebody suggest rebuilding a thing I worry like usually at a bad idea, usually at site yeah, or something. Yes, I have had to stop my self many times.
Do you know that? David Dylan? Video, yeah, check. I'll put a lake in here. It's got some, some amazing periods.
And once it's a six in a half minute parity of american pie, we're going to do the bigger right? And it's it's glorious. I'll link IT, but you should be afraid, right? This is something that like we're going to rewrite IT. And basically the song is here's the eight version, the eight different languages, the things previously been written in, you know it's with something is work in times even if it's not perfect. You yeah.
And he was also like rewriting IT in order to optimize for this team that was mostly genus. And so was like, is this like, is this me being crazy? Like there was a lot of, yes, I was very unsure.
So I tried everything out and IT and IT woke and IT was fun. And I was like, like straight forward to write for the six small thing. And then I was like, let me see how the team works on this so I gave them a bunch of little tasks to do as I implement us, try that. And everybody was productive.
How did they receive IT you when you introduce this idea to them? After they've been living in reacting redux and all these things.
they were happy with that. I think I force a little bit sceptical. But then once I started going, like I to get feedback from them, I make a point of getting feedback from them. And like h, mixing is way Better. So that's great.
I great. What's the trick?
Why does this work? So they went with experts, and then they succeeded, and they were happy and productive, which is great. And like even people who needed like a way too much of my support, like people who I had to like really sit worth and pair words like just to do like anything. There was having be able to do stuff that was meaningful. So I think for me, that's one of the things that so exciting about hg m mix.
It's like been working in training for so long and i've been like fighting the fight of like getting your developers job rety for so long that like I am aware of many problems and in the take education ecosystem, in the junior hiring ecosystem and like the fact that entry level positions are like too hard for people like is a problem. And now we have tools that make web developments approached the game. So like i'm singing this h year, make song because I think it's going to change the industry in in some pretty big ways. I think it's already making waves, but I like them to happen faster.
bigger yeah I think IT will as well. And you know I think the current wirework ks are really good and work really well with IT. But I wonder if I wouldn't surprised to see kind like fast APP I him along and to said pytheas is the essence of this thing. And pytheas changed a lot of date change, lot of date valuation. I don't wonder if some framework comes along just says H T M X is just ground up part of this thing that d be in to see what that looks like.
That would be interesting. I think they are definitely useful patterns and how to have to two different things. And people are building tools around IT, or tools that comply IT a useful way. So we spoke about alpine js. There's another thing called tempted partials from callin gibson and he, and that's really, really great.
Something like this is super needed to make the code go from, like, we can do this too. Oh, that's nice. Yeah yeah.
There's really unspeaking tivy IT, which is fantastic. Like this is one of my favorites .
at the moment. I have one that I created for ginger card games, ginger partials, and also a few million one. So and I I wasn't using for that that of course example this is actually and so I use the in partials, something like this is required you know carton does great work grame. Yeah for so you're using this as part of as part of your your site.
so not that original site only heard about this later on but now I use IT on everything ah on all of my H T M X things. I use this right .
tell you people what does do like what what do you need to parles instead of just geno temple.
It's just about organizing your code and away that's a bit cleaner. So if you think about how you would rain the templates, form your different views if you had like a main page and then that page had a bunch of H, T, M, X things happening that that made calls to the back end to different views. And those different views use different template.
Then even though all those temple's sociate with the same page kind of end up being a bit of amazing, you've got like a lot of different, like partial temperature. So you need A A cool naming convention for that, like is as a pages, as a template. And IT gets just a little bit a little bit messy and you need to switch between files all the time to see to see what things are associated with each other that say you've got to like five pages and each of them have life, five different partials associated with them.
Sudden it's a lot of files and you need to organize things somehow. So what jane attempt to partial start, this allows you to like like say, you've got like a main page file to do list, right? You could define a partial template t for a studio item within that same file.
And I won't get render until you say render this thing so you can like when you render your your tempted for the first. Time, you can just say, okay, if you over the studios items and useless partial in place and render the things and that's great. But then the other thing that you can do is that you can like in a view, you can choose to render a template, but you can choose to render a partial within their template as well.
And so let's say you've got like a little form that is add a new to do this item, then you timid that form, and then the the view would look for the partial with in the page that you care about a little of that. And so just end up being that like everything is tidy and together. And that makes sense because like the to do list items are only used in this page and those items are only used in that page.
One of the big chAllenges you quickly run into with this style, this H T M X partial exchange style, is when you show the page originally, you want just the server render version, which includes, let's say, your to do items. So you need the h team of the to im in the main page. But then when you make changes to IT, you need a little fragment that seem h tl to put a new to do item in there or to edit one or something.
And if you're not careful when you have multiple copies of those around and somebody updates the design for one and then IT doesn't update the the partial one that you wrote, which is a copy, it's it's not pretty. So finding a way for reuse like the jingle temple's partials, it's pretty required. I think if you're they saying it's like functions are required, the right code, you know it's it's pretty much like that.
right? I think so like you can get away with just using like lots of files and you could keep things dry with lot of files. But IT gets like a is very spatially here you put a lot of effort into organizing IT and in being IT organize because people make P S.
To do like all weird things. So yeah it's it's not good to have to like monitor that. Everything's organize. So would be Better if I was just that by default like the redefault havidol correct? Yeah.
yeah. So so grab, grab a file, a library for that. This portion of talk python me is brought. You buy blue host, got ideas, but no idea how to be a website. Get blue host with their A I design tool. You can quickly generate a high quality, fast loading or preside instantly once you need all the look, just hit inner and your side goes live.
It's really that simple and IT doesn't matter whether you're a hobby est entrepreneur or just starting your side, hustle blue host has you covered with built in marketing and e commerce tools to help you grow and scale your website for the long hall. Since you're listen to my show, you probably know python, but sometimes it's Better to focus on what you're creating rather than a custom web and add another month till you launch your idea. When you are great to blue host cloud, you get a hundred percent of time and twenty four seven support to ensure your site stays online through heavy traffic.
Bu host really makes building your dream website easier than ever. So what's stop in you? You've already got the vision make IT real visit talk python df m slash blue host right now and get started today and thank you to blue host for supporting the show. Let's talk about the before and after stack so before you talked about react, but tell us all the pieces involving what does that look like today?
So x us for just state management and then I X soa and most of her daughter hitching stuff so that I could handle like loading spinners and I could see like different like the status of different requests over the time and that kind of thing. Then I used material your eye, because my like frontline make pretty skills on on the strongest I wanted. I did a component library that would just work, and that was a chosen one.
Then on the back end was jangle jingle is framework is is very well known. Then I used to think called jangle guardian, because I needed object level permissions on the different model instances. So for example, so we had this campan board, and there were cards on this board that the people could move around, and different people would have different permission to different cards.
So we had things like one lonner would be working on a card and then they had asked for a view, and then another lonner should be able to review do that. But we wouldn't want to let just any owner look at their code because then that, that would cause a source of problem. So it's like, okay, this person has finish this project so we can add them as as a reviewer on this card. And so we needed to be like pretty particular about like which of our users could see different things that wasn't super straight or be straight forward and that this person can see this as like this person can for these reasons. Jane guardian is is radioed cool and then post Grace.
that's a cool library. You know, maybe people can find a nice use for that one like that as the one is new to me.
That's really nice. And you can even do things like when you d qua database and you say, fetch me all the cards, you can do something like fetch me all the cards that up ency. And so long as it's configured well, then I can do that sort of thing, which is very, very helpful.
Well, that's cool. So you don't have get all the cards and then yeah yeah who have all these different permissions and then like construct some query that comes up .
with IT yeah very nice, I love. And that plugs into D, R, F as well. So like your view set of having worked IT in a while, but the query that gets gets used when you access, like unless A P I in point, you can just supply that automatically as well.
So if you so you don't need to you don't need to build in that in that case either. So IT plugs into all of the things as a little bit. We had advertising, ate used to and then and then it's a fantastic.
Now i'm guessing much of the front stuff is problem.
The old application still exists, but it's not. But as like the H T, M, X based version would just be a drop in replacement. So I go to the euro instead kind .
of thing now that it's done. You said you used to work there, but you don't work there .
anymore as not anymore. So I guess .
it's recent enough to say of how's going now, right? Is being used people still strong as the technology?
I hope the little building on IT, there were some, some weird things happening at the organization before I left. So yeah, I expect I hope that everything is still very extremely. But I haven't .
been out in for a while. Let's give maybe a quick shot out to this video, this other geno kon talk. Kash wise, I need a sign in what you do premium on this a brother but this um real world SaaS product example from this guy in france, David gilliatt. Yeah that that one he said was a pretty good example of 那个 walk your case。 yes.
So then when I didn't see IT live, I saw over all of IT after the fact. But IT is like the ultimate H T M X demo. IT shows this guy really makes a dance. It's quite an amazing thing to see. So highly recommend that.
Yeah this guy, David, goes through and says, here's our complex SaaS product and let me walk to you to all the features. I feel like this would be a pretty one, your article as well.
And in this video, if if you want to say make a case to your team like, hey everyone, we consider doing this, i'm sure right off the back you'll get some folks so well, no, we have to use react because it's interactive this you interact with that part and IT changes that part. How are we going to possibly pull that off? It's like, you know, total possible.
Yeah I think the main arguments people have you again that are like scale. But that argument doesn't make super a lot of sense to me. I think that might become plexi scale that they're concerned about.
But I think things like to partly solve a lot of that problem and is can not do the things and this solves that problem. And then is IT really is that really so much Better for the team? Is the other question is just another fashion and is just another fed.
And that's something that sometimes hard to get across. I think that my article will do a good job of explaining why it's a good idea because I had to explain this to non take me stakeholders like, okay, I making this crazy decision and this is why. And so I think i've got the argument down.
Go read that article if you need to confirm someone. But I think the other thing to mention is the the full stack that I moved to in the end. Yeah, so H R makes you spoke about jangle.
We spoke about an alpine. We spoke about now if you are running a the react front into whatever, you would test the front end in a reactive way, like you would use tools that appropriate for that. So and so do you need to think about different ways to .
to test things would be like in or or are we talking in?
So I like play right quite a lot so you could do IT, but that would be like, I would include campaign played is very, very lovely to to work with. So it's like selenium only with all sorts of useful test good built in. So like you can get IT to take videos of your fail tests and got useful flags for like running your tastes on different browsers.
And you can like keep a trace of things. It's got interesting debugger staff LED in and you can just run IT with parties. And so our play rise is a big part of IT as well.
Yeah, play right is really nice. You know, one thing that just occurred to me around the testing in, if you've got a rich javascript front thing, you have to use something like play right or so where IT does a full browser request render of the page to interact with IT right? And you can also do that with H.
T max, but a lot of these web rame works, you can just in your your web test code, you can say, create like testing instance of my server, right? And then make you do this request and then see what the response came back without nearly the same overhead. And because this stuff all happens on the server, I guess you could just write A A unit test, 那个 web test against a fragment .
response, right? Yeah you so you you can write little different things like that. But since a lot of the interactivity is defined with in the asian mail, teg or unites won't won't be able to cover like if the you fix this and that happens and so that s why something like play write will come in .
yeah you still but maybe less play right is needed than otherwise is what I was thinking yeah definitely.
I think one of the the n patterns i've been is too much play when they are just like when to use player for everything. And then your tests are ridiculously slow and it's like you could have just need to taste view there's this function that you .
wanted to taste exactly you're not to experience right? Yeah play rise of cause definitely recommended yeah .
yeah yeah and present danger really smoothly as well so you don't actually so play right. IT spends up a browser and pointed at a running instance of an application in order to like test the things. But with jane and pie test, you can use a fixture to spin up like a text version of your of your application is kind of like run service as run there in your tests anyway. So integrate tes very, very smoothly yeah makes a very convenient.
Yeah absolutely. You know, one of the things you wrote a lot about, and you mention this, but you kind of flu past that a little bit, was, he said, am I crazy for optimizing junior developers, right? On the other hand, optimizing for simplicity, even if you're you're an expert, right? You don't just because you can do all the steps in all the complex doesn't mean you should constantly be doing those steps, right? Yeah definite. I think there's a case for optimizing .
for mpla ity here. What you I completely agree. I mean, if you can just like to take the the of developing your APP and then make IT like simple so you can focus on actually solving problems instead of wiring.
And suppose and I get a lot get a lot easier. So yeah, simplicity rocks. It's faster develop but things like like h he makes make your code way, way smaller.
Then then would others SE be so as not just simple, not just that it's less convoluted, there's also less of IT. And so there's less to test. There's less stuff can can hose bugs.
And most of the like front and interactive tivy is handled by another library that's really well tested. And you're just doing these are tiny little things that are easy to reason about. And so it's just a robust and clean. And so yeah, I do think it's worth to mazing for explicit I mean, IT made I made everybody more production of the juniors and me as well.
So top nuch constantly in pursuit of i've trying to keep things uh, simple. You know, if you go over to the H T M X, I had enough. You look at this section, but they've a know S A S A section which you know not quite a blog, but it's kind of blog, you know doesn't it's not not an ordered in or a category where when these are all nice, one thing is nice as he has.
On the other hand, here's a couple of examples why people didn't pick IT right? A whole section on complexity. Very, very bad, yes. But if you going so that is. And one of these super definitely applies.
You know, there's one, he says, each milf less a vacant for, like, the got this belka for the beginner like, oh, this is what I did. You get a little bit Better. You like all this complexity, all these layers, and then the sort of the ji night at the end. Yeah, eight similar back and I going to this path and you don't these two ends I don't actually I want to character as beginning to look like this character in this mean but no I think the him still speaks speaks so that somewhere right yeah .
yeah definitely differently yeah I think it's about um like when I when I teach people to code, when I teach people like the very basics of code and like something, I see you with very union developers as they try to show off and you like look how fancy I can make my code. I can do all of these complicated things and then you get them to think more like jedis. And so like don't waste in your moves like like how you wouldn't be filing about like this is kind of like playing H T M H T M A X does that for you just let you like moved directly towards your goal instead of having to like .
move around IT yeah it's a pretty good so I know that you do a lot of teaching maybe um said he worked for this local company that was into the combat airport on of you.
It's really cool working there as a for a long time, like five years in total, which is really long. And IT was super successful. So like since twenty, twenty, basically everybody who passed our courses ended up getting good jobs like very, very close to hundred percent of the people who pass.
And the people who didn't pass is like actually kind of small, like seven percent. And then there's lot of reasons for that. But yeah, I learn to time from being there that was in person.
But prego, yeah, I post over.
We actually got way, way Better because we had Better monitoring of individuals and we could do things like track people's cards on their board, moving around. And then from that you can say like, oh, this piece of contempt dog, like I would give us as educators a lot of feedback about what we were doing because if a person was stack and you're like, I explain the thing, great and then they will thank you.
Like, I didn't explain the thing, great. And so like the way that the teaching mechanism belt was, like really good for the students. But like if if we as educators didn't do a good job on something we would know about IT and we would have to fix IT.
And I think that pones the craft quite a lot. So learn to bench there. Now what i'm doing is I want to spread those skills in different ways.
So there's a whole lot to what i'm doing. One thing I want to do is help educators themselves. So i've got the thing called the guilt of educators because I always wanted to guilt.
And it's got a whole a lot of people in there who are like it's a free community, come enjoy. It's the events of education. Now to you talk about education with each other as a support structure because I think educators need support structures and it's a place to share, share learnings and share resources and opportunity.
He's and things like that. So it's still very new, but that's one part of IT. I want to offer a teacher training and things like that. But I also just .
like a we have junior developers. You have people gotta start somewhere. We're teaching and teach online is different.
All that. It's hard because they aren't really good resources for take educators. Like if you dig in to the literature on how learning works and how teaching works, it's like at all either very academic and so a little bit hard to pass.
And it's not like it's just not packaged well for the people who need IT. It's packaged in the wrong way. So I came across the code school recently who I was like how you handle your teacher training. And they're like we outsource to these guys and they showed me this other organization that does teacher training. And it's like I dug through their causes and one of their selling point points was like our teacher training causes are so very tired that they can be be used for frosts and physical al trainer sounds like yeah maybe not appropriate for for what we're up to here, but that's what people are relying. And that's like the base the industry has to offer.
So I think as a big hole in the education space and I want want to work to feel that yeah, so as part of what i'm doing in the other parties offering technical training, and this is partially because you're gonna call like practice the craft, partially because I want to create opportunities for educators to get good, partially because I like really like teaching the stuff. And so is all, all different reasons why H I, why are teaching? So right now, building adventures, small workshops that cover different skills and our family day stand alone.
And those are bigger blocks that will combine into something much bigger in the future. But for now, the first workshop that I have on offer is all about jangle in H. T.
mix. So as pretty exciting. And so IT talks about the stacks that we just spoke about. We didn't mention telle win, but telling in is great as well. That means that I can make front end of the reasonable so long as sorry.
you said you had used material U I previously to make IT goodish and tail. When is is what used in the version?
Really enjoy telling. yeah. So the idea with this little workshop, I ran IT as part of jangle on U. S. Recently and was super cool. I got, I don't know, there were way too many people there, which was great, but also I was a little problem as old as like, well, all of you, I was super cool and went really well.
The basic idea is that I want to show how to build A A crowd application using the stack of tools in a way that sets people up to be able to build their own stuff. And part of the workshop is, in fact, taking these tools and building your own thing. And so for people who are kind of early on their career, in their career, they can get some like the starts of decent portfolios, projects out of IT. People build all sorts of interesting things. So like the one person, but this their own personal lonner management system for, like their own knowing, which was really lovely, somebody built a music store, somebody else built a, what was that like a tour manager for for their famous so that they don't invite so much IT was great.
Yeah yeah.
And always jane, which he makes an l pjs and the others. And the other thing that's cool about this is it's it's a create application. I am teaching people all the the bitten pieces that the all the creed APP.
And like most of the internet is crowd applications, because it's for the audience. Like if anybody hasn't heard of crowds, create, read, update, delete s like that, most of what you need to do the internet. And so if you get the patterns down for like a simple cloud APP, then you can do some pretty hard, hard things with IT.
So yeah, this is so it's covering that the workshop is small. So it's like i'm keeping things very, very small and intentionally because I. Believe in the power of teachers.
And I want to make sure that everybody gets attention and then get to support that they need. And also because the people who tend to come to these kinds of things have different background, so some people need help here, some people need help there. And so you need to keep like a good ray show of teachers to students. So they are expert LED, high support, small group to one of their good stuff.
And you all link to. This works up Brown in the show that people want check IT out and it's at a time, but it's remote so people can attend from what you don't have to be new.
So you don't need to be africa and U. S. Eastern time because strAngely enough, most of the people who read my blog are in the U.
S. Like, so U. S. In south africa, and shifts and changes around. But part of the reason i'm marketing at to the us is because I want to be able to find training africans.
And like there, there just isn't as much money on the side of the world. So now I, anna, be able to make doing good in the take education space into something was financially sustainable. So that's why the U.
S, and that is why it's it's pricing dollars. Yeah so you guys can have A A discount code top python and I just call pass on. I think that was when .
I said put people in there .
so i'll get tips and off and then I also want to give like another ten percent to something so fucked. I wanted me to give ten percent from their discount code to um the D S F. So that's another code is out there.
So I was fantastic. I i've definitely benefit a lot from the dsf that's really, really cool. So this is your podcast. Should should the further ten percent go to the D, S F or the P S F or the junk on africa?
Africa fano that .
you say that? Yeah, let go. Con africa fakin. cool.
Speaking of a conference and talks and stuff kim out, the audience says, in a few weeks, a really good talking to gave at south africa icon a few weeks ago to be a lying power to the people who teach the people to code. So that's all right.
This title i've ahead for a talk ever. Thanks, kim. yeah.
So I did they talk at pike on south africa, and I also did IT as A A longer version of IT at jon U. S. As as a keynote. IT was super heavy that I got that IT is so cool. But yeah, just talks about the kind of how I think about teaching and how I, but how I think about teaching and the the mechanisms that we set up.
So so like, how does mostly based learning work and how do you actually get how do you engineer a education system so that six people up for success and not like either frustration or board? M, because there's a lot of a lot of things that are weird about the traditional systems. Yeah so talks about that.
But then IT also shares a bunch of lessons for individual educators underground. So so that I think that I was talking about earlier about how we as educated in the system, we're getting like a ton of fee back about our our own the quality of our work that gave us space to to figure out a lot of like how heating things. So it's kind of the eighty, twenty of what teachers or would be teachers should should focus on. Everything is powerful because a lot of like everybody, teachers, I mean, you teach people, teach new team members, like there's a lot of volunteer teachers as well, which is great. I mean.
this stuff like I think I think doing this kind of this presentation, this kind of teaching is that super cheap coat for leveling up your own skills?
Yeah finally, there is a thing called protege effect, which is a well steady thing. So when people say teaching is a great way to learn is they're not just being squshy like it's legit. It's really, really legit.
And this there are a lot of mechanisms behind IT. It's like one of the simple ones, as I teaching, is space repetition and recall, and that helps you remember your stuff. Another one is like people will ask you weird questions that you wouldn't expect.
And so you look at your own knowledge from a different direction and you build Better mental frameworks, moral best mental frameworks, like some people are good at building mental frameworks, and some people aren't as good. And a good way to like, get a person to build good mental frameworks is to ask them weird, to like left side questions about the stuff they know, and get them to look at things from different angles. So you get that from from the people you are teaching. It's yeah it's really .
is a beautiful thing yeah I really definitely rounds out your knowledge and you yeah deeply about some these ideas. You just maybe just over. Yeah, this probably A A good place to leave IT.
Let's I want to give about one more research required for people is just awesome. H, T, M, X, over and get up. I don't know if you poke around this, but it's got many, many examples of tools and libraries for ht max in python, but also on a ton of other languages.
So aren't there's a flash T M X tail in one and one for a sockets. So maybe h these are look pretty cool so people can check them out. But yeah, and I definitely want to recommend people check out your essay and now they can take these ideas and run with them.
Yeah, well, you know, thinks for being on the shower. It's been great to talk you. It's been great to talk to you too.
This is a lot of fun. I was bio. This has been another episode of talk python to me. Thank you to our sponsors. Be sure to check out they're offering IT really helps support the show.
This epsom is sponsored by posit connect from the makers of shiny publisher and deploy all of data projects that you're creating using pothon streaming, dash, shiny bk, fast P I, flash coral reports, dashboards and A P S. Posit connect supports all of them. Try posit connect for free by going to talk by them that a film flash posit B O S IT.
And this episode brought you buy a blue host. Do you need a website? Best get blue host their A I building or press site in minutes.
And there are built in tools optimized your growth. Don't wait, visit up by thon df m slash blue host. They gets started on level up your python.
We have one of the largest catalogues of python video courses over a tok python. Our content ranges from true beginners to deeply advanced topics like memory and asic. Best of all, there's not a subscription and sight check IT out for yourself at training that tuck by the out of them.
Be sure to subscribe to the show opening your favorite podcast, APP, and search for python. We should be right at the top. You can also find the itunes feed that slash itunes, the google play feed that slash play, and the direct R S feed that slash R S S on top.
Yh on of our live streaming, most of our recordings these days. If you want to be part of the show and have your comments featured on the air, be sure to subscribe to our youtube channel at talk python at a film slash youtube. This is your host, mico Kennedy.
Thanks so much for listening. I really appreciate IT. Now get out there and right some python code.