3D Files with Wagtail
Published July 19, 2024
This video features Wagtail Team at Wagtail Space US 2024 in Philadelphia, Pennsylvania, USA.
Lightning Talk Topics:
Wagtail and Sustainaiblity at a Library
Pages of Our Lives: A moving Wagtail story
Lost and Found in Translation, or: the Babelfish is Impossible
I LOVE PHILLY!
Quirks of QWERTY
No, you can’t change the color. What you want is wrong.
Stopping Spam!
💻 Wagtail is the easiest open-source Python CMS to use:
Install the demo and start building your first site in 10 minutes: https://wagtail.org/get-started
📹 Related Videos To Watch Next:
â–¶ Quick Video Tour of Wagtail CMS 6.0 https://www.youtube.com/watch?v=_Vg_lPMipcQ
â–¶ The Latest on Wagtail AI https://www.youtube.com/watch?v=4zfs1u4Vy5Y
▶ What’s New in Wagtail CMS 6.0 https://www.youtube.com/watch?v=2AxLFyOFjQo
Wagtail future proofs your CMS system, as it’s open source, continuously updated and built on Python, one of the most popular global programming languages, used widely in machine learning and big data. So you’re always ahead of the curve when it comes to CMS platforms.
Wagtail is the #1 choice for accessibility, is scalable and most importantly, secure.
👉 Get started with a FREE Wagtail CMS TRIAL: https://wagtail.org/get-started
and see how easy it is to build a website that works for you.
📊 Read why Google, NASA, and the British NHS, are powering their digital estates with Wagtail: https://wagtail.org/about-wagtail/
🎥 More Wagtail Videos: https://www.youtube.com/watch?v=cne2kxemMAQ&list=PLfwZ-fob20cPvSQ_v1hkjto8BAPN21tLJ
📣 Follow us on social:
#WagtailCMS #Django #WagtailSpace
The speakers described how an academic library has relied on Wagtail for eight years because its flexibility supported changing templates and data-driven content without creating unsustainable maintenance costs. Other talks covered practical Wagtail work—bulk-moving pages during an information-architecture change and limiting page-level styling to vetted themes—as well as the interpretive nature of translation, unusual places to visit in Philadelphia, ergonomic keyboard layouts, and Django techniques for reducing spam. Across the technical talks, the speakers emphasized maintainability and context: reusable tools and guardrails can help, but solutions should fit real content, users, and organizational needs.
Summarised automatically from the transcript.
Automatically transcribed, so expect mistakes in names and technical terms.
Speaker 1: Or you don't have anything else to do. Okay, it's perfect.
Speaker 2: All right, welcome back everyone. We are gonna get started with lightning talks. We have uh a few talks here and we're gonna just fly through them. So first up is David. talking about Wagtail and sustainability at a library. Take it away.
Speaker 1: Thank you. Can you hear me? So I work for uh a large uh academic library and I was I was told that we uh are one of the the longer running black tail sites that we have uh we also uh like the earlier uh presenters have have run it for about eight years now. So this talk is not really a specific how-to or cool thing, but more just reflections on what has been our experience, what has been the value of using Wagtail for us over that time. I'm also not a developer, I'm a librarian, and but I do do the web management for the organization. So that's the perspective I'm speaking from. And we have a small development team at the library.
Speaker 1: We have a designer or developer and sometimes a UX person. And a lot of my job is working on thinking about the sustainability of the applications that we're running. We have a fairly complex and large website. We have to support many different user flows and use cases within our sites. So I was going to talk about some of those use cases, but I'm going to insert an anecdote here that I think is marginally relevant. And I can't, I couldn't resist this after hearing the talk from the consumer protection folks, like raw HTML, and then the validation talk. So an example of a task or an issue we dealt with once,
Speaker 1: I got a ticket submitted from one of our catalogers that um a particular page for a book in our catalog was throwing an error consistently. And I went to this page and saw a JavaScript warning saying median median group of bitnik. um with an exclamation point. And I looked at the book and it turned out the the title was actually the title of the book was left angle bracket script, right angle bracket alert. And this was a published work. So it turned out that this book had been created by a Serbian and German digital art collective, and they included functioning JavaScript in the book title.
Speaker 1: uh which we sanitized in many cases, but not in this particular case. So despite this being relatively benign code, we made sure after that to always, you know, escape. uh you know HTML and it was in the title field of the book. I later checked out Amazon uh displayed this book title and I saw that they had uh deleted the angle brackets entirely from the title Cowards.
Speaker 3: Yes.
Speaker 1: So we maintain a number of different applications within the library, and I need to think about how to maximize the impact of our developer time. And when we add a new application, we need to think about it as part of our overall ecosystem. What care and feeding will it take? in terms of security, accessibility, general maintenance, who will be creating the content for that application. And all of this can really add up for some of our applications have managed to generate technical debt at an astounding rate for us and have really impacted our capacity to take on other work for the library. So when we migrated our main site to Wagtail, it was July of 2016, so almost exactly eight years ago now.
Speaker 1: And last night I was looking over our comparison spreadsheet. as we decided what CMS to go to. And we looked at, of course, Drupal and WordPress, also Concrete 5, ModX, Expression Engine And I won't say which one our lead developer said almost made him throw up. But we really like the flexibility and extensibility of Web till we knew our users, our authors were going to ask us to change the templates to modify and adapt the templates for different purposes. And we really like that we could use Ragtail for that um you know pretty much as it was without accruing a lot of extra debt to maintain those different templates. We were able to make much of our site a lot more data-driven after that migration
Speaker 1: and created page types for our staff, our collections, exhibits, our library spaces. and to create uh snippets for academic subjects and disciplines to provide through lines to our content. So we're currently looking at our first major migration since then, eight years later. And in that intervening eight years, we've swapped out a ton of stuff from our overall technology and kind of productivity stack. We're using a different authentication platform, different prototyping tools, project management tools, and so on. But we really have no serious thoughts about migrating away from from Wagtail at this point. It's hard to know when you're assessing it what the sustainability of that is going to be.
Speaker 1: and what kind of footprint it's going to take. And sometimes that's really only visible in hindsight. But now that we have those eight years of fine hindsight, it's a really good feeling to go into this redesign. knowing that our CMS has this history of sustainability. So I want to thank Torchbox and the Wagtail developers. So thank you.
Speaker 2: Thank you, David. Next up we have Eric Okay. So all you have to do is plug in. Yeah, it should give me a lot of such a screen. So we can uh Join the Zoom and thanks for yeah, just share a screen.
Speaker 3: Spoilers
Speaker 2: Okay. Welcome Eric about uh pages of our lives, a moving wagtail story.
Speaker 3: Okay. Um Or think about this settle. So I'm gonna talk while I pull up my gist that I just closed. I just was inspired to do this talk uh just kind of talking to other people here and just kind of I I think you know I was inspired by Tom's talk too about like making uh Wagtail more accessible for new folks and I feel like There's also this sort of like mid-level rubber meets the road like tasks that all of us who are familiar with Wagtail end up having to do on a project sooner or later.
Speaker 3: My inspiration here was uh from the old soap opera days of our lives. Uh I think we've all been through a lot of dramatic situations, um like Sands Through the Hourglass, so are the pages of our lives And in this story, you know, we ha uh for where I work, we needed to make some changes to our information architecture. We actually had like a completely flat uh page structure. And so there was this discussion around improving site navigation and we realized you know having some sort of hierarchy would be good. And so at some point in that project I was given this spreadsheet. uh that our product team had created. Um and you know this is kind of the part that we're pretty sure we won't be replaced by AI yet, which is like turn this into something that
Speaker 3: you know, will be on the website. Um and uh you know, so in the process of drilling that down, you know, when you have a lot of different pages on the website, you kind of need to like figure out what structure to put that into. I eventually created a very similar spreadsheet kind of based off of this. This is a series of columns that extend, you know, kind of basically categorizing all the cases where we wanted to both move a page but also change the page title but maybe update the page slug. You know, that was a for our case it was about like 80 or 90 pages. So it's you know just in the threshold of that classic uh SKCD comic about like, you know, if you write something to automate this yourself, how long will that take? I of course decided to write something automated
Speaker 3: myself because that is why I became a programmer. I like to do stuff that seems boring and tedious really rapidly and at scale. And so I kind of came up with the structure as a both a way of like checking the work and the plan that we were trying to do. But once I had done this, I started thinking like, okay, like I know Other people in the Wagtail community have probably done this before. We've all wanted to move a bunch of pages before. And in fact, I started looking around. You know, anytime you have a use case that you feel like other people might have done before, there might be previous solutions. And I found something in the Wagtail code base um that uh I think is about as old as Wagtail itself, written by old Oak Ass man. And is documented to bulk move pages. You know, this is a
Speaker 3: like this is a beautiful function. I love it so much. It's like 30 lines of code. But unfortunately it it's a bit limited in that like for one it relies on page IDs, which you know we have multiple different environments that we're on, the page IDs might be different, and the page slug is kind of what everybody knows. So I eventually wrote a command that is, you know, not too crazy, not too huge, but I just love the fact that like the doc string itself is longer than the function that Matt wrote. And um I've you know I have the gist as well, but I'm not sure I have much time to talk through it in detail. But in general, the kind of like workflow that I came up with is I think something that we've had to do a lot. And you know, one of my questions is kind of like
Speaker 3: uh especially if with packages talk is like where does something like this exist where like you know clearly I've made opinions about the names of these columns that someone else might disagree with. Do I want to write code to make that dynamic? Like probably not. But you know, the general idea here is you have you know, current and pr new and previous stuff. At some point one of my coworkers asked the ability to undo changes if you wanted to do If you regretted the changes that you made, so I wrote some code that adds the new columns that can then be read from to undo your changes and play them backwards, which that was a fun little bit of thing that I I don't think any of us have used yet. And um I don't know how much time do I have left? 30 seconds.
Speaker 3: 30 seconds. Okay. See that's what I thought. So um yeah, so kind of my question, I'm happy to talk to people like this is not the only management command I've run in our code base to like ostensibly save us time. And there is kind of this middle ground of like I'm not sure when something like this could be generalized a little bit more to be used by other people or whether it's a strategy that is useful to share like on the blog. or whether it can be packaged, you know, with a little bit of help from others, you know, something that might belong in Bagtail Core as a feature of like, hey, you want to, you know, you're migrating content. I think all of us who work in this industry know that we do that often. And so there's probably ways that That could be shared, but feel free to talk to me about it if if you're curious.
Speaker 2: Thank you, Eric. Next up we have Chuck.
Speaker 3: Yes. All right. So this talk is called Lost and Found a Translation or The Babblefish is Impossible. I hope you know what the Babblefish is because I didn't have to include that explanation in this time. But it'll become clear enough from context, I think.
Speaker 4: Back in October 2015, my wife and I honeymooned in Cancun, and what we did was nothing. This was by choice. We did a do stuff honeymoon vacation in 2016. During some of the nothing that we were doing, we actually re-watched the first season of Arrested Development on my laptop. I should mention that as of 2015 it was still pretty funny, but even at that point had not aged especially well, so keep that in mind. But anyway, watched it on Netflix Weird thing about Netflix, at least circa 2015, is that it hard enforces language based on your geographical location. So because we were in Cancun, we only had two options. We had to either watch dubbed in Spanish or in English with Spanish subtitles. We speak English, so we chose the latter. For those who don't know, in season one
Speaker 4: there's a recurring joke uh that involves uh two characters who are brothers and don't understand what the word hermano means in Spanish. means brother. Um so they spent a lot of time trying to discover the identity of this secret man not realizing that it is one of them that is being talked about. Uh now these two are they speak English and also they're not smart So if you were a Spanish-speaking viewer watching this, I think you'd have enough pieces to gather it from context. But if you are just reading the Spanish subtitles, the Spanish text, there's no joke here. The joke is obliterated in the pursuit of an extremely literal translation. Now, you if you wanted to convey the intent of the joke, which is a misunderstanding, you'd probably need to omit the word armado entirely and come up with a different word that works. as a play on translation in the other direction.
Speaker 4: Alternatively, you could keep the original and just add a lot of explanation as to why it's a joke, which would work about as well as explaining a joke ever works. Which is to say it might make sense, but it's not going to be funny. A translation of both meaning and intent here is basically impossible. It's not going to be one-to-one. You lose something even if it's just the laugh. I was going to talk next about Beowulf. uh which I'm sure everybody read at some point, and the ways its very first word has been translated over the years, including the very fun choices in the 2021 translation by Marina Devana Headley. But in the interest of time, I'm going to take a cue from Yabashige here and skip all that nonsense. We're going to talk instead about Shogun, which is an FX show from earlier this year that is an adaptation of a novel set in 1600s
Speaker 4: Japan. One of Shogun's main characters is John Blackthorne. He's an English Protestant and he's a ship's pilot who's been stranded in Japan, where he earns the nickname Anjin, which is the Japanese word for pilot. Blackthorne interacts with some of the power players in Japan's ruling class during a time of political upheaval, but he does not speak Japanese. He didn't even know the culture existed until he crashed her. Um his eventual official translator on the show is Marico, who is fluent in Portuguese thanks to her training by Catholic monks. Interestingly, there's a bit of double translation the show is doing here that you might not notice if you're not paying attention, which is that when Blackthorn is speaking and being translated into Japanese We hear English, but he's actually speaking Portuguese, because that's the language that Martico then knows to translate into Japanese, which we then see
Speaker 4: translated using subtitles. Now if you recognize this screenshot without having seen much of the show Shogun, that's probably because Mariko notoriously almost never translates what Blackthorn is actually saying and to the point that it generated a whole series of memes as the show was airing. Um the joke of these usually revolves around Blackthorn spitting out a bunch of rambling, angry bluster and Martigo cutting right to the point of what it is he's trying to say What I love about this is that Shogun and these memes is actually perfectly capturing a crucial aspect of translation. Which is that literal meaning is always secondary to intended meaning, connotation, and cultural context. Like if you think about this, first of all, Japanese is so fundamentally different. as a language from English or Portuguese, then a one-to-one
Speaker 4: translation is essentially impossible. On top of that, Mariko is translating a foreigner who has no grasp on feudal Japan's customs. traditions or niceties, and she's doing so for Japanese nobles and lords who against whom offense could mean death Consider also that even if the lords and masters don't speak the language that the blackbird is speaking, they can see him. They can hear his tone of voice, they can see his anger or his impatience, and they can hear how long he's taking to talk. Compared with what Monaco says then says to them, as what he said. Her translation achieves the practical purpose of communication, but it conveys a lot more by disregarding fidelity to original word choice or syntax. And this is what translation actually always is. It's not the babblefish. It is not a machine-like input-output process that reproduces identical statements in any language.
Speaker 4: That's impossible. Translation is the distillation and interpretation into a new context for new audiences. Translation adds meaning to the original text, often necessarily, in order for the translation to have value to its recipient. Shrimpstossian always loses something from the original two, whether that's grammatical nuance or poetic character or political context or general shrimp-based grumpiness. This is true whether you're translating a website full of financial terms and data, whether you're trying to read a menu in Eastern Europe, or whether you're debating the merits of subs versus dubs for your favorite Japanese anime. It's true everywhere because it is fundamental to what language is and what translation is and how they work. Thank you.
Speaker 2: Love that, thank you. Oh, Chuck. Alright. Next up we have Tim. I'm gonna try to break yesterday. He's gonna be breaking records. Hello, thank you. Goodbye. But you if you happen to spend time.
Speaker 5: Alright, so as a lot of you know, I'm here from Philadelphia. I love Philly, and when you come to Philly, you might think of this, or this, or this. And you know today we took a little bit of a deeper dive, and since people might be here for the next couple days, I wanted to show you a couple small things you can do around Philly that you don't see on TV. So today we saw ENIAC, some of us, and some of us saw the Sphinx that's over in the library over there. But there's more you can do around Philly. So if you're here today, tomorrow and want to take a break, you can go check out Giovanni's Room, which is the first LGBTQIA plus bookstore. in the country, probably in the world. It's down at Twelfth and Pine in our lovely neighborhood, and there are a lot of good ice cream places down there too and a wonderful antique row. It's also where my friends Dan and Neil met and eventually got married.
Speaker 5: Philly was also where Mother's Day was founded, and you can see the spot where it was founded right there. There's also the Murder Museum, which is a wonderful museum at 22nd and Market that was started by medical physicians. Many, many years ago. So you can see all kinds of uh wonderfully grotesque things there. Um there's this lovely set of steps up the wall in Manium that you can go visit, which is absolutely beautiful There's a shoe museum. So if you're really into shoes, you can check out the history of shoes. There's also the lovely Shifusu. Japanese tea house not far from here across in Belmont. So if you want to uh sh if you want to role-play some Shogun, for example, you could just roll over there and go for it. I don't know if
Speaker 5: Lady Marico is going to be in town, unfortunately. There is also Philadelphia Magic Gardens down on South Street. This is down at 10th and South. Which is a mammoth uh piece of immersive artwork, which is all done with found materials such as tiles, broken mirrors, and put together It's an absolutely beautiful spot, one of the most selfied spots in Philadelphia's. There are tunnels and all kinds of different things you can check out. And then there's one of my favorites, the Insomnia Cookie Lab. So Insomnia Cookies was started right here on Penn's campus. by a brilliant Wharton student who decided it might be possible to sell cookies to stoned college students late at night. So over here in Houston Hall, right on the other side of Houston of College Hall. The first insomnia cookies was open and his plan was I'm gonna sell cookies from 9 p.
Speaker 5: m. to 3 a. m. to Stone College kids. And guess what? It took off. There are like 250 insomnia cookies changed worldwide. But there is only one cookie lad. And it is here in South Philly, right by those cheesesteak places, which I glossed over back on this tab, I think. So the cookie lab is right across from Pat Steaks. But it's much, much more impressive. So if you walk in, it looks just like a normal Insomnia cookies. It's got this wonderful like front counter just like all the others, but then there's a bookshelf to the side. And if you say the secret password, the bookshelf swings out of the way. Revealing a speakeasy-like hallway back to the cookie lab where you can make custom cookies with any kind of topping you want and also all kinds of crazy milkshakes. So here's an example of some of the cookies you can make and what it looks like.
Speaker 5: And that is garnish of an ice cream sandwich on top of an ice cream sundae. The uh The Sundays have a minimum of two thousand calories each. And as you can see here, some of the garnishes get quite insane. So that is a five inch wide cookie in the middle, a piece of pie, and an ice cream sandwich all used as garnish. So there's a ton of wonderfully wild and weird stuff you can do while you're here in Philly. Scrub go beneath the surface. So if you're here for another day or two, uh go find some weird stuff and do it because it's a really fun town. Thank you.
Speaker 2: Um next up we have uh Megan on Quirks of Quirty.
Speaker 6: All right, folks. Um so probably about um like roughly like a week before PyCon um I started to notice that um I like I have a long-term shoulder industry. I've always needed like special ergonomic equipment. I've used one of those kind of split keyboards um forever with the tenting and things like that. Um But I it was one of those situations where it wasn't enough anymore. Um and I was no I I knew in my gut that I was on my way to like an injury uh and RSI and all that fun stuff and you know, which is not the thing you needed when you're organizing a conference. We're preparing for PyCon. But fortunately, I have this community. I have friends who have been through this before
Speaker 6: And you know, immediately like folks are like, we'll bring our keyboards to PyCon for you to play with. Um, you know, Kojo brought a mechanical keyboard tester um for me to try some things out. And also fortunately, because we have so many nerds that have solved these problems already. I discovered this great website on the internet called Carpal X , where they have actually done all the work of like calculating what is the most optimal keyboard layout in the world pretty much. Um but in this like exploration I've discovered that CWRT is so weird. and bizarre. It was invented in 1868. And like there's this great Smithsonian article about like the apocryphal story is that you know
Speaker 6: Cordy was designed to create like stop clashes between the type bars on the keyboard. That is not true. It turns out that the reason we have Quirity today is it was a design decision when they decided that they were going to like mass produce the machines. And that decision was made by none other than Remington. Yes, folks, we have a gun manufacturer to thank for the QRI layout. Um, you know, and for folks who are not from the United States, the Remington rifle is something that is a big part of our history, like both fortunate and unfortunate. Um And so that is pretty much how Curti uh came to be and it has just stuck ever since, even though it doesn't make all that much sense.
Speaker 6: Like if you dig into some of the stats. that Carpal X has um and how they've measured things, um, like in terms of like the effort and like how you have to to move your hands across the keyboard, Gourday is actually pretty bad uh compared to some of the other layouts that exist, like Dvorak or the one that I'm looking to transition to is called Colmac because it act they actually do have paths to transition from Court A to uh lay layout like Colmac Uh but ye like digging into this was just so much fun because you can find like just some really weird layouts. Like the most effective one is actually this uh Forquifry, I don't even know how to pronounce the
Speaker 6: layout. Um, and you know, like there's also they did the opposite. um measurement. Let me find that one. The most difficult this is typing L basically. The most difficult layout is T N W M L C. So if you really want to punish yourself, you can reformat your layout that way. It's just absolutely like, you know, even though I was like looking to solve for pain, it was um very gratifying to kind of discover all these uh different things. Come on, Zoom. Um come on. Gotta love it when the controls cover up your last tab. But I'll just go ahead and put a shout-out for this one and also for the company that has created honestly the keyboard that saved my ability to work on this convention.
Speaker 6: It's called The Voyager by ZSA, and they also provided a really excellent article about how to transition to Colmac. from Courtney. And so definitely consider that for the long term, especially if you're like me and do a lot of programming and writing. And that's what I gotta say. Blame Remington.
Speaker 2: Thank you, Megan. Love me a good keyboard. Uh next we have uh Michael Trent On no, you can't change the color. What you want is wrong. That's what I want to tell every user how. Okay, so the way this works. is like are you on the zoom on that dress okay so it's in the slack there's a minute it's kind of weird how it works Or it was.
Speaker 7: Sorry folks, I should know better at this point.
Speaker 2: It was uh can you go back to the channel? It's uh right there at the top. Oh, scroll a little
Speaker 7: How do we get the components?
Speaker 2: That's a good question. There you go.
Speaker 7: Alright.
Speaker 2: So alright, you're already plugged in. That's your other screen. But you can just mute it. Okay, and now share screen and you're gonna share your second screen up there. Desktop too
Speaker 7: I think I'm don't I think I'm doing three minutes different.
Speaker 2: Okay. So you can share this one too if you just go And the audio will come through the mic here.
Speaker 7: Oh.
Speaker 8: All right, so um at my talk yesterday I was talking about working with content creators um and some of the requests and flexibility and things like that. And one of the things that pops up all the time is no matter how flexible I make a system is, I want to change this one thing in this one little way. And I don't I know it's not great, I know it's not perfect, but let me do it And I always have to say no. And over the years I've had to learn how to be very polite and find compromises. So this is a little bit of that. So this is a pretty typical heading field, a little bit more flexibility than you would imagine This is a perfect place where someone's gonna like, I want it to be green or whatever else. They're usually asking for this, which is insane because it's not configured with their pagan library. If they are nerdy, they'll ask me for the first one. If they see I'm using tailwind, they'll ask for the second one.
Speaker 8: I always say no, and I give a list of reasons. There's brand considerations. You can't inject green into your layout for some odd reason, just because you like green. Green's not in your palette. There's accessibility considerations, which I'll show in a minute. Colors matter. You're colorblind, you can't uh read certain read and see certain things. There's UX considerations. Um having a bunch of different colors that are mixmatched and inconsistency all throughout your site injects some distrust. Layout feels off, feels janky, feels like no one's taken uh care of anything. It's always separation and concern. Um Ritail is really good about forcing you into a well-structured document Or price to at the very least. Uh and as soon as you start polluting uh your content with too much design, you can't export it as well, you can't migrate, you can't
Speaker 8: Move into the future with any kind of confidence. And then also, once you start putting weird colors in the system, someone's got to support them. We have to make sure that your weird green works in other weird places. This comes up a lot because everybody thinks that they're a designer. Everybody has an opinion on design. It's really easy to look at something like, well, if it was just like this. Or Sally or Bob or somebody has this big campaign for their kid for some odd reason. We gotta put it on the website. I know about color. I decorated something one time back in college. Very quickly put this into your browser. This is the color palette I'm going to be using. Obviously, I don't do that, but we're going to do a quick example with this color palette. It's off of coolers. co, I think is the name. Know how to say that. It's one of the more popular ones. So if you were ever trying to get a project off the ground and you have a bunch of pallets, you can grab one of those.
Speaker 8: Imagine you have this uh this this section This is applying that colour palette. You can see that in this in these two situations, it's not that bad, look pretty good on-brand. Your designer probably signed off on this. A few more colors. These still look good. Want a little bit of contrast. Oh no, guess what? We're not accessible. This hurts my eyes. I now want to die. I'm gonna leave this website. This is somebody going in and just mucking with a few colors. Now these these colors are valid, they're in the palette. We've just combined them in a really dumb way. Now we have an accessibility problem. We've we've angered somebody So how do you fix this? We've had a lot of luck with section level theming, so don't allow buttons and text and little things to be modified. Allow the section like you just saw to be to be changed.
Speaker 8: I have a little quick demo that I'm going to show over on CodePen. Alright, so uh here are those themes recreated. You can see they're all here. I am using CSS variables, kind of old technology at this point in time. I have my palette defined at the top. I have my ribbon, which is what I'm calling that block. I'm taking in a theme color. And I'm taking a background color and a text color. You can see that I'm applying that here. And then further down, I use that in a few places. My input's also picking that up. My buttons are picking that up And then I can go through and apply some different CSS. So each one of these blocks is something like class ribbon, and then it's class, you know, theme dash dark red, theme
Speaker 8: red, whatever, all the way down the line This used to be really hard to do until we got CSS variables. This system seems to work for a lot of people because it's just enough customization they know that they can choose some colors but the colors have been vetted the combinations have embedded it's already in brand the designers made the decision I always start with this whenever I'm doing theming and then I see uh where the problems are if somebody's coming in and saying I need to do I really need this red block, but I need bright pink or something weird. Then I can point back and like we have a system, we agreed to this, let's not fight it, let's figure out why you want pink or yellow or whatever else. But you can get really far with a little bit of CSS. Again, this used to be just a ton of template logic back in the day. And that's that's all I got
Speaker 2: Thank you, Michael. How can I make it readable? How can I make the logo bigger? Yeah, so uh So since we have four minutes left until we get kicked out, I will do my lightning talk super super quick. And the only reason I'm uh thought of this yesterday is because um Let's see here, because we have I got a lot of questions about this after my talk, so I'm just gonna do a quick thing about how to stop spam in your Django app. And uh I will post these slides later so that you can grab the code out of them. So
Speaker 2: let me share this. Yeah. Okay, so stopping spam. Stopping bots is really easy. You can use Google Read Capture, you can use CAPTCHAS, you know, there's open source stuff. That's not too terrible. Stopping humans is really hard. So how did we how do we uh this is some methods that we use to stop humans. The first one was uh blocking disposable emails. This is a package uh on PyPI called disposable email domains. That basically gives you a uh you know like at mailcatch. com, those types of things. And to integrate this, you can do it into a Django uh
Speaker 2: uh form pretty easily and by just cleaning the form and checking uh data dot split and make sure you split on the last at sign because a valid RFC email can actually have multiple at signs. Fun fact for you, anyone who's ever had to deal with that regex. So okay, you blocked your disposable email addresses. But they're still getting through because they can just generate a thousandoutlook. com email addresses and s or Yahoo ones. So you'd you'd still have a problem. Okay, so let's start by blocking uh IP addresses. So maybe my Wagtail admin only needs to be accessible in the US I have like three users who are logging in.
Speaker 2: I don't need international access. I'm just going to block that. Well, you can use the free Geolite 2. uh database which is uh you used to be able to install it on Linux like apt get install uh god or something like that uh but you can download it for free off their website it's just a file And with a little bit of Python code, you can essentially uh read that file and uh get the IP address. So this is uh I'll post this later so you can grab it. But basically you look up that IP address and it gives you a country. So you could say if the country is not in US or Canada, then just don't even let them through So, okay, uh but now the spammers have started using VPNs and digital ocean machines and proxies to get around your geolocation.
Speaker 2: So Please just make it stop. So we're gonna go for the nuclear option here, and this is uh the thing that I shouted out in my talk yesterday. Which is MaxMind's MinFraud web service. So this is an API, it's pretty cheap, it's like a fraction of a cent per request. So Maybe for PyPI uh that would add up a lot for their spam problem, but maybe they can afford it. I don't know. So hopefully they could So basically what you do is you just create a dictionary. They do have a Python package, so you can create a dictionary and you want to pass in as much context as you can So like the IP address, the language from their browser, the user agent from their browser, and then their name, their phone number, their email.
Speaker 2: This supports like 100 or 200 data points, so you can just pass in as much data as you have. Um and uh it works shockingly well so over in the right column you can see it basically gives you a score and you can say if the score is greater then a certain threshold, they're probably most likely a spammer and you can just not let them through So after we implemented this, the number of spams that we had just went way down. So stopping humans is very hard, but it can be done with a couple quick and easy Python methods So I just wanted to share that with you all. Thank you.
Speaker 2: So alright, that's it. Thanks everyone for coming to Wagtail Space 2024 USA edition.
The library valued Wagtail’s flexibility and extensibility, especially for adapting templates without adding much maintenance debt. After eight years and a major technology refresh elsewhere, the team still considers Wagtail a sustainable fit for its data-driven site.
Discussed at 4:03The speaker built a spreadsheet-driven management command to plan and apply page moves, title changes, and slug updates, with extra columns to reverse changes. Wagtail also has a bulk-move function, but it relies on page IDs, which can differ between environments.
Discussed at 10:17A useful translation has to convey intent, connotation, and cultural context, not just reproduce the original wording. Literal fidelity can lose the point of a joke or fail to communicate appropriately to a new audience.
Discussed at 16:38The speaker recommends spots including Giovanni’s Room bookstore, the Mütter Museum, Shofuso Japanese tea house, Philadelphia’s Magic Gardens, and the Insomnia Cookie Lab. He also mentions attractions such as the shoe museum and the steps in Manayunk.
Discussed at 19:43The speaker says the familiar layout was not designed to prevent type-bar clashes, despite that common story. It resulted from a mass-production design decision made by Remington, and the layout persisted afterward.
Discussed at 25:32Offer a limited set of vetted, section-level themes rather than letting editors change individual text, buttons, or colors freely. CSS variables make it practical to apply approved color combinations that stay on-brand and accessible.
Discussed at 33:28The speaker suggests blocking disposable email domains, optionally restricting access by IP geolocation, and using MaxMind’s MinFraud service when spammers evade simpler checks. MinFraud evaluates details such as IP, browser information, name, phone, and email to produce a risk score.
Discussed at 35:51Note: We understand that names change, people change, and bodies change. We respect each individual's journey and privacy. If you have any concerns about a video or need us to remove content, please don't hesitate to contact us. We will handle your request with care and promptly address any issues.
Published July 19, 2024
Published July 19, 2024
Published July 19, 2024
Published July 19, 2024
Published July 19, 2024
Published July 19, 2024