Joël's been traveling. Stephanie's working on professional development. She's also keeping up a little bit more with Ruby news and community news in general and saw that Ruby 3.2 introduced a new class called data to its core library for the use case of creating simple value objects. This episode is brought to you by Airbrake (https://airbrake.io/?utm_campaign=Q3_2022%3A%20Bike%20Shed%20Podcast%20Ad&utm_source=Bike%20Shed&utm_medium=website). Visit Frictionless error monitoring and performance insight for your app stack. Maggie Appleton's Tools for Thought (https://maggieappleton.com/tools-for-thought) Episode on note-taking with Amanda Beiner (https://www.bikeshed.fm/357) Obsidian (https://obsidian.md/) Zettelkasten (https://zettelkasten.de/posts/overview/) Evergreen notes (https://notes.andymatuschak.org/Evergreen_notes) New Data class (https://ruby-doc.org/3.2.0/Data.html) Joël's article on value objects (https://thoughtbot.com/blog/value-object-semantics-in-ruby) Episode on specialized vocabulary (https://www.bikeshed.fm/356) Primitive Obsession (https://wiki.c2.com/?PrimitiveObsession) Transcript: AD: thoughtbot is thrilled to announce our own incubator launching this year. If you are a non-technical founding team with a business idea that involves a web or mobile app, we encourage you to apply for our eight-week program. We'll help you move forward with confidence in your team, your product vision, and a roadmap for getting you there. Learn more and apply at tbot.io/incubator. STEPHANIE: Hello and welcome to another episode of The Bike Shed, a weekly podcast from your friends at thoughtbot about developing great software. I'm Stephanie Minn. JOËL: And I'm Joël Quenneville. And together, we're here to share a little bit of what we've learned along the way. STEPHANIE: So, Joël, what's new in your world? JOËL: I've been traveling for the past few weeks in Europe. I just recently got back to the U.S. and have just gotten used to drinking American-style drip coffee again after having espresso every day for a few weeks. And it's been an adjustment. STEPHANIE: I bet. I think that it's such a downgrade compared to European espresso. I remember when I was in Italy, I also would really enjoy espresso every day at a local cafe and just be like sitting outside drinking it. And it was very delightful. JOËL: They're very different experiences. I have to say I do enjoy just holding a hot mug and sort of sipping on it for a long time. It's also a lot weaker. You wouldn't want to do a full hot mug of espresso. That would just be way too intense. But yeah, I think both experiences are enjoyable. They're just different. STEPHANIE: Yeah. So, that first day with your measly drip coffee and your jet lag, how are you doing on your first day back at work? JOËL: I did pretty good. I think part of the fun of coming back to the U.S. from Europe is that the jet lag makes me a very productive morning person for a week. Normally, I'm a little bit more of an evening person. So I get to get a bit of an alter ego for a week, and that helps me to transition back into work. STEPHANIE: Nice. JOËL: So you've also been on break and have started work again. How are you feeling productivity-wise, kicking off the New Year? STEPHANIE: I'm actually unbooked this week and the last week too. So I'm not working on client projects, but I am having a lot of time to work on just professional development. And usually, during this downtime, I also like to reassess just how I'm working, and lately, what that has meant for me is changing my note-taking process. And I'm really excited to share this with you because I know that you have talked about this on the show before, I think in a previous episode with a guest, Amanda Beiner. And I listened to that episode, and I was really inspired because I was feeling like I didn't have a note-taking system that worked super well for me. But you all talked about some tools you used and some, I guess, philosophies around note-taking that like I said, I was really inspired by. And so I hopped on board the Obsidian train. And I'm really excited to share with you my experience with it. So I really like it because I previously was taking notes in my editor under the impression that, oh, like, everything is in one place. It'll be like a seamless transition from code to note-taking. And I was already writing in Markdown. But I actually didn't like it that much because I found it kind of distracting to have code things kind of around. And if I was navigating files or something, something work or code-related might come up, and that ended up being a bit distracting for me. But I know that that works really well for some people; a coworker of ours, Aji, I know that he takes his notes in Vim and has a really fancy setup for that. And so I thought maybe that's what I wanted, but it turns out that what I wanted was actually more of a boundary between code and notes. And so, I was assessing different note-taking and knowledge management software. And I have been really enjoying Obsidian because it also has quite a bit of community support. So I've installed a few plugins for just quality-of-life features like snippets which I had in my editor, and now I get to have in Obsidian. I also installed things like Natural Language Dates. So for my running to-do list, I can just do a shortcut for today, and it'll autofill today's date, which, I don't know, because for me, [laughs] that is just a little bit less mental work that I have to do to remember the date. And yeah, I've been really liking it. I haven't even fully explored backlinking, and that connectivity aspect, which I know is a core feature, but it's been working well for me so far. JOËL: That's really exciting. I love notes and note-taking and the ways that we can use those to make our lives better as developers and as human beings. Do you have a particular system or way you've approached that? Because I know for me, I probably looked at Obsidian for six months before I kind of had the courage to download it because I didn't want to go into it and not have a way to organize things. I was like; I don't want to just throw random notes in here. I want to have a system. That might just be me. But did you just kind of jump into it and see, like, oh, a system will emerge? Did you have a particular philosophy going in? How are you approaching taking notes there? STEPHANIE: That's definitely a you thing because I've definitely had the opposite experience [laughs] where I'm just like, oh, I've downloaded this thing. I'm going to start typing notes and see what happens. I have never really had a good organizational system, which I think is fine for me. I was really leaning on pen and paper notes for a while, and I still have a certain use case for them. Because I find that when I'm in meetings or one-on-ones and taking notes, I don't actually like to have my hands on the keyboard because of distractions. Like I mentioned earlier, it's really easy for me to, like, oh, accidentally Command-Tab and open Slack and be like, oh, someone posted something new in Slack; let me go read this. And I'm not giving the meeting or the person I'm talking to my full attention, and I really didn't like that. So I still do pen and paper for things where I want to make sure that I'm not getting distracted. And then, I will transfer any gems from those notes to Obsidian if I find that they are worth putting in a place where I do have a little bit more discoverability and eventually maybe kind of adding on to my process of using those backlinks and connecting thoughts like that. So, so far, it's truly just a list of separate little pages of notes, and yeah, we'll see how it goes. I'm curious what your system for organizing is or if you have kind of figured out something that works well for you. JOËL: So my approach focuses very heavily on the backlinks. It's loosely inspired by two similar systems of organization called Zettelkasten and evergreen notes. The idea is that you create notes that are ideas. Typically, the title is like a thesis statement, and you keep them very short, focused on a single thing. And if you have a more complex idea, it probably breaks down into two or three, and then you link them to each other as makes sense. So you create a web of these atomic ideas that are highly interconnected with each other. And then later on, because I use this a lot for either creating content in the future or to help refine my thinking on various software topics, so later on, I can go through and maybe connect three or four things I didn't realize connected together. Or if I'm writing an article or a talk, maybe find three or four of these ideas that I generated at very different moments, but now they're connected. And I can make an article or a talk out of them. So that's sort of the purpose that I use them for and how I've organized things for myself. STEPHANIE: I think that's a really interesting topic because while I was assessing different software for note-taking and, like I said, knowledge management, I discovered this blog post by Maggie Appleton that was super interesting because she is talking about the term tools of thought which a lot of these different software kind of leveraged in their marketing copy as like, oh, this software will be like the key to evolving your thinking and help you expand making connections, like you mentioned, in ways that you weren't able to before. And was very obviously trying to upsell you on this product, and she -- JOËL: It's over the top. STEPHANIE: A little bit, a little bit. So in this article, I liked that she took a critical lens to that idea and rooted her article in history and gave examples of a bunch of different things in human history that also evolved the ways humans were able to express their thoughts and solve problems. And so some of the ones that she listed were like storytelling and oral tradition. Literally, the written language obviously [laughs] empowered humans to be able to communicate and think in ways that we never were before but also drawings, and maps, and spreadsheets. So I thought that was really cool because she was basically saying that tools of thought don't need to be digital, and people claiming that these software, you know, are the new way to think or whatever, it's like, the way we're thinking now, but we also have this long history of using and developing different things that helped us communicate with each other and think about stuff. JOËL: I think that's something that appealed to me when I was looking at some of these note-taking systems. Zettelkasten, in particular, predates digital technology. The original system was built on note cards, and the digital stuff just made it a little bit easier. But I think also when I was reading about these ideas of keeping ideas small and linking them together, I realized that's already kind of how I tend to organize information when I just hold it in my brain or even when I try to do something like a tweet thread on Twitter where I'll try to break it up. It might be a larger, more complex idea, but each tweet, I try to get it to kind of stand on its own to make it easier to retweet and all that. And so it becomes a chain of related ideas that maybe build up to something, but each idea stands on its own. And that's kind of how in these systems notes end up working. And they're in a way that you can kind of remix them with each other. So it's not just a linear chain like you would have on Twitter. STEPHANIE: Yeah, I remember you all in that episode about note-taking with Amanda talked about the value of having an atomic piece of information in every note that you write. And since then, I've been trying to do that more because, especially when I was doing pen and paper, I would just write very loose, messy thoughts down. And I would just think that maybe I would come back to them one day and try to figure out, like, oh, what did I say here, and can I apply it to something? But it's kind of like doing any kind of refactoring or whatever. It's like, in that moment, you have the most context about what you just wrote down or created. And so I've been a little more intentional about trying to take that thought to its logical end, and then hopefully, it will provide value later. What you were saying about the connectivity I also wanted to kind of touch on a little bit further because I've realized that for me, a lot of the connection-making happens during times where I'm not very actively trying to think, or reflect, or do a lot of deep work, if you will. Because lately, I've been having a lot of revelations in the shower, or while I'm trying to fall asleep, or just other kinds of meditative activity. And I'm just coming to terms with that's just how my brain works. And doing those kinds of activities has value for me because it's like something is clearly going on in my brain. And I definitely want to just honor that's how it works for me. JOËL: I had a great conversation recently with another colleague about the gift of boredom and how that can impact our work and what we think about, and our creativity. That was really great. Sometimes it's important to give ourselves a little bit more blank space in our lives. And counter-intuitively, it can make us more productive, even though we're not scheduling ourselves to be productive. STEPHANIE: Yes, I wholeheartedly agree with that. I think a lot about the feeling of boredom, and for me, that is like the middle of summer break when you're still in school and you just had no obligations whatsoever. And you could just do whatever you wanted and could just laze around and be bored. But letting your mind wander during those times is something I really miss. And sometimes, when I do experience that feeling, I get a little bit anxious. I'm like, oh, I could be doing something else. There's whatever endless list of chores or things that are, quote, unquote, "productive." But yeah, I really like how you mentioned that there is value in that experience, and it can feel really indulgent, but that can be good too. MID-ROLL AD: Debugging errors can be a developer's worst nightmare...but it doesn't have to be. Airbrake is an award-winning error monitoring, performance, and deployment tracking tool created by developers for developers that can actually help cut your debugging time in half. So why do developers love Airbrake? It has all of the information that web developers need to monitor their application - including error management, performance insights, and deploy tracking! Airbrake's debugging tool catches all of your project errors, intelligently groups them, and points you to the issue in the code so you can quickly fix the bug before customers are impacted. In addition to stellar error monitoring, Airbrake's lightweight APM helps developers to track the performance and availability of their application through metrics like HTTP requests, response times, error occurrences, and user satisfaction. Finally, Airbrake Deploy Tracking helps developers track trends, fix bad deploys, and improve code quality. Since 2008, Airbrake has been a staple in the Ruby community and has grown to cover all major programming languages. Airbrake seamlessly integrates with your favorite apps to include modern features like single sign-on and SDK-based installation. From testing to production, Airbrake notifiers have your back. Your time is valuable, so why waste it combing through logs, waiting for user reports, or retrofitting other tools to monitor your application? You literally have nothing to lose. Head on over to airbrake.io/try/bikeshed to create your FREE developer account today! JOËL: So you mentioned recently that you've had a lot of revelations or new ideas that have come upon you or that you've been able to dig into a little bit more. Is there one you'd like to share with the audience? STEPHANIE: Yeah. So during this downtime that I've had not working on client work, I have been able to keep up a little bit more with Ruby news or just community news in general. And in, I think, an edition of Ruby Weekly, I saw that Ruby 3.2 introduced this new class called data to its core library for the use case of creating simple value objects. And I was really excited about this new feature because I remembered that you had written a thoughtbot blog post about value objects back in the summer that I had reviewed. That was an opportunity that I could make a connection between something happening in recent news with some thoughts that I had about this topic a few months ago. But basically, this new class can be used over something like a struct to create objects that are immutable in their values, which is a big improvement if you are trying to follow value objects semantics. JOËL: So, I have not played around with the new data class. How is it different from the existing struct that we have in Ruby? STEPHANIE: So I think I might actually answer that first by saying how they're similar, which is that they are both vehicles for holding pieces of data. So we've, in the past, been able to use a struct to very cheaply and easily create a new class that has attributes. But one pitfall of using a struct when you're trying to implement something like a value object is that structs also came with writer methods for all of its members. And so you could change the value of a member, and that it kind of inherently goes against the semantics of a value object because, ideally, they're immutable. And so, with the data class, it doesn't offer writer methods essentially. And I think that it freezes the instance as well in the constructor. And so even if you tried to add writer methods, you would eventually get an error. JOËL: That's really convenient. I think that may be an area where I've been a little bit frustrated with structs in the past, which is that they can be modified. They basically get treated as if they're hashes with a slightly nicer syntax to interact with them. And I want slightly harder boundaries around the data. Particularly when I'm using them as value objects, I generally don't want people to modify them because that might lead to some weird bugs in the code where you've got a, I don't know, something represents a time value or a date value or something, and you're trying to do math on it. And instead of giving you a new time or date, value just modifies the first one. And so now your start date is in the past or something because you happen to subtract a time from it to do a calculation. And you can't assign it to a variable anywhere. STEPHANIE: Yeah, for sure. Another kind of pitfall I remember noticing about structs were that the struct class includes the enumerable module, which makes a struct kind of like a collection. Whereas if you are using it for a value object, that's maybe not what you want. So there was a bit of discourse about whether or not the data class should inherit from struct. And I think they landed on it not inheriting because then you can draw a line in the sand and have that stricter enforcement of saying like, this is what a data as value object should be, and this is what it should not be. So I found that pretty valuable too. JOËL: I think I've heard people talk about sort of two classes of problems that are typically solved with a struct; one is something like a value object where you probably don't want it to be writable. You probably don't want it to be enumerable. And it sounds like data now takes on that role very nicely. The other category of problem is that you have just a hash, and you're trying to incrementally migrate it over to some nicer objects in some kind of domain. And struct actually gives you this really nice intermediate phase where it still mostly behaves like a hash if you needed to, but it also behaves like an object. And it can help you incrementally transition away from just a giant hash into something that's a little bit more programmatic. STEPHANIE: Yeah, that's a really good point. I think struct will still be a very viable option for that second category that you described. But having this new data class could be a good middle ground before you extract something into its own class because it better encapsulates the idea of a value object. And one thing that I remember was really interesting about the article that you wrote was that sometimes people forget to implement certain methods when they're writing their own custom value objects. And these come a bit more out of the box with data and just provide a bit more like...what's the word I'm looking for? I'm looking for...you know when you're bowling, and you have those bumpers, I guess? [laughs] JOËL: Uh-huh. STEPHANIE: They provide just like safeguards, I guess, for following semantics around value objects that I thought was really important because it's creating an artifact for this concept that didn't exist. JOËL: And to recap for the audience here, the difference is in how objects are compared for equality. So value objects, if they have the same internal value, even if they're separate objects in memory, should be considered equal. That's how numbers work. That's how hashes work. Generally, primitives in Ruby behave this way. And structs behave that way, and the new data class, it sounds, also behaves that way. Whereas regular objects that you would make they compare based off of the identity of the object, not its value. So if you create two user instances, not ActiveRecord, but you could create a user class, you create two instances in memory. They both have the same attributes. They will be considered not equal to each other because they're not the same instance in memory, and that's fine for something more complex. But when you're dealing with value objects, it's important that two objects that represent the same thing, like a particular time for a unit of measure or something like that, if they have the same internal value, they must be the same. STEPHANIE: Right. So prior to the introduction of this class, that wasn't really enforced or codified anywhere. It was something that if you knew what a value object was, you could apply that concept to your code and make sure that the code you wrote was semantically aligned with this concept. And what was kind of exciting to me about the addition of this to the core class library in Ruby is that someone could discover this without having to know what a value object is like more formally. They might be able to see the use of a data class and be like, oh, let me look this up in the official Ruby docs. And then they could learn like, okay, here's what that means, and here's some rules for this concept in a way that, like I mentioned earlier, felt very implicit to me prior. So that, I don't know, was a really exciting new development in my eyes. JOËL: One of the first episodes that you and I recorded together was about the value of specific vocabulary. And I think part of what the Ruby team has done here is they've taken an implicit concept and given it a name. It's extracted, and it has a name now. And if you use it now, it's because you're doing this data thing, this value object thing. And now there's a documentation page. You can Google it. You can find it rather than just be wondering like, oh, why did someone use a struct in this way and not realize there are some implicit semantics that are different? Or wondering why did the override double equals on this custom class? STEPHANIE: Yeah, exactly. I think that the introduction of this class also provides a solution for something that you mentioned in that blog post, which was the idea of testing value objects. Because previously, when you did have to make sure that you implemented methods, those comparison methods to align with the concept of a value object, it was very easy to forget or just not know. And so you provided a potential solution of testing value objects via an RSpec shared example. And I remember thinking like, ooh, that was a really hot topic because we had also been debating about shared examples in general. But yeah, I was just thinking that now that it's part of the core library, I think, in some ways, that eliminates the need to test something that is using a data class anyway because we can rely a little bit more on that dependency. JOËL: Right? It's the built-in behavior now. Do you have any fun uses for value objects recently? STEPHANIE: I have not necessarily had to implement my own recently. But I do think that the next time I work with one or the next time I think that I might want to have something like a value object it will be a lot easier. And I'm just excited to play around with this and see how it will help solve any problem that might come up. So, Joël, do you have any ideas about when you might reach for a data object? JOËL: A lot of situations, I think, when you see the primitive obsession smell are a great use case for value objects, or maybe we should call them data objects now, now that this is part of Ruby's vocabulary. I think I often tend to; preemptively sounds bad, but a lot of times, I will try to be careful. Anytime I'm doing anything with raw numbers, magic strings, things like that, I'll try to encapsulate them into some sort of struct. Or even if it's like a pair of numbers, it always goes together, maybe a latitude and longitude. Now, those are a pair. Do I want to just be passing around a two-element array all the time or a hash that would probably make a very nice data object? If I have a unit of measure, some number that represents not just the abstract concept of three but specifically three miles or three minutes, then I might reach for something like a data class. STEPHANIE: Yeah, I think that's also true if you're doing any kind of arithmetic or, in general, trying to compare anything about two of the same things. That might be a good indicator as well that you could use something richer, like a value object, to make some of that code more readable, and you get some of those convenient methods for doing those comparisons. JOËL: Have you ever written code where you just have like some number in the code, and there's a comment afterwards that's like minutes or miles or something like that, just giving you the unit as a comment afterwards? STEPHANIE: Oh yeah. I've definitely seen some of that code. And yeah, I mean, now that you mentioned it, that's a great use case for what we're talking about, and it's definitely a code smell. JOËL: It can often be nice as you make these more domain concepts; maybe they start as a data object, but then they might grow with their own custom methods. And maybe you extend data the same way you could extend a struct, or maybe you create a custom class to the point where the user...whoever calls that object, doesn't really need to know or care about the particular unit, just like when you have duration value. If you have a duration object, you can do the math you want. You can do all the operations and don't have to know whether it is in milliseconds, or seconds, or minutes because it knows that internally and keeps all of the math straight as opposed to just holding on to what I've done before, which is you have some really big number somewhere. You have start is, or length is equal to some big number and then comment milliseconds. And then, hopefully, whoever does math on that number later remembers to do the division by 1,000 or whatever they need. STEPHANIE: I've certainly worked on code where we've tolerated those magic numbers for probably longer than we should have because maybe we did have the shared understanding that that value represents minutes or milliseconds or whatever, and that was just part of the domain knowledge. But you're right, like when you see them, and without a very clear label, all of that stuff is implied and is really not very friendly for someone coming along in the future. As well as, like you mentioned earlier, if you have to do math on it later to convert it to something else, that is also a red flag that you could use some kind of abstraction or something to represent this concept at a higher level but also be extensible to different forms, so a duration to represent different amounts of time or money to represent different values and different currencies, stuff like that. JOËL: Do you have a guideline that you follow as to when something starts being worth extracting into some kind of data object? STEPHANIE: I don't know if I have particularly clear guidelines, but I do remember feeling frustrated when I've had to test really complicated hashes or just primitives that are holding a lot of different pieces of information in a way that just is very unwieldy when you do have to write a test for it. And if those things were encapsulated in methods, that would have been a lot easier. And so I think that is a bit of a signal for me. Do you have any other guidelines or gut instincts around that? JOËL: We mentioned the comment that is the unit. That's probably a...I wasn't sure if I would have to call it a code smell, but I'm going to call it a code smell that tells you maybe you should...that value wants to be something a little bit more than just a number. I've gotten suspicious of just raw integers in general, not enough to say that I'm going to make all integers data objects now, but enough to make me pause and think a lot of times. What does this number represent? Should it be a data object? I think I also tend to default to try to do something like a data object when I'm dealing with API responses. You were talking about hashes and how they can be annoying to test. But also, when you're dealing with data coming back from a third-party API, a giant nested hash is not the most convenient thing to work with, both for the implementation but then also just for the readability of your code. I often try to have almost like a translation layer where very quickly I take the payload from a third-party service and turn it into some kind of object. STEPHANIE: Yeah, I think the data class docs itself has an example of using it for HTTP responses because I think the particular implementation doesn't even require it to have attributes. And so you can use it to just label something rather than requiring a value for it. JOËL: And that is one thing that is nice about something like a data object versus a hash is that a hash could have literally anything in it. And to a certain extent, a data object is self-documenting. So if I want to know I've gotten to a shopping cart object from a third-party API, what can I get out of the shopping cart? I can look at the data object. I can open the class and see here are the methods I can call. If it's just a hash, well, I guess I can try to either find the documentation for the API or try to make a real request and then inspect the hash at runtime. But there's not really any way to find out without actually executing the code. STEPHANIE: Yeah, that's totally fair. And what you said about self-documenting makes a lot of sense. And it's always preferable than that stray comment in the code. [laughs] JOËL: I'm really excited to use the data class in future Ruby 3.2 projects. So I'm really glad that you brought it up. I've not tried it myself, but I'm excited to use it in future projects. STEPHANIE: On that note, shall we wrap up? JOËL: Let's wrap up. STEPHANIE: Show notes for this episode can be found at bikeshed.fm. JOËL: This show has been produced and edited by Mandy Moore. STEPHANIE: If you enjoyed listening, one really easy way to support the show is to leave us a quick rating or even a review in iTunes. It really helps other folks find the show. JOËL: If you have any feedback for this or any of our other episodes, you can reach us @_bikeshed, or you can reach me @joelquen on Twitter. STEPHANIE: Or reach both of us at firstname.lastname@example.org via email. JOËL: Thanks so much for listening to The Bike Shed, and we'll see you next week. ALL: Byeeeeeeeeeeeeee!!!!!!!!!!!! ANNOUNCER: This podcast is brought to you by thoughtbot, your expert strategy, design, development, and product management partner. We bring digital products from idea to success and teach you how because we care. Learn more at thoughtbot.com.
Ein Jahr FOCUS ON: Linux! Wir ziehen Bilanz und gewähren euch Einblicke in unsere Arbeit bei der Pflege des Podcasts. Neben Zahlen und Fakten besprechen wir auch Highlights und zeigen euch worauf ihr euch im kommenden Jahr freuen könnt. Zahlen, Daten, Fakten Festplatte defragmentieren ASMR: https://www.youtube.com/watch?v=KR3TbL3Tl6M Einschlafen-Podcast: https://einschlafen-podcast.de/ Beliebteste Folgen /dev/nullnummer: https://ageofdevops.de/index.php/podcast/00/ Proxmox: https://ageofdevops.de/index.php/podcast/proxmox/ SerenityOS: https://ageofdevops.de/index.php/podcast/serenityos/ Vim - der beste Editor der Welt: https://ageofdevops.de/index.php/podcast/vim-der-beste-editor-der-welt/ Monitoring: https://ageofdevops.de/index.php/podcast/12-monitoring/ Retrospektive Lieblingsfolgen SerenityOS: https://ageofdevops.de/index.php/podcast/serenityos/ Vim - der beste Editor der Welt: https://ageofdevops.de/index.php/podcast/vim-der-beste-editor-der-welt/ September News Update: https://ageofdevops.de/index.php/podcast/newsupdate-09-22/ Neue Formate Stay Forever-Quiz: https://www.stayforever.de/2022/12/das-quiz-runde-8/ 20 Jahre Red Hat Enterprise Linux: https://ageofdevops.de/index.php/podcast/mai-2022/ Blick hinter die Kulissen Focusrite Scarlett Solo: https://focusrite.com/en/audio-interface/scarlett/scarlett-solo Beyerdynamic DT 797 PV: https://www.beyerdynamic.de/dt-797.html REAPER DAW: https://www.reaper.fm/ Ultraschall: https://ultraschall.fm/ Sendegate Podcasting-Community: https://sendegate.de/ Tooltipps https://github.com/o2sh/onefetch https://github.com/stretchr/testify https://www.youtube.com/watch?v=VleXC0mTsvY https://github.com/ogham/exa
Timestamps[00:30] Do you set New Years resolutions? Andrew and Julie talk about whether they set them for themselves and the problems they have had with them in the past.[03:27] Julie asks Andrew if he is a proactive or reactive person and how she wants to be more proactive in 2023 and the pair talk about deadlines.[07:00] Julie and Andrew share their goals for 2023. What are your goals?[13:10] Andrew is learning Swift and Vim and Julie is trying to increase her React skills.[19:30] Julie shares a sneak peak at some upcoming episodes you can look forward to in 2023.SponsorGoRailsLinks- Ruby 3.2.0 Released- The Well Grounded Rubyist- Swift Playgrounds
Wikipedia's entry for the ZX81: https://en.wikipedia.org/wiki/ZX81 WordPerfect in many of its forms, complete with download links: https://winworldpc.com/product/wordperfect/3x-dos Hog Bay Software's WriteRoom for Mac: https://www.hogbaysoftware.com/products/writeroom/ FocusWriter: https://gottcode.org/focuswriter/ How to turn Vim into a word processor: https://www.maketecheasier.com/turn-vim-word-processor/ Hunspell: http://hunspell.github.io/ The GNU Emacs site: https://www.gnu.org/software/emacs/ GNU aspell: http://aspell.net/ Flycheck for GNU Emacs: https://www.flycheck.org/en/latest/ Help for sufferers of RSI: https://www.rsiprevention.com/ enistello can be reached by email: email@example.com Or on Mastodon: @firstname.lastname@example.org
The second-to-last episode of the cours! Shaddiq holds his breath, Suletta catches her breath, Vim curses under his breath, and Delling doesn't waste his breath. Step aside, Type-Moon, there are TWO witches on this holy night. And is that an Aerial upgrade I spy? Damn, gang- this episode's good, so was the last, and I think the next will be great as well. I'm just hoping the break between cours doesn't kill this momentum.
If it's not crazy, it won't go viral.If it doesn't question the common belief, people won't pay attention to it.Let's draw some inspiration from this creative marketing campaign from Vim.
Wenn es um Linux-Editoren geht, ist häufige die Rede von vi(m) und Emacs. Allerdings gibt es eine ganze Reihe weiterer, weniger bekannten, Editoren, die ebenfalls Vorzüge haben - Zeit, einen Blick auf sie zu werfen! micro: https://micro-editor.github.io/YouTube-Video über micro: https://www.youtube.com/watch?v=kqCQLyrEZwwArtikel über micro: https://gnulinux.ch/micro-der-beste-cli-texteditortilde: https://os.ghalkes.nl/tilde/nano: https://www.nano-editor.org/vim Podcast-Episode: https://ageofdevops.de/index.php/podcast/vim-der-beste-editor-der-welt/Helix: https://helix-editor.com/Kakoune Editor: http://kakoune.org/ne, Nice Editor: https://ne.di.unimi.it/
Welcome to Cyrus Says, Cock & Bull! In today's episode, Cyrus is joined by Masoom & Abbas. Today Cyrus is ranting about the Colaba region of Mumbai being closed because of the G20 Summit! In the show: Abbas talks about the new Malaika Arora show - like, literally everything about the show, EVERYTHING. And we all get to know how big of an opportunist Masoom is. Topics discussed: Backlash on Vim's ‘first dishwashing liquid for men,' Probable banning of loose cigarettes by Govt, and The sending of Argentina vs Netherlands referee back home. Tune in for this and much more!Subscribe to the Cyrus Says YouTube Channel for full video episodes!Check out the Cyrus Says Official MerchFollow Masoom on Instagram at @masoom_rajwani Follow Abbas on Instagram at @abbasmomin88 Listen to Cyrus Says across Audio PlatformsIVM Podcasts | Apple Podcasts | Spotify | Google Podcasts | Gaana | Amazon MusicEmail your AMA questions to us at email@example.com Don't forget to follow Cyrus Says' official Instagram handle at @whatcyrussays for best bits from the show, memes and much more!Connect with Cyrus on socials:Instagram | TwitterAnd don't forget to rate us!You can listen to this show and other awesome shows on the new and improved IVM Podcasts App on Android: https://ivm.today/android or iOS: https://ivm.today/iosSee omnystudio.com/listener for privacy information.
2022-12-06 Weekly News - Episode 174Watch the video version on YouTube at https://youtu.be/TLt1L1HzqZQ Hosts: Gavin Pickin - Senior Developer at Ortus Solutions Eric Peterson - Senior Developer at Ortus Solutions Thanks to our Sponsor - Ortus SolutionsThe makers of ColdBox, CommandBox, ForgeBox, TestBox and all your favorite box-es out there. A few ways to say thanks back to Ortus Solutions: Like and subscribe to our videos on YouTube. Help ORTUS reach for the Stars - Star and Fork our ReposStar all of your Github Box Dependencies from CommandBox with https://www.forgebox.io/view/commandbox-github Subscribe to our Podcast on your Podcast Apps and leave us a review Sign up for a free or paid account on CFCasts, which is releasing new content every week BOXLife store: https://www.ortussolutions.com/about-us/shop Buy Ortus's Books 102 ColdBox HMVC Quick Tips and Tricks on GumRoad (http://gum.co/coldbox-tips) Learn Modern ColdFusion (CFML) in 100+ Minutes - Free online https://modern-cfml.ortusbooks.com/ or buy an EBook or Paper copy https://www.ortussolutions.com/learn/books/coldfusion-in-100-minutes Patreon Support ( stupendous )Goal 1 - We have 43 patreons providing 100% of the funding for our Modernize or Die Podcasts via our Patreon site: https://www.patreon.com/ortussolutions. Goal 2 - We are 39% of the way to fully fund the hosting of ForgeBox.io Patreon Sponsored Job Announcement - Tomorrows GuidesTomorrows Guides is a fast paced leader in the UK care sector, catering for care seekers across three areas: Care Homes, Nurseries and Home Care. We are often called the Trip Advisor of the care sector. Current Roles - More in the job section Senior Cf Developer – UK Only | Remote | Permanent | Circa £60k - https://app.occupop.com/shared/job/senior-coldfusion-developer-5925b/ Automation Test Engineer – UK Only | Remote | Permanent | Crica £40k - https://app.occupop.com/shared/job/automation-test-engineer-a6545/ News and AnnouncementsWe've Made It!Scraped as “Update or Pass away®”https://updates4devs.com/update-or-pass-away-cfml-information-podcast-for-november-29th-2022-episode-173/?feed_id=1459&_unique_id=6387bc888f2d6Adobe ColdFusion Fortuna AlphaSignup for the pre-release - Special things happening which I can't talk abouthttps://www.adobeprerelease.com/beta/C0A219A0-A127-417A-D0D3-A7B5B3C5A0AE/participate/C3B4F4DC-8662-4610-D2B1-EE8FAD396648 Advent of Codehttps://adventofcode.com/CFML Slack Leaderboard: `1574707-be30db8f`Box Team Leaderboard: `26416-a4842ce2`ICYMI - ColdBox Master Class - Completely Free until the end of the Year!Want to learn about modern web apps in ColdFusion (CFML)? We have our ColdBox Master Class for FREE until the end of the year! A gift to the community, so we can all build amazing apps together! Watch all the videos! Binge Coding Anyone? Enjoy! https://www.cfcasts.com/series/cb-master-class?utm_source=podcast&utm_medium=PODCAST&utm_campaign=LM-PODCAST New Releases and UpdatesICYMI - Lucee released 5.3.10One of the most exciting features in 5.3.10+97, which should make everyone's life easier when deploying Lucee servers, is improved, still experimental, native support for CFconfig.https://dev.lucee.org/t/lucee-5-3-10-97-stable-release/11540 Webinar / Meetups and WorkshopsThis Week - Ortus Software Craftsmanship Book Club - Patreon OnlyFriday, December 9th at 2pm CDT - 2nd Friday of the MonthClean Code: A Handbook of Agile Software Craftsmanship by Robert Martin (Uncle Bob)Focus - Chapter 2 - Naming Conventions - 1 of the 2 hardest things in programming, along with cache invalidation and off by 1 errors ;) We will meet monthly on Zoom, and we'll use the Ortus Community Forum for Patreon to discuss the book.https://community.ortussolutions.com/t/ortus-software-craftsmanship-book-club-clean-code/9432 We will also be rewriting the code from Java to CFML as we proceed through the book.The final result will be here https://github.com/gpickin/clean-code-book-cfml-examples You can get a copy of the book at one of the below links, or your favorite bookstorehttps://amzn.to/3TIrmKm or https://www.audible.com/pd/Clean-Code-Audiobook/B08X7KL3TF?action_code=ASSGB149080119000H&share_location=pdp&shareTest=TestShare Zoom link will be posted in Patreon Slack Channel and Patreon Community ForumSignup to Patreon to join live: https://www.patreon.com/ortussolutions Ortus Event Calendar for Googlehttps://calendar.google.com/calendar/u/0?cid=Y181NjJhMWVmNjFjNGIxZTJlNmQ4OGVkNzg0NTcyOGQ1Njg5N2RkNGJiNjhjMTQwZjc3Mzc2ODk1MmIyOTQyMWVkQGdyb3VwLmNhbGVuZGFyLmdvb2dsZS5jb20 ColdFusion Security Training - Writing Secure CFML with Pete Freitag from FoundeoWhen: Tuesday December 13, 2022 @ 11am-2pm & Wednesday December 14 @ 11am-2pm(Eastern Standard Time, UTC -5) - 6 hours in total.A hands-on CFML / ColdFusion Security Training class for developers. Learn how to identify and fix security vulnerabilities in your ColdFusion / CFML applications.The class will be recorded, so if you cannot attend it fully online you will have access to a recording.Where: Online / Web ConferenceWho: Taught by Pete FreitagCost: $999/student $899/student (Early Bird Discount)Register: https://foundeo.com/consulting/coldfusion/security-training/ CFCasts Content Updateshttps://www.cfcasts.comRecent Releases ITB - 12 Days of Xmas - ITB 2022 - starting Thursday 12/8/22 until Xmas Eve ColdBox Master Class - Now FREE 2022 ForgeBox Module of the Week Series - 1 new Video https://cfcasts.com/series/2022-forgebox-modules-of-the-week 2022 VS Code Hint tip and Trick of the Week Series - 1 new Video https://cfcasts.com/series/2022-vs-code-hint-tip-and-trick-of-the-week Coming Soon More ForgeBox and VS Code Podcast snippet videos Box-ifying a 3rd Party Library from Gavin ColdBox Elixir from Eric Getting Started with ContentBox from Daniel Conferences and TrainingCF Summit Online All the webinars, all the speakers from Adobe ColdFusion Summit 2022 – brought right to your screen. All sessions will soon be streamed online, for your convenience. Stay tuned for more! MINING ELECTRONIC DOCUMENTS FOR FUN AND PROFIT (AND OTHER BUSINESS CRITICAL NEEDS)Raymond Camden December 7 | 12:00 to 13:00 EST (1 hour)BELOW THE SURFACE: WEB VULNERABILITIES HIDING IN YOUR APPLICATIONSBrian ReillyDecember 9, 2022 | 12:00 - 13:00 EST (1 hour)EXPLORING AWS JAVA SDK DEVELOPER FEATURES USING CFJAVABrian BockholdDecember 12, 2022 | 12:00 - 13:00 EST (1 hour)And many more in Dec and Jan… Website for CF Summit Onlinehttps://cfsummit-online.meetus.adobeevents.com/ Into the Box Latam 2022 - TOMORROWDec 7th, 2022 - 8am - 5pm2 tracks - 1 set of sessions, 1 set of deep dive workshop sessionsPricing $9-$29 USDLocation: Hyatt Centric Las Cascadas Shopping Center,Merliot, La Libertad 99999 El Salvadorhttps://latam.intothebox.org/ VUEJS AMSTERDAM 20239-10 February 2023, Theater AmsterdamWorld's Most Special and Largest Vue ConferenceCALL FOR PAPERS AND BLIND TICKETS AVAILABLE NOW!Call for Papers: https://forms.gle/GopxfjYHfpE8fKa57 Blind Tickets: https://eventix.shop/abzrx3b5 https://vuejs.amsterdam/ Dev NexusApril 4-6th in AtlantaGeorgia World Congress Center285 Andrew Young International Blvd NWAtlanta, GA 30313USAApril 4th – 6th, 2023Begin: 09:00 Your local time: 06:00End: 18:00 Your local time: 15:00https://devnexus.com/ VueJS Live MAY 12 & 15, 2023ONLINE + LONDON, UKCODE / CREATE / COMMUNICATE35 SPEAKERS, 10 WORKSHOPS10000+ JOINING ONLINE GLOBALLY300 LUCKIES MEETING IN LONDONGet Early Bird Tickets: https://ti.to/gitnation/vuejs-london-2022 Watch 2021 Recordings: https://portal.gitnation.org/events/vuejs-london-2021 https://vuejslive.com/ Into the Box 2023 - 10th EditionMay 17-19, 2023 The conference will be held in The Woodlands (Houston), TexasThis year we will continue the tradition of training and offering a pre-conference hands-on training day on May 17th and our live Mariachi Band Party! However, we are back to our Spring schedule and beautiful weather in The Woodlands! Also, this 2023 will mark our 10 year anniversary. So we might have two live bands and much more!!!We are pleased to announce the call for speakers for the Into The Box Conference for 2023 is now officially open. https://www.intothebox.org/blog/into-the-box-2023-call-for-speakers CFCamp is backJune, 22-23rd 2023Marriott Hotel Munich Airport, FreisingCall for Speakers coming in the New yearhttps://www.cfcamp.org/ More conferencesNeed more conferences, this site has a huge list of conferences for almost any language/community.https://confs.tech/https://github.com/scraly/developers-conferences-agenda Blogs, Tweets, and Videos of the Week 12/6/22 - Blog - Grant Copley - CBWIRE ExamplesConstructing reactive, modern CFML applications is a breeze with our module CBWIRE. To make sure users can take advantage of the features we've added to CBWIRE, I have created an examples repository that includes Getting Started, Forms, Template Directives, Advanced, and Alpine sections.https://www.ortussolutions.com/blog/cbwire-examples 12/5/22 - Blog - Ben Nadel - I'm Beginning To Think That Much Of Programming Is Wildly SubjectiveFrom what I've seen and heard, a large portion of the programming community - myself often included - feels that much of what goes into programming is objectively good or bad. We all seem to have hills that we're willing to die on because we believe that said hills are objectively the right choice. Vim vs an IDE; tabs vs spaces; functional vs object oriented; relational databases vs document stores; single-file components vs separation of concerns; single-letter variables vs intuitive variables; ORM vs SQL; Go vs ColdFusion; Angular vs React; single-quotes vs double-quotes; idiomatic vs pragmatic; monoliths vs microservices; REST vs GraphQL; the list goes on and on ad infinitum.https://www.bennadel.com/blog/4363-im-beginning-to-think-that-much-of-programming-is-wildly-subjective.htm 12/1/22 - Blog - Brad Wood - Improving Lucee's QoQ Support Again- now 200% fasterTwo years ago, I published this post detailing how I had refactored the Query of Query support in Lucee to be much better and also much faster:https://www.codersrevolution.com/blog/improving-lucees-query-of-query-supportI removed the single-threaded HSQLDB callback for grouped/aggregate and distinct selects and tuned the performance. QoQ's are a bit of a polarizing feature in CFML. They've suffered in the past from poor support and poor performance which has caused a lot of people to avoid them. There are certainly places where queryMap(), queryFilter(), and queryReduce() are the best approach, but there are also times where you simply can't beat the readability and conciseness of an ordered, aggregated select. I know developers who tell me they never use "reduce" higher order functions because they are too confusing, but I've never met a developer who didn't understand "GROUP BY department"! https://www.codersrevolution.com/blog/improving-lucees-qoq-support-again-now-200-faster 11/29/22 - Blog - Charlie Arehart - ColdFusion Portal - Recordings of CF Summit Online sessions, finding them posted after each sessionInterested in finding the recordings of the Online version of the 2022 CF Summit?TLDR: recordings of the CF Summit Online are now being posted on the Adobe CF team Youtube channel, andwe can expect to see soon other places listing all the recordings for the event, as a single playlist.https://coldfusion.adobe.com/2022/11/recordings-of-cf-summit-online/ CFML JobsSeveral positions available on https://www.getcfmljobs.com/Listing over 34 ColdFusion positions from 23 companies across 21 locations in 5 Countries.Since August 1st.1 new jobs listed this weekFull-Time - Remote ColdFusion Developer at North Philadelphia, PA - United States Dec 01https://www.getcfmljobs.com/jobs/index.cfm/united-states/Remote-CFDeveloper/11538 Patreon Sponsored Job Announcement - Tomorrows GuidesTomorrows Guides is a fast paced leader in the UK care sector, catering for care seekers across three areas: Care Homes, Nurseries and Home Care. We are often called the Trip Advisor of the care sector. Our Product team consists of over 20 individuals across the UK working remotely to expand and improve our offering with regular expansion in teams year on year. We work with both Coldfuson 2021 and Node.js/React in the Azure cloud, while also using both MSSQL and MongoDB databases. Currently we are looking for Senior Coldfusion developers and Automation Testers with training paths to node.js available as well. We offer a wide variety of perks from our company wide £4k bonus scheme, and quarterly nights out with the whole company and the Product team to a 6% company pension contribution. Current Roles in detail All roles: https://www.tomorrows.co.uk/jobs.cfm Senior Cf Developer – UK Only | Remote | Permanent | Circa £60k - https://app.occupop.com/shared/job/senior-coldfusion-developer-5925b/- Minimum three years' experience with ColdFusion- Database design, normalisation and ability to write/understand complex queries using MSSQL Server 2019- Familiarity with Git- Flexible skillset covering a wide range of development Automation Test Engineer – UK Only | Remote | Permanent | Crica £40k - https://app.occupop.com/shared/job/automation-test-engineer-a6545/- Minimum three years experience with automated testing- Experience with automated testing tools such as selenium- Experience with API test tools such as Postman/Fiddler etc Benefits of both roles:- £4,000 per annum discretionary company bonus scheme- 25 days annual leave + bank holidays- 6% employer pension contribution- Access to free perks and discounts through Perkbox- Long Service Awards- Cycle to Work Scheme- Company and Team nights outOther Job Links Ortus Solutions https://www.ortussolutions.com/about-us/careers There is a jobs channel in the CFML slack team, and in the box team slack now too ForgeBox Module of the WeekOrtus PDF ToolsBy Ortus SolutionsThe Ortus PDF Lucee Extension adds to any Lucee engine the missing PDF capabilities you were longing for and enhancing some PDF capabilities as well. The extension contains several new CFML built-in tags and functions (coming soon) that will help you manipulate and work with PDF documents. You can read more about this extension here: https://www.ortussolutions.com/products/ortuspdf The following are the implemented tags that bring compatibility from Adobe ColdFusion to Lucee. You can see much more detailed information about these tags here: https://helpx.adobe.com/coldfusion/cfml-reference/coldfusion-tags/tags-p-q/cfpdfform.html cfpdfform - https://cfdocs.org/cfpdfform cfpdfformparam - https://cfdocs.org/cfpdfformparam https://www.forgebox.io/view/ortuspdf-extension VS Code Hint Tips and Tricks of the WeekVscode-petsPets for your VS CodePuts a small, bored cat, an enthusiastic dog, a feisty snake, a rubber duck, or Clippy in your code editor to boost productivity.https://marketplace.visualstudio.com/items?itemName=tonybaloney.vscode-pets Thank you to all of our Patreon SupportersThese individuals are personally supporting our open source initiatives to ensure the great toolings like CommandBox, ForgeBox, ColdBox, ContentBox, TestBox and all the other boxes keep getting the continuous development they need, and funds the cloud infrastructure at our community relies on like ForgeBox for our Package Management with CommandBox. You can support us on Patreon here https://www.patreon.com/ortussolutionsDon't forget, we have Annual Memberships, pay for the year and save 10% - great for businesses. Bronze Packages and up, now get a ForgeBox Pro and CFCasts subscriptions as a perk for their Patreon Subscription. All Patreon supporters have a Profile badge on the Community Website All Patreon supporters have their own Private Forum access on the Community Website All Patreon supporters have their own Private Channel access BoxTeam Slack Live Stream Access to streams like “Koding with the Kiwi + Friends” and Ortus Software Craftsmanship Book Club https://community.ortussolutions.com/ Patreons John Wilson - Synaptrix Tomorrows Guides Jordan Clark Gary Knight Mario Rodrigues Giancarlo Gomez David Belanger Dan Card Jeffry McGee - Sunstar Media Dean Maunder Nolan Erck Wil De Bruin Abdul Raheen Don Bellamy Joseph Lamoree Jonathan Perret Jan Jannek Laksma Tirtohadi Brian Ghidinelli - Hagerty MotorsportReg Carl Von Stetten Jeremy Adams Didier Lesnicki Matthew Clemente Scott Steinbeck - Agri Tracking Systems Daniel Garcia Ben Nadel Richard Herbet Brett DeLine Kai Koenig Charlie Arehart Jason Daiger Shawn Oden Ross Phillips Matthew Darby Edgardo Cabezas Patrick Flynn Stephany Monge (Monghee) Kevin Wright John Whish Peter Amiri Cavan Vannice John Nessim Tia You can see an up to date list of all sponsors on Ortus Solutions' Websitehttps://ortussolutions.com/about-us/sponsors Thanks everyone!!! ★ Support this podcast on Patreon ★
[00:03:33] We learn about a new Ruby version that came out with a CGI security fix. [00:04:30] Ruby 3.2.0 is supposed to come out at Christmas, there's a Preview 3 out and we hear about a few new features happening.[00:07:47] Chris tells us about some speed improvements with Regexp.[00:08:58] Andrew and Jason paired with Collin and other people, and he tells us what they did with a PR in the pay Gem.[00:12:25] Chris pulls up the Shopify Globe that shows sales per minute of people buying stuff all around the world.[00:14:17] We hear Chris and Collin did some payments things and refactoring stuff to get ready for Black Friday. [00:20:08] Andrew's tells us he's been learning Vim, but then stops using it and doesn't remember all the things.[00:21:39] There's a new file browser on GitHub and Chris and Andrew tells us about the changes.[00:23:20] Chris was testing a subscription and a tine thing happened that he hasn't seen happen ever. What is it? [00:26:19] Andrew explains routing issues he had at Podia. The guys chat about the RubyMoney library, Money, and Money-Rails Gems.[00:28:25] Jason explains how the Money Gem works and Chris tells us about the most important Gem he created a week ago.Panelists:Jason CharnesChris OliverAndrew MasonSponsor:HoneybadgerLinks:Jason Charnes TwitterChris Oliver TwitterAndrew Mason TwitterRuby 3.2.0 Preview ReleasedRubyMoney-MoneyRubyMoney-Money-RailsRuby Radar NewsletterRuby Radar TwitterRuby for All Podcast
In this episode, I was joined again by Joseph Woodward to geek out on Vim! Joe joined us on the last episode to talk about the Go programming language - and as we're both huge fans of Vim, we decided to stay on and record a second episode chatting about it!In it, we talk about both the Vim way of using the keyboard (Vim keybindings), and also Vim the editor and its plugin ecosystem.Joseph is a Software Engineer at Form3, speaker, and open-source contributor. Lover of Go, OSS, Neovim and distributed systems things.For a full list of show notes, or to add comments - please see the website here
A bióloga italiana Emanuela Evangelista trabalha no Brasil desde o ano 2000. Ela vive há mais de 10 anos na comunidade de Xixuaú, na divisa entre os estados de Amazonas e Roraima. Como presidente da organização italiana Amazônia Onlus, ela está na linha de frente da defesa ambiental e ajudou a criar a Reserva Extrativista Baixo Rio Branco Jauaperi. Nesta imensa área, a floresta e os habitantes estão protegidos. Gina Marques, correspondente da RFI em Roma A reportagem da RFI conversou com Emanuela Evangelista no Parque da Caffarella, em Roma. “Nossa organização se dedica à Amazônia brasileira com o intuito de preservar o [meio] ambiente e lutar por esse grande desafio de manter a floresta em pé. A gente faz isso trabalhando em regiões remotas distantes do desmatamento, longe de degradação, em áreas que são ainda de floresta primária intacta e que são habitadas por populações tradicionais. Nosso trabalho é de aliança, de união com as populações tradicionais”, diz ela. Ela explica que seu trabalho consiste em ampliar, junto com os habitantes, alternativas de renda. “Nosso objetivo é o desenvolvimento sustentável para que as pessoas possam manter esse precioso tesouro que elas têm, a floresta Amazônica, sua biodiversidade, sua cultura e também suas tradições.” Na avaliação de Evangelista, é preciso ter vontade política e econômica de preservar a Amazônia. A responsabilidade, na opinião da italiana, não deve ser só do Brasil, mas sim "do mundo". “Acreditamos que a falta de recursos econômicos esteja ligada à vontade política. Os órgãos institucionais foram, de alguma forma, enfraquecidos nos últimos anos, e não houve grande disponibilidade econômica para a Amazônia”, estima a pesquisadora. Ela ressalta que zerar o desmatamento é um desafio complexo, principalmente neste momento em que a taxa de destruição da floresta está muito elevada. Segundo Evangelista, o novo governo de Luiz Inácio Lula da Silva poderá inserir a proteção da Amazônia entre as prioridades. “Lula pode ter a vantagem de reabrir o diálogo com os países desenvolvidos para atrair ajuda internacional, que eu acredito ser fundamental por dois motivos: em primeiro lugar, porque a Amazônia é um bioma que fornece benefícios ao mundo inteiro. Em segundo lugar, porque boa parte do mundo, inclusive os países industrializados, são responsáveis e participam de alguma forma do desmatamento, da destruição, do que estamos fazendo à Amazônia”. Ela salienta que é necessário reconhecer a responsabilidade europeia e dos países desenvolvidos, e participar de forma ativa da proteção da Amazônia. “Não é possível continuar dizendo que é um bioma que oferece benefícios ao mundo inteiro, e deixar que caia nos ombros e no bolso do Brasil, exclusivamente, o custo da preservação e de proteção da floresta", argumenta. Difíceis condições de vida Mesmo com riquezas naturais inestimáveis, as condições de vida dos ribeirinhos e povos indígenas da Amazônia são difíceis. Muitas vezes faltam estruturas básicas necessárias, como escolas e hospitais. De acordo com a bióloga, “mais da metade das pessoas residentes na Amazônia vive abaixo da linha da pobreza. Ela constata que há uma necessidade de desenvolvimento econômico importante na região. "Os povos tradicionais vivem isolados das regiões onde existe trabalho e pagam o preço por esse isolamento", observa. "Por um lado é bom, porque se preservam os recursos naturais; mas, por outro lado, torna tudo muito complicado”, destaca a italiana. Ela cita o exemplo de um quebrador de castanha, que deve vender seu produto nos mercados que ficam distantes do local de colheita. “Além disso, se você quer que seus filhos estudem e continuem após o quinto ano, que é o que normalmente você encontra nessas comunidades remotas, é preciso se deslocar ou mandar seus filhos para a cidade", explica. As necessidades sanitárias também são importantes, assim como as de educação e geração de renda. "O isolamento dificulta a vida de alguma forma", afirma Emanuela Evangelista. Amor à primeira vista A italiana fez a sua primeira viagem ao Brasil no ano 2000 para trabalhar como pesquisadora em um projeto do Instituto Nacional de Pesquisas da Amazônia (Inpa), com sede em Manaus. Como bióloga, ela é especialista em mamíferos aquáticos. Segundo Evangelista, a Amazônia foi "paixão à primeira vista". “Vim ao Brasil para estudar uma espécie de mamífero que é chamada Lontra Gigante, que em português a gente chama de Ariranha. Aí foi amor à primeira vista, né? Eu me apaixonei pela biodiversidade da floresta, pela magia das águas. Essas regiões remotas da Amazônia são únicas. É muito difícil para quem não nasceu no Brasil imaginar tanta beleza.” Sabedoria dos povos nativos A bióloga alerta que muitos pesquisadores internacionais não reconhecem a importância da sabedoria dos povos nativos. Segundo ela, a destruição da floresta poderá acarretar a perda de conhecimentos ancestrais das populações locais. “O conhecimento dos povos nativos não recebe o justo valor nos países industrializados. Muitas vezes um cientista anuncia ao mundo a descoberta de uma nova espécie, e um ribeirinho diz que ela já era conhecida havia muito tempo”, ressalta. Reserva Extrativista Baixo Rio Branco Jauaperi Por iniciativa da Amazônia Onlus e de outras organizações da sociedade civil, a Reserva Extrativista Baixo Rio Branco Jauaperi foi criada em junho de 2018. O território fica na divisa entre os estados de Roraima e Amazonas. São quase 600 mil hectares de floresta, 14 comunidades e 1.500 moradores protegidos para sempre. Mas a luta pelo reconhecimento oficial como área de preservação durou quase duas décadas. Em 2009, o Ministério do Meio Ambiente emitiu uma avaliação favorável à criação da área para proteger as comunidades da região “de uma série de ações criminosas” feitas por invasores “que buscam a região para a prática de pesca e caça predatórias e grilagem de terras públicas”. De acordo com o texto, a reserva, localizada nos municípios de Rorainópolis (RR) e de Novo Airão (AM), vai “proteger os meios de vida e garantir a conservação e a utilização sustentável dos recursos naturais renováveis utilizados pelas comunidades tradicionais”. O espaço natural foi então dividido em três áreas. A primeira delas constitui uma zona de preservação, na qual não é permitida a ocupação nem a utilização direta ou indireta dos recursos naturais ali presentes. Uma segunda zona de uso restrito serve de moradia para as comunidades tradicionais e a tribo indígena Waimiri-Atroari, que podem utilizar a área. A terceira parte da reserva é voltada para atividades de recreação e turismo. A ocupação e o uso direto de recursos naturais, nesses casos, são definidas em um plano de manejo. O Instituto Chico Mendes administra toda a reserva e é responsável por sua proteção. A ONG Amazônia Onlus trabalha há mais de 20 anos na região do Jauaperi. "A organização contribuiu e participou de uma luta muito importante que foi, em primeiro lugar, a luta do povo residente da região, da população ribeirinha que mora nessa região, porque a demanda partiu deles”, destaca a bióloga italiana. “Conseguimos realizar o sonho da população, que era de criar uma área protegida de forma legal e robusta", acrescenta Evangelista. Segundo ela, a Reserva Extrativista do Baixo Rio Branco Jauaperi permite às populações tradicionais de continuar a viver na região e usar todos os recursos locais de forma sustentável. "É uma fórmula muito interessante, porque protege ao mesmo tempo a floresta, a cultura e as tradições das populações residentes”, explica. Emanuela Evangelista recebeu vários prêmios internacionais pela defesa da Amazônia. Em 2020, ela foi condecorada pelo presidente italiano, Sergio Mattarella, com a medalha de Oficial da Ordem do Mérito da República Italiana.
ITRC's Vapor Intrusion Mitigation training is a series of eight (8) modules, presented over two sessions. The Vapor Intrusion Mitigation training series provides an overview of vapor intrusion mitigation and presenting information from the ITRC fact sheets, technology information sheets, and checklists (VIM-1, 2021): Session 1:Introduction & Overview of Vapor Intrusion Mitigation Training TeamConceptual Site Models for Vapor Intrusion MitigationPublic Outreach During Vapor Intrusion MitigationRapid Response & Ventilation for Vapor Intrusion MitigationRemediation & Institutional Controls Session 2:Active Mitigation ApproachesPassive Mitigation ApproachesSystem Verification, OM&M, and Exit Strategies When certain contaminants or hazardous substances are released into the soil or groundwater, they may volatilize into soil gas. Vapor intrusion (VI) occurs when these vapors migrate up into overlying buildings and contaminate indoor air. ITRC has previously released guidance documents focused on VI, including the "Vapor Intrusion Pathway: A Practical Guidance" (VI-1, 2007) and "Petroleum Vapor Intrusion: Fundamentals of Screening, Investigation, and Management" (PVI, 2014). However, ITRC has received multiple requests for additional details and training on mitigation strategies for addressing this exposure pathway. The ITRC Vapor Intrusion Mitigation Team (VIMT) created ten fact sheets, 16 technology information sheets, and 4 checklists with the goal of assisting regulators during review of vapor intrusion mitigation systems, and helping contractors understand the essential elements of planning, design, implementation, and operation, maintenance and monitoring (OM&M) of mitigation systems. After the Vapor Intrusion Mitigation series, you should understand:How to locate and utilize the VIM-1 fact sheets, technology information sheets, and checklistsThe importance of a VI mitigation conceptual site modelHow public outreach for VI mitigation differs from other environmental mattersWhen to implement rapid response for vapor intrusion and applicable methodologies The differences between remediation, mitigation, and institutional controlsAvailable technologies for active and passive mitigation, and design considerations for various approachesHow/when/why different mitigation technologies are appropriateHow to verify mitigation system success, address underperformance, and develop a plan for discontinuing a mitigation system We encourage you to use the ITRC Vapor Intrusion Mitigation work products (VIM-1) and these training modules to learn about vapor intrusion mitigation and how you can apply these best practices to improve decision-making at your sites. For regulators and other government agency staff, this understanding of vapor intrusion mitigation can be incorporated into your own programs. While the training makes every effort to keep the information accessible to a wide audience, it is assumed that the participants will have some basic technical understanding of chemistry, environmental sciences, and risk assessment. As with other emerging contaminants, our understanding of vapor intrusion mitigation continues to advance. This training provides the participants with information on areas where the science is evolving and where uncertainty persists. To view this archive online or download the slides associated with this seminar, please visit http://www.clu-in.org/conf/itrc/VIM-1_111522/
Colin Bartlett's 50 useful Vim commands, Jeremey Utley on why your first ideas aren't always the best, Emanuele Rocca's pets configuration management project, our Kaizen shirts are now on sale & Arun Venkatesen makes a microsite for infinite canvas tools.
Colin Bartlett's 50 useful Vim commands, Jeremey Utley on why your first ideas aren't always the best, Emanuele Rocca's pets configuration management project, our Kaizen shirts are now on sale & Arun Venkatesen makes a microsite for infinite canvas tools.
ITRC's Vapor Intrusion Mitigation training is a series of eight (8) modules, presented over two sessions. The Vapor Intrusion Mitigation training series provides an overview of vapor intrusion mitigation and presenting information from the ITRC fact sheets, technology information sheets, and checklists (VIM-1, 2021): Session 1:Introduction & Overview of Vapor Intrusion Mitigation Training TeamConceptual Site Models for Vapor Intrusion MitigationPublic Outreach During Vapor Intrusion MitigationRapid Response & Ventilation for Vapor Intrusion MitigationRemediation & Institutional Controls Session 2:Active Mitigation ApproachesPassive Mitigation ApproachesSystem Verification, OM&M, and Exit Strategies When certain contaminants or hazardous substances are released into the soil or groundwater, they may volatilize into soil gas. Vapor intrusion (VI) occurs when these vapors migrate up into overlying buildings and contaminate indoor air. ITRC has previously released guidance documents focused on VI, including the "Vapor Intrusion Pathway: A Practical Guidance" (VI-1, 2007) and "Petroleum Vapor Intrusion: Fundamentals of Screening, Investigation, and Management" (PVI, 2014). However, ITRC has received multiple requests for additional details and training on mitigation strategies for addressing this exposure pathway. The ITRC Vapor Intrusion Mitigation Team (VIMT) created ten fact sheets, 16 technology information sheets, and 4 checklists with the goal of assisting regulators during review of vapor intrusion mitigation systems, and helping contractors understand the essential elements of planning, design, implementation, and operation, maintenance and monitoring (OM&M) of mitigation systems. After the Vapor Intrusion Mitigation series, you should understand:How to locate and utilize the VIM-1 fact sheets, technology information sheets, and checklistsThe importance of a VI mitigation conceptual site modelHow public outreach for VI mitigation differs from other environmental mattersWhen to implement rapid response for vapor intrusion and applicable methodologies The differences between remediation, mitigation, and institutional controlsAvailable technologies for active and passive mitigation, and design considerations for various approachesHow/when/why different mitigation technologies are appropriateHow to verify mitigation system success, address underperformance, and develop a plan for discontinuing a mitigation system We encourage you to use the ITRC Vapor Intrusion Mitigation work products (VIM-1) and these training modules to learn about vapor intrusion mitigation and how you can apply these best practices to improve decision-making at your sites. For regulators and other government agency staff, this understanding of vapor intrusion mitigation can be incorporated into your own programs. While the training makes every effort to keep the information accessible to a wide audience, it is assumed that the participants will have some basic technical understanding of chemistry, environmental sciences, and risk assessment. As with other emerging contaminants, our understanding of vapor intrusion mitigation continues to advance. This training provides the participants with information on areas where the science is evolving and where uncertainty persists. To view this archive online or download the slides associated with this seminar, please visit http://www.clu-in.org/conf/itrc/VIM-1_110322/
Welcome to another episode of Freedom In Five Minutes! I am your host Dean Soto. Your man of systems helping you create more freedom and profit than they ever thought possible. That is why we have Steph Hilfer on the show – the lady full of Vim and Vigor! Steph Hilfer is the founder and Chief Creative Director of https://getviim.com—a marketing consulting firm that helps businesses discover their brand. She can visualize what doesn't yet exist and bring it to life... and boy it's alive!
[00:00:39] Go Rails and Discord went crazy for Go Rails this morning, Collin talks about putting out the fires. This reminds Andrew of the issue he had with his dotfiles once. Admit it, we've all been there before! [00:05:31] Collin is enjoying his minimal config setup lately. Andrew talks about how he likes using Znap! to help him with his dot files and reduce his shell's startup time.[00:06:43] Andrew talks more about minimalizing his setup by getting rid of aliases he's not using every couple months, as well as plugins. It's hard to stop hoarding those plugins! [00:07:13] Collin really only uses Vim but has a lot of theme plugins, and the plugins he does have tend to be from Tim Pope. [00:08:26] Both Collin and Andrew dive deeper into aliases. Collin, he's runs his pretty lean and just uses some mnemonics for Rails commands. Andrew did a lot of house cleaning and now just has a handful for very basic things for Rails and Git.[00:14:06] Andrew discusses functions and thinning the herd. One that he does love is the GitHub labels he made. Andrew talks about how great the GitHub CLI is, and if you haven't checked it out in a while, PLEASE DO.[00:17:59] Andrew recently switched his terminal to Warp, a Rust based terminal. Find out why he's almost as excited about Warp as he is when DoorDash shows up with Chick-fil-a. [00:19:48] The boys talk tmux and Andrew tells us the NUMBER 1 reason why he uses it. Tell us if you've had this happen. Ha! And have we told you how much Andrew loves Warp? He tells us more things it can do to make your life easier.[00:25:39] Collin moved to Vim about six months ago and talks about making the move over to it. Andrew tried it in the past, and he thinks it's time to board the Vim train again. Like he says, and this applies to anything new you bring into your workflow, “You just need to dive in, take your time, and you're gonna be moving slow at first.”[00:28:11] The whole Vim talk evolves into remapping your keyboard to prevent your fingers from contorting. [00:34:49] After Andrew talks about some of his go to VSCode plugins, Collin wants to know more about his VSCode setup and layout. Andrew talks more about some of the plugins he likes, like Customize UI, and how he likes to keep his VSCode looking clean.[00:36:31] Let's talk monitor setups: Multiple, single, full screen. Find out Collin and Andrew's setup. Collin shares a keyboard shortcut he uses to manage his windows.[00:40:00] One last thing…whether you prefer Alfred or Raycast, it's time to replace your Spotlight. Andrew talks about the benefits it has in his workflow and Collin, who doesn't need another tool, is intrigued. [00:43:23] So, let's summarize it for you. If you're new to coding…bookmark this spot. Learn it, know it, live it. Panelist:Andrew MasonGuest/Panelist:Collin JilbertSponsor: HoneybadgerLinks:Jason Charnes TwitterChris Oliver TwitterAndrew Mason TwitterCollin Jilbert TwitterZnap!VimtpopewarptmuxRails Fast NavRails Flip-FlopMake VSCode Awesome E-BookCustomize UIBetterTouchToolAlfredRaycast
Hace ya un año que te hablé de que había decidido migrar de Vim a Neovim, y hoy, después del tiempo transcurrido, ya te puedo decir, que ha sido una de las mejores decisiones que he tomado en los últimos tiempos. Sin lugar a dudas. Sabes, que he cambiado de distribución, de entorno de escritorio, sin embargo, lo que realmente ha supuesto un antes y un después ha sido Neovim. Así, en este nuevo episodio del podcast te quiero hablar sobre mi experiencia después de un año de Neovim, y cuales han sido mis sensaciones. --- Más información en las notas del podcast sobre Un año de Neovim. Mis sensaciones.
Julie Guttormson is a trainer, community leader, baton twirler, entrepreneur, stroke survivor, former news anchor, the founder of VIM, and the new non-profit Rock on Society. VIM is a fitness and training studio that specializes in group classes. The Rock on Society is a dynamic experience and fundraising non-profit that provides aid for stroke and cardiac patients. In this episode, Julie shares why her life was flipped upside down at the age of 31 and how it led her to start the VIM. Stephan and Julie also chat about recovery, authentic fitness, following your passions, re-branding, the power of positivity, and supporting your community. Find out more about Julie and VIM athttps://www.vimstrong.com/ ( VIMstrong.com) Learn more about the new non-profit Rock On Society athttp://rockonsociety.org/ ( RockOnSociety.org) Follow VIM on Instagramhttps://www.instagram.com/vimstrong/?hl=en ( @vimstrong) This week's episode is sponsored in part by Teton County Solid Waste and Recycling. Fall Clean Up is around the corner for residential yard waste collection, beginning the week of October 31st. For more details about this year's Fall Clean Up and Pumpkin Smash event visithttps://tetoncountywy.gov/ ( TetonCountyWY.gov). More athttps://www.instagram.com/roadtozerowaste.jh ( @RoadToZeroWaste.JH) Support also comes from The Jackson Hole Marketplace. The Deli at Jackson Hole Marketplace offers ready-made soups, sandwiches, breakfast burritos, and hot lunch specials. More athttps://jhmarketplace.com/ ( JHMarketplace.com) Want to be a guest on The Jackson Hole Connection? Email us at firstname.lastname@example.org. Marketing and editing support byhttps://www.linkedin.com/in/michaelmoeri ( Michael Moeri) (http://michaelmoeri.com/ (michaelmoeri.com))
На продуктивность можно смотреть по-разному – через призму количества закрытых задач, достигнутых результатов, собственного wellbeing. В этом выпуске мы с Кириллом Мокевниным обсуждаем продуктивность владения инструментами разработки, достижение которой позволит вам увереннее входить в состояние потока и дольше в нем оставаться. Слепая печать, горячие клавиши, терминал, Vim и куча других способов оптимизировать свою рутину. «Золотое Яблоко» - №1 по выручке среди бьюти e-commerce России. А у приложения более 14 млн скачиваний. Ищем аналитиков 1С, системных аналитиков и администраторов, инженеров по тестированию, ведущих разработчиков BI, UXUI дизайнеров и контент-менеджеров. Резюме присылайте на email@example.com Поддержи лучший подкаст про IT: www.patreon.com/podlodka Также ждем вас, ваши лайки, репосты и комменты в мессенджерах и соцсетях! Telegram-чат: https://t.me/podlodka Telegram-канал: https://t.me/podlodkanews Страница в Facebook: www.facebook.com/podlodkacast/ Twitter-аккаунт: https://twitter.com/PodlodkaPodcast Ведущие в выпуске: Стас Цыганов, Егор Толстой Полезные ссылки: Тред Кирилла про эффективность разработки https://twitter.com/mokevnin/status/1566110250348023814 Тред Кирилла про Vim https://twitter.com/mokevnin/status/1567594899859546115 Гайд по обучению слепой печати https://guides.hexlet.io/ru/typing/ Подробная статья про Vim https://guides.hexlet.io/ru/vim/ Репозиторий с dotfiles Кирилла https://github.com/mokevnin/dotfiles Менеджеры версий https://guides.hexlet.io/ru/version-managers/
In this supper club episode of Syntax, Wes and Scott talk with TJ DeVries about his work on Neovim, programming in Lua, the benefits of RPC, live streaming your work day, and PDE. FireHydrant - Sponsor Incidents are hard. Managing them shouldn't be. FireHydrant makes it easy for anyone in your organization to respond to incidents efficiently and consistently. Intuitive, guided workflows provide turn-by-turn navigation for incident response, while thoughtful prompts and powerful integrations capture all of your incident data to drive useful retros and actionable analytics. Hasura - Sponsor With Hasura, you can get a fully managed, production-ready GraphQL API as a service to help you build modern apps faster. You can get started for free in 30 seconds, or if you want to try out the Standard tier for zero cost, use the code “TryHasura” at this link: hasura.info. We've also got an amazing selection of GraphQL tutorials at hasura.io/learn. Gatsby - Sponsor Today's episode was sponsored by Gatsby, the fastest frontend for the headless web. Gatsby is the framework of choice for content-rich sites backed by a headless CMS as its GraphQL data layer makes it straightforward to source website content from anywhere. Gatsby's opinionated, React-based framework makes the hardest parts of building a performant website simpler. Visit Gatsby.dev/Syntax to get your first Gatsby site up in minutes and experience the speed. ⚡️ Show Notes 00:36 Welcome 01:13 Guest introduction Teej_dv on Twitter TJ Devries Teej_DV on Twitch TJ on YouTube Telescope on GitHub Neovim on GitHub Syntax 508 with The Primeagan 03:15 The difference between Vim and Neovim 06:14 Why did you choose to write in Lua? Lua Luajit 13:26 What is adapative UI in Neovim? 17:38 Lunarvim and alternatives Fvim LunarVim 20:24 Personalized development environment PDE PDE Firenvim 22:40 Sponsor: FireHydrant 23:21 Benefits of RPC 30:34 Is working on Neovim your job? Sponsor Neovim Sourcegraph 31:30 What is your approach to streaming? 34:11 Did you go to school for computer science? 39:12 Sponsor: Gatsby 39:46 Supper Club questions System76 Pop Dactyl Manuform Keyboard Kit Jetbrains Mono 49:52 Sponsor: Hasura 50:47 SIIIIICK ××× PIIIICKS ××× Tweet us your tasty treats Scott's Instagram LevelUpTutorials Instagram Wes' Instagram Wes' Twitter Wes' Facebook Scott's Twitter Make sure to include @SyntaxFM in your tweets
Vim connects data from health insurers and other sources into existing electronic medical record workflows, helping doctors make better cost and quality decisions during patient visits. The company is backed by tens of millions from Optum, Walgreens and other industry heavyweights so they're clearly doing something right.It's not the most obvious path for someone who grew up in Israel and served in the special forces there before founding telecoms, gaming, real estate and education. But in this episode, CEO Oron Afek puts all the pieces together.
Hacker Public Radio New Years Eve Show 2021 - 2022 Part 5 What is a Recliner Chair https://en.wikipedia.org/wiki/Recliner Shillelagh https://en.wikipedia.org/wiki/Shillelagh Goedendag https://www.military-history.org/feature/medieval/the-goedendag-medieval-weaponry.htm https://en.wikipedia.org/wiki/Goedendag Flail https://medievalbritain.com/type/medieval-life/weapons/medieval-flail/ https://en.wikipedia.org/wiki/Flail_(weapon) http://myarmoury.com/talk/viewtopic.12645.html That '70s Show https://www.imdb.com/title/tt0165598/ https://en.wikipedia.org/wiki/That_%2770s_Show Tommy Chong https://tommychong.com/ https://www.imdb.com/name/nm0001045/ That '80s Show https://www.imdb.com/title/tt0305472/ https://en.wikipedia.org/wiki/That_%2780s_Show The Goldbergs https://www.imdb.com/title/tt2712740/ https://en.wikipedia.org/wiki/The_Goldbergs_(2013_TV_series) Leverage - Redemption https://www.imdb.com/title/tt12197698/ https://en.wikipedia.org/wiki/Leverage:_Redemption The Librarians https://www.imdb.com/title/tt3663490/ https://en.wikipedia.org/wiki/The_Librarians_(2014_TV_series) Warehouse 13 https://warehouse13.fandom.com/wiki/Warehouse_13_(Series) https://www.imdb.com/title/tt1132290/ https://en.wikipedia.org/wiki/Warehouse_13 The Librarian (TV Movies) https://en.wikipedia.org/wiki/The_Librarian_(franchise) https://en.wikipedia.org/wiki/The_Librarian:_Quest_for_the_Spear https://en.wikipedia.org/wiki/The_Librarian:_Return_to_King_Solomon%27s_Mines https://en.wikipedia.org/wiki/The_Librarian:_Curse_of_the_Judas_Chalice Falling Skies https://fallingskies.fandom.com/wiki/Falling_Skies_Wiki https://www.imdb.com/title/tt1462059/ https://en.wikipedia.org/wiki/Falling_Skies Sanctuary https://sanctuary.fandom.com/wiki/Sanctuary https://en.wikipedia.org/wiki/Sanctuary_(TV_series) https://www.imdb.com/title/tt0965394/ How I Met Your Mother https://how-i-met-your-mother.fandom.com/wiki/How_I_Met_Your_Mother https://www.imdb.com/title/tt0460649/ https://en.wikipedia.org/wiki/How_I_Met_Your_Mother Doogie Houser, MD https://en.wikipedia.org/wiki/Doogie_Howser,_M.D. https://www.imdb.com/title/tt0096569/ The Wonder Years https://en.wikipedia.org/wiki/The_Wonder_Years https://www.imdb.com/title/tt0094582/ Defiance https://defiance.fandom.com/wiki/Defiance_(TV) https://www.imdb.com/title/tt1034303/ https://en.wikipedia.org/wiki/Defiance_(TV_series) Firefly https://firefly.fandom.com/wiki/Firefly https://en.wikipedia.org/wiki/Firefly_(TV_series) https://www.imdb.com/title/tt0303461/ KillJoys https://killjoys.fandom.com/wiki/Killjoys https://www.imdb.com/title/tt3952222/ https://en.wikipedia.org/wiki/Killjoys Cowboy BeBop https://cowboybebop.fandom.com/wiki/Main_Page https://en.wikipedia.org/wiki/Cowboy_Bebop https://www.imdb.com/title/tt0213338/ The Orville https://en.wikipedia.org/wiki/The_Orville https://www.imdb.com/title/tt5691552/ Star Trek Enterprise https://memory-alpha.fandom.com/wiki/Star_Trek:_Enterprise https://www.imdb.com/title/tt0244365/ https://en.wikipedia.org/wiki/Star_Trek:_Enterprise Eureka https://eureka.fandom.com/wiki/Eureka_(TV_series) https://www.imdb.com/title/tt0796264/ https://en.wikipedia.org/wiki/Eureka_(American_TV_series) Supernatural https://supernatural.fandom.com/wiki/Supernatural_Wiki https://www.imdb.com/title/tt0460681/ https://en.wikipedia.org/wiki/Supernatural_(American_TV_series) Project Hail Mary (book) https://en.wikipedia.org/wiki/Project_Hail_Mary SETI - The Search For Extraterrestrial Intelligence https://www.seti.org/ https://en.wikipedia.org/wiki/Search_for_extraterrestrial_intelligence https://setiathome.berkeley.edu/ Red Dwarf https://reddwarf.co.uk/ https://reddwarf.fandom.com/wiki/Red_Dwarf https://en.wikipedia.org/wiki/Red_Dwarf Farscape https://farscape.fandom.com/wiki/Farscape_Encyclopedia_Project:Main_Page https://www.imdb.com/title/tt0187636/ https://en.wikipedia.org/wiki/Farscape Farscape: The Peacekeeper Wars https://www.imdb.com/title/tt0387736/ https://en.wikipedia.org/wiki/Farscape:_The_Peacekeeper_Wars Deep Space 9 https://www.imdb.com/title/tt0106145/ https://en.wikipedia.org/wiki/Star_Trek:_Deep_Space_Nine https://memory-alpha.fandom.com/wiki/Star_Trek:_Deep_Space_Nine Torchwood https://tardis.fandom.com/wiki/Torchwood_(series) https://www.imdb.com/title/tt0485301/ https://en.wikipedia.org/wiki/Torchwood Robert Murray Smith - Battery Tech Youtube Channel (Bromine Fusion Reactor?) https://www.youtube.com/c/RobertMurraySmith Californication https://www.imdb.com/title/tt0904208/ https://en.wikipedia.org/wiki/Californication_(TV_series) Mister Robot https://mrrobot.fandom.com/wiki/Mr._Robot https://www.imdb.com/title/tt4158110/ https://en.wikipedia.org/wiki/Mr._Robot American Gods (book and TV series) https://americangods.fandom.com/wiki/American_Gods_Wiki https://en.wikipedia.org/wiki/American_Gods_(TV_series) https://www.imdb.com/title/tt1898069/ https://en.wikipedia.org/wiki/American_Gods https://www.neilgaiman.com/works/Books/American+Gods/ Neil Gaiman https://www.neilgaiman.com/ https://journal.neilgaiman.com/ https://www.mousecircus.com/ Good Omens (book and TV series) https://www.imdb.com/title/tt1869454/ https://en.wikipedia.org/wiki/Good_Omens_(TV_series) https://www.neilgaiman.com/works/Books/Good+Omens/ https://www.terrypratchettbooks.com/books/good-omens/ The Pretender https://pretender.fandom.com/wiki/The_Pretender https://www.imdb.com/title/tt0115320/ https://en.wikipedia.org/wiki/The_Pretender_(TV_series) Parker Lewis Can't Loose https://en.wikipedia.org/wiki/Parker_Lewis_Can%27t_Lose https://www.imdb.com/title/tt0098888/ Ferris Bueller's Day Off https://www.imdb.com/title/tt0091042/ https://en.wikipedia.org/wiki/Ferris_Bueller%27s_Day_Off https://www.inverse.com/culture/ferris-buellers-day-off-cameron-red-jersey Rock and Roll High School Forever https://www.imdb.com/title/tt0100504/ https://en.wikipedia.org/wiki/Rock_%27n%27_Roll_High_School_Forever Inspector Gadget https://www.imdb.com/title/tt0085033/ https://www.imdb.com/title/tt3910690/ https://en.wikipedia.org/wiki/Inspector_Gadget_(1983_TV_series) Into The Badlands https://www.imdb.com/title/tt3865236/ https://en.wikipedia.org/wiki/Into_the_Badlands_(TV_series) Journey To The West https://en.wikipedia.org/wiki/Journey_to_the_West Dark Crystal - Age Of Resistance (TV Show) https://www.imdb.com/title/tt6905542/ https://en.wikipedia.org/wiki/The_Dark_Crystal:_Age_of_Resistance https://www.syfy.com/syfy-wire/dark-crystal-age-of-resistance-netflix-lisa-henson-whats-next Night Court https://www.imdb.com/title/tt0086770/ https://en.wikipedia.org/wiki/Night_Court PBS https://www.pbs.org/ https://en.wikipedia.org/wiki/PBS Metal Hurlant Chronicles https://www.imdb.com/title/tt1629348/ https://en.wikipedia.org/wiki/M%C3%A9tal_Hurlant_Chronicles Metal Hurlant (comic/magazine) https://en.wikipedia.org/wiki/M%C3%A9tal_hurlant https://www.openculture.com/2017/08/metal-hurlant.html Heavy Metal Magazine https://www.heavymetal.com/ http://www.heavymetalmagazinefanpage.com/index.html https://en.wikipedia.org/wiki/Heavy_Metal_(magazine) Heavy Metal (movie) https://heavymetalmedia.fandom.com/wiki/Heavy_Metal_1981 https://www.imdb.com/title/tt0082509/ https://en.wikipedia.org/wiki/Heavy_Metal_(film) Total Recall 2070 (TV Show) https://www.imdb.com/title/tt0159920/ https://en.wikipedia.org/wiki/Total_Recall_2070 Sapphire and Steele https://www.imdb.com/title/tt0078682/ https://en.wikipedia.org/wiki/Sapphire_%26_Steel Sapphire and Steel Big Finish audio drama https://en.wikipedia.org/wiki/The_Mystery_of_the_Missing_Hour Dinosaucers https://www.imdb.com/title/tt0213341/ https://en.wikipedia.org/wiki/Dinosaucers https://dinosaucers.fandom.com/wiki/Dinosaucers Super Ted https://www.imdb.com/title/tt0085096/ https://en.wikipedia.org/wiki/SuperTed Bravestarr https://hero.fandom.com/wiki/BraveStarr https://bravestarr.fandom.com/wiki/Bravestarr_Wiki https://en.wikipedia.org/wiki/BraveStarr https://www.imdb.com/title/tt0127471/ Denver the Last Dinosaur https://zagtoon.fandom.com/wiki/Denver_the_Last_Dinosaur https://www.imdb.com/title/tt0190178/ https://en.wikipedia.org/wiki/Denver,_the_Last_Dinosaur Mummies Alive! https://en.wikipedia.org/wiki/Mummies_Alive! https://www.imdb.com/title/tt0125633/ https://youtu.be/AO-qRSL9nng SWAT Kats: The Radical Squadron https://90scartoons.fandom.com/wiki/SWAT_Kats:_The_Radical_Squadron https://www.imdb.com/title/tt0126173/ https://en.wikipedia.org/wiki/SWAT_Kats:_The_Radical_Squadron https://www.kickstarter.com/projects/1820796125/swat-kats-revolution (Kickstarter to bring the series back) How To Train Your Dragon https://www.dreamworks.com/how-to-train-your-dragon https://www.imdb.com/title/tt0892769/ https://www.imdb.com/title/tt1646971/ https://www.imdb.com/title/tt2386490/ https://en.wikipedia.org/wiki/How_to_Train_Your_Dragon#How_to_Train_Your_Dragon_(2010) https://en.wikipedia.org/wiki/How_to_Train_Your_Dragon_2 https://en.wikipedia.org/wiki/How_to_Train_Your_Dragon:_The_Hidden_World https://www.polygon.com/animation-cartoons/22724287/how-to-train-your-dragon-tv-show-hulu-peacock-modern-day Dungeons & Dragons Cartoon https://www.imdb.com/title/tt0085011/ https://en.wikipedia.org/wiki/Dungeons_%26_Dragons_(TV_series) https://movieweb.com/dungeons-and-dragons-80s-animated-series/ https://www.tor.com/2022/01/11/revisiting-the-dungeons-dragons-animated-series/ https://boingboing.net/2021/07/10/fans-animate-unfinished-last-episode-of-dungeons-and-dragons-cartoon.html https://www.thegamer.com/dungeons-dragons-cartoon-facts/ https://dungeonsdragons.fandom.com/wiki/Dungeons_%26_Dragons_(TV_series) https://en.wikiquote.org/wiki/Dungeons_%26_Dragons_(TV_series) Chip and Dale Rescue Rangers (TV cartoon & Movie) https://www.imdb.com/title/tt0096557/ https://youtu.be/Y5feVNIkX-I https://disney.fandom.com/wiki/Chip_%27n_Dale_Rescue_Rangers_(film) https://www.imdb.com/title/tt3513500/ https://en.wikipedia.org/wiki/Chip_%27n_Dale:_Rescue_Rangers_(film) Dark Wing Duck https://disney.fandom.com/wiki/Darkwing_Duck https://www.imdb.com/title/tt0101076/ https://en.wikipedia.org/wiki/Darkwing_Duck https://variety.com/2020/tv/news/darkwing-duck-reboot-disney-plus-1234830283/ Tale Spin https://disney.fandom.com/wiki/TaleSpin https://en.wikipedia.org/wiki/TaleSpin https://www.imdb.com/title/tt0098924/ The Octonauts https://www.imdb.com/title/tt1710177/ https://www.bbc.co.uk/iplayer/episodes/b00xhyjf/octonauts https://en.wikipedia.org/wiki/Octonauts Aquanauts https://www.imdb.com/title/tt0053481/ https://www.imdb.com/title/tt0257292/ https://en.wikipedia.org/wiki/The_Aquanauts Woody Woodpecker https://en.wikipedia.org/wiki/The_Woody_Woodpecker_Show https://unitedparamountnetworkupn.fandom.com/wiki/The_Woody_Woodpecker_Show https://youtu.be/Q4uIdPOpen8 Donald Duck Gets Discharged from the Military https://www.portablepress.com/blog/2017/05/donald-duck-trivia/ GizmoDuck https://scrooge-mcduck.fandom.com/wiki/Gizmoduck Donald Duck has PTSD https://cartoonoveranalyzations.wordpress.com/2009/02/20/diagnosis-donald-duck-suffers-from-ptsd/ https://youtu.be/ehy7Mq7SP80 Voltron https://www.imdb.com/title/tt5580664/ https://en.wikipedia.org/wiki/Voltron https://voltron.com/ Rin Tin Tin / Adventures of Tin Tin https://en.wikipedia.org/wiki/Rin_Tin_Tin https://en.wikipedia.org/wiki/The_Adventures_of_Rin_Tin_Tin https://www.imdb.com/name/nm0863833/ https://www.imdb.com/title/tt0046576/ https://americacomesalive.com/the-story-of-rin-tin-tin-2/ Heinz 57 https://en.wikipedia.org/wiki/Heinz_57 Winnie The Pooh https://disney.fandom.com/wiki/Winnie_the_Pooh https://www.smithsonianmag.com/arts-culture/winnie-pooh-became-household-bear-180967090/ https://www.yahoo.com/lifestyle/upcoming-film-winnie-pooh-blood-140045130.html Furries https://en.wikipedia.org/wiki/Furry_fandom Teen Wolf https://www.imdb.com/title/tt0090142/ The Goonies https://goonies.fandom.com/wiki/The_Goonies_(film) https://www.imdb.com/title/tt0089218/ https://en.wikipedia.org/wiki/The_Goonies Magic The Gathering - Innistrad https://mtg.fandom.com/wiki/Innistrad_(plane) Galaxy S6 Phone https://www.gsmarena.com/samsung_galaxy_s6-6849.php Lineage OS https://lineageos.org/ Ubports https://ubports.com/ Tony is enjoying his Juno Linux PC - Brutus 5000 https://junocomputers.com/product/brutus-5000-v2/ Boxes (Linux Virtual Machine application) https://help.gnome.org/users/gnome-boxes/stable/ Haskell https://www.haskell.org/ Rooibos Tea https://www.healthline.com/nutrition/rooibos-tea-benefits https://en.wikipedia.org/wiki/Rooibos IPFS https://ipfs.io/ https://en.wikipedia.org/wiki/InterPlanetary_File_System https://medium.com/@ConsenSys/an-introduction-to-ipfs-9bba4860abd0 Arc Wedling https://www.twi-global.com/technical-knowledge/faqs/what-is-arc-welding https://weldguru.com/what-is-arc-welding/ https://en.wikipedia.org/wiki/Arc_welding 6011 Stick Welding Rods https://weldingtroop.com/what-is-6011-welding-rod-used-for/ Zinc https://www.rsc.org/periodic-table/element/30/zinc https://en.wikipedia.org/wiki/Zinc Zamak https://en.wikipedia.org/wiki/Zamak https://decoprod.com/design-support/zamak/ Biodiesel https://en.wikipedia.org/wiki/Biodiesel https://www.biodiesel.org/ Boats with Underwater Wing (Hydrofoils?) http://www.hydrofoil.org/history.html https://en.wikipedia.org/wiki/Hydrofoil https://web.mit.edu/2.972/www/reports/hydrofoil/hydrofoil.html Cardano https://cardano.org/ Plutus Tutorial https://plutus.readthedocs.io/en/latest/tutorials/ Racket https://racket-lang.org/ Plutus Pioneer Program https://testnets.cardano.org/en/plutus-pioneer-program/ NixOS https://nixos.org/ https://distrowatch.com/table.php?distribution=nixos https://en.wikipedia.org/wiki/NixOS Scheme https://en.wikipedia.org/wiki/Scheme_(programming_language) Lisp https://en.wikipedia.org/wiki/Lisp_(programming_language) https://www.tutorialspoint.com/lisp/index.htm Functional Programming https://www.geeksforgeeks.org/functional-programming-paradigm/ https://en.wikipedia.org/wiki/Functional_programming Clojure https://clojure.org/ https://en.wikipedia.org/wiki/Clojure https://clojuredocs.org/ Solaris https://www.oracle.com/solaris/solaris11/ VIM https://www.vim.org/ https://en.wikipedia.org/wiki/Vim_(text_editor) CentOS https://www.centos.org/ https://distrowatch.com/table.php?distribution=centos https://en.wikipedia.org/wiki/CentOS 2022-01-01T09:00:00Z AKST Alaska/USA and regions of French Polynesia Anchorage, Fairbanks, Juneau, Unalaska HST Small region of USA and 2 more Honolulu, Rarotonga, Adak, Papeete https://www.worldtimezone.com/newyear.html Solstice https://en.wikipedia.org/wiki/Solstice https://www.irishamericanmom.com/newgrange-irelands-megalithic-wonder-of-the-winter-solstice/ https://www.newgrange.com/ TIVO https://www.tivo.com/custom/product-bolt Yagi Antenna https://en.wikipedia.org/wiki/Yagi%E2%80%93Uda_antenna https://www.eeweb.com/lets-build-the-yagi-antenna/
In this supper club episode of Syntax, Wes and Scott talk with The Primeagan about his streaming set up, how he decides what to stream, why he makes the kind of content he does, and why he loves Vim. Hasura - Sponsor With Hasura, you can get a fully managed, production-ready GraphQL API as a service to help you build modern apps faster. You can get started for free in 30 seconds, or if you want to try out the Standard tier for zero cost, use the code “TryHasura” at this link: hasura.info. We've also got an amazing selection of GraphQL tutorials at hasura.io/learn. Storyblok - Sponsor Storyblok is a headless component-based CMS with a real-time visual editor. It offers the flexibility for developers to craft their perfect tech stack, but it also empowers content creators to make changes independently. The result is that every team has the freedom to quickly and easily create the ideal website with limitless extensibility. Other key features include robust Storyblok SDKs and APIs, powerful internationalization options, and an eCommerce-ready platform. Show Notes 00:35 Welcome 01:48 Guest introduction ThePrimeagen on YouTube ThePrimeagen on Twitch @ThePrimeagen on Twitter Why I Make Content 03:53 Dropping in on skateboarding Tony Hawk's Pro Skater 05:43 What do you do? 07:17 How do you plan your live streams? 10:05 Sponsor: Hasura 11:27 Do you do interactive content via OBS on stream? OBS 16:22 What languages do you use on stream? Bun Zig 22:03 What do you try to build on stream? 24:53 Sponsor: StoryBlok 25:45 Why do you use Vim? 38:42 Do you ever have to do pair programming with Vim? 40:43 What kind of hardware are you playing with? Arduino 42:52 Supper club questions Lemur Pop Kinesis Advantage 2 56:20 SIIIIICK ××× PIIIICKS ××× Tweet us your tasty treats Scott's Instagram LevelUpTutorials Instagram Wes' Instagram Wes' Twitter Wes' Facebook Scott's Twitter Make sure to include @SyntaxFM in your tweets
Coming up in this episode 1. Vim stories 2. The quick history of vi and vim 3. A snappy Mozilla watch 4. Gnome can toggle too 5. We take a sip of Cider 0:00 Cold Open 1:48 vim Stories 12:05 vi & vim History 22:13 A Few More Thoughts on vim 39:28 A Snappy Mozilla Watch 42:22 New Features to Gnome 52:19 Feedback 58:23 Community Focus: DistroTube 1:00:32 App Focus: Cider 1:05:33 Next Time: Clear Linux 1:07:35 Stinger Support us on Patreon! (https://www.patreon.com/linuxuserspace) Banter Vim Stories There are many guides/shortcut cheatsheets out there. Here are a few that seem good: https://www.maketecheasier.com/cheatsheet/vim-keyboard-shortcuts/ https://linuxhint.com/vim_shortcuts/ http://vimsheet.com Announcements Give us a sub on YouTube (https://linuxuserspace.show/youtube) You can watch us live on Twitch (https://linuxuserspace.show/twitch) the day after an episode drops. History Series on Text Editors - vi and vim vi (http://ex-vi.sourceforge.net/) (Pronounced V, I) vim (https://www.vim.org/) vi wikipedia page (https://en.wikipedia.org/wiki/Vi) Vim wikipedia page (https://en.wikipedia.org/wiki/Vim_(text_editor)) George Colouris (http://www.eecs.qmul.ac.uk/~gc/history/) Bill Joy (https://en.wikipedia.org/wiki/Bill_Joy) ADM-3A Terminal (https://en.wikipedia.org/wiki/ADM-3A) and the keyboard layout (https://en.wikipedia.org/wiki/File:KB_Terminal_ADM3A.svg) Bill also hacked together a temporary, intermediary editor (https://begriffs.com/pdf/unix-review-bill-joy.pdf) 1987 - A limited vi clone STEVIE, the ST Editor for VI Enthusiasts, was born. (https://timthompson.com/tjt/stevie/) 1988 - Bram Moolenaar took the source for STEVIE and ported it to the Amiga which marked the first release of Vim. It was also known as the "wq text editor" at the time. Most folks take the acronym to mean vi Improved, but originally, it stood for vi Imitation (https://invisible-island.net/vile/vile.faq.html#clone_began). It took on the Improved meaning later in 1993 around version 2. Bram Moolenaar (https://en.wikipedia.org/wiki/Bram_Moolenaar) Bram's Web page (https://www.moolenaar.net/index.html) elvis (https://groups.google.com/g/comp.editors/c/rdUYDzANsMw/m/ErR-8j1VCfQJ) nvi was born (https://books.google.com/books?id=Eb8J3BONVxAC&pg=PA307#v=onepage&q&f=false) The original vi source code was released as open source. (http://www.mckusick.com/csrg/calder-lic.pdf) 2020 - Fedora switches from Vim to nano for the default text editor (https://fedoraproject.org/wiki/Releases/33/ChangeSet#Make_nano_the_default_editor) June 28, 2022 - Vim 9.0 is released! (https://www.vim.org/vim90.php) More Announcements Want to have a topic covered or have some feedback? - send us an email, firstname.lastname@example.org Mozilla watch Firefox on Ubuntu (https://www.omgubuntu.co.uk/2022/07/ubuntu-devs-fix-another-frustrating-firefox-snap-flaw) Firefox 104 is released (https://9to5linux.com/mozilla-firefox-104-is-now-available-for-download-this-is-whats-new) Housekeeping Catch these and other great topics as they unfold on our Subreddit or our News channel on Discord. * Linux User Space subreddit (https://linuxuserspace.show/reddit) * Linux User Space Discord Server (https://linuxuserspace.show/discord) * Linux User Space Telegram (https://linuxuserspace.show/telegram) * Linux User Space Matrix (https://linuxuserspace.show/matrix) Gnome Can Now... Toggle Speakers and Mics (https://www.omgubuntu.co.uk/2022/08/gnome-43-new-features) in 43! Feedback Great feedback on our last episode on YouTube (https://youtu.be/_AIWIfraNt8) lendarker on reddit (https://www.reddit.com/r/EndeavourOS/comments/wr5mql/comment/ikrqf4d/?utm_source=share&utm_medium=web2x&context=3) Community Focus Distrotube (https://www.youtube.com/distrotube) Distrotube Vim videos (https://www.youtube.com/c/DistroTube/search?query=vim) Including some tutorial videos part 1 (https://youtu.be/ER5JYFKkYDg) and part 2 (https://youtu.be/tExTz7GnpdQ) App Focus Cider (https://github.com/ciderapp/Cider) Next Time We will discuss Clear Linux (https://clearlinux.org/) and the history. Come back in two weeks for more Linux User Space Stay tuned and interact with us on Twitter, Mastodon, Telegram, Matrix, Discord whatever. Give us your suggestions on our subreddit r/LinuxUserSpace Join the conversation. Talk to us, and give us more ideas. All the links in the show notes and on linuxuserspace.show. We would like to acknowledge our top patrons. Thank you for your support! Producer Bruno John Co-Producer Johnny Sravan Tim Contributor Advait CubicleNate Eduardo S. Jill and Steve LiNuXsys666 Nicholas Paul sleepyeyesvince
Jess Archer's Twitter - https://twitter.com/jessarchercodesJess Archer's GitHub - https://github.com/jessarcherJess Archer's GitHub dotfiles - https://github.com/jessarcher/dotfilesJess Archer's Website - https://jessarcher.comJess Archer's Youtube - https://www.youtube.com/channel/UCrk0VncCvtJUtAVEdwYIE-AHow to turn Vim into a powerful and beautiful IDE | Jess Archer, Vimconf 2021 - https://www.youtube.com/watch?v=434tljD-5C8Airlume - https://airlume.app/Neovim - https://neovim.io/Neovim GitHub - https://github.com/neovimSponsor Neovim - https://github.com/sponsors/neovimVim - https://www.vim.org/vi - https://en.wikipedia.org/wiki/ViVimtutor - https://web.archive.org/web/20100107121743/http://linuxcommand.gds.tuwien.ac.at/man_pages/vimtutor1.htmlVisual Studio Code - https://code.visualstudio.com/PhpStorm - https://www.jetbrains.com/phpstorm/Markdown - https://www.markdownguide.org/Matt's Book - https://mattstauffer.com/laravel-up-and-running/GitHub dotfiles - https://github.com/topics/dotfilesVimConf - https://vimconf.org/Jeffrey Way's Twitter - https://twitter.com/jeffrey_way?lang=enJeffrey Way's GitHub - https://github.com/JeffreyWayKinesis Advantage2 - https://kinesis-ergo.com/shop/advantage2/Bram Moolenaar's Website - https://moolenaar.net/Lua - https://www.lua.org/Practical Vim - http://vimcasts.org/publications/Drew Neil - http://drewneil.com/Taylor Otwell's Twitter - https://twitter.com/taylorotwellTaylor Otwell's GitHub - https://github.com/taylorotwellTailwind - https://tailwindcss.com/
Links from the show:PHP: rfc:asymmetric-visibilityIt's time for Apple to fix texting.Google has an app called Meet, and it decided to change the name of Duo to Meet. So now it has two products called Meet. Neat! | Boing BoingBlue Bubbles vs Green Bubbles: Explained! - YouTubeLaravel 9.24 Released | Laravel NewsLaravel: New DB Commands - The Laravel Blog Xdebug 3: Debugging with VIM and Vdebug - YouTubeXdebug Update: July 2022 — Derick RethansLaravel VersionsThe Laravel Blog Enlightn: Boost your Laravel App's Performance & SecurityThis episode of PHPUgly was sponsored by:Honeybadger.io - https://www.honeybadger.io/PHPUgly streams the recording of this podcast live. Typically every Thursday night around 9 PM PT. Come and join us, and subscribe to our Youtube Channel, Twitch, or Periscope. Also, be sure to check out our Patreon Page.Twitter Account https://twitter.com/phpuglyHost:Eric Van JohnsonJohn CongdonTom RideoutStreams:Youtube ChannelTwitchPowered by RestreamPatreon PagePHPUgly Anthem by Harry Mack / Harry Mack Youtube ChannelThanks to all of our Patreon Sponsors:Honeybadger ** This weeks Sponsor **ButteryCrumpetFrank WDavid QShawnKen FBoštjanMarcusShelby CS FergusonRodrigo CBillyDarryl HKnut Erik BDmitri GElgimboMikePageDevKenrick BKalen JR. C. S.Peter AClayton SRonny MBen RAlex BKevin YEnno RWayneJeroen FAndy HSeviCharltonSteve MRobert SThorstenEmily JJoe FAndrew WulrikJohn CJames HEric MLaravel MagazineEd GRirielilHermitChampJeffrey DChris B
Tune into this episode featuring Jonas Goldstein, Vice President, Strategy and Commercial at Vim. Find out why payers and providers are investing in point-of-care solutions that integrate with traditional EHRs at scale, potential use cases for payer-provider partnerships, and his predictions for the future of value-based care. Jonas also discusses how Vim has grown, its success in signing its 500th provider organization to its flagship technology, and the lessons the company has learned along the way. This episode is sponsored by Vim.
Michael and Tim discuss all the latest Laravel releases, tutorials, and happenings in the community.This episode is sponsored by Honeybadger - combining error monitoring, uptime monitoring and check-in monitoring into a single, easy to use platform and making you a DevOps hero. Show links A redesigned Artisan serve command in Laravel 9.22 New Artisan docs command in Laravel 9.23 Statix Server is an object-oriented wrapper for PHP's built-in server Artisan Tinker with Vim in Tinkeray Vite Livewire plugin Build your own Laravel packages Using Laravel model factories in your tests Factories should be the bare minimum SQL is not complex Introducing Laravel security in depth
First up in the news, Mint is coming, Lennart Poettering has left the building, Vim speaks a new language, WebApps come to GNOME 43, Fedora lets Flatpak out of jail and wants to talk, GTK5 is dropping the X, Linux gets Siri, er, Cortana, er, Carola. In security and privacy, CISA sounds the alarm, and Firefox strips Then in our Wanderings, Bill repaves his Omen, Moss goes back to school, Joe is still in 3D and Norbert is typing still In our Innards section We talk subscription Services And finally, the feedback and a couple of suggestions Download
About ChrisChris Short has been a proponent of open source solutions throughout his over two decades in various IT disciplines, including systems, security, networks, DevOps management, and cloud native advocacy across the public and private sectors. He currently works on the Kubernetes team at Amazon Web Services and is an active Kubernetes contributor and Co-chair of OpenGitOps. Chris is a disabled US Air Force veteran living with his wife and son in Greater Metro Detroit. Chris writes about Cloud Native, DevOps, and other topics at ChrisShort.net. He also runs the Cloud Native, DevOps, GitOps, Open Source, industry news, and culture focused newsletter DevOps'ish.Links Referenced: DevOps'ish: https://devopsish.com/ EKS News: https://eks.news/ Containers from the Couch: https://containersfromthecouch.com opengitops.dev: https://opengitops.dev ChrisShort.net: https://chrisshort.net Twitter: https://twitter.com/ChrisShort TranscriptAnnouncer: Hello, and welcome to Screaming in the Cloud with your host, Chief Cloud Economist at The Duckbill Group, Corey Quinn. This weekly show features conversations with people doing interesting work in the world of cloud, thoughtful commentary on the state of the technical world, and ridiculous titles for which Corey refuses to apologize. This is Screaming in the Cloud.Corey: Welcome to Screaming in the Cloud. I'm Corey Quinn. Coming back to us since episode two—it's always nice to go back and see the where are they now type of approach—I am joined by Senior Developer Advocate at AWS Chris Short. Chris, been a few years. How has it been?Chris: Ha. Corey, we have talked outside of the podcast. But it's been good. For those that have been listening, I think when we recorded I wasn't even—like, when was season two, what year was that? [laugh].Corey: Episode two was first pre-pandemic and the rest. I believe—Chris: Oh. So, yeah. I was at Red Hat, maybe, when I—yeah.Corey: Yeah. You were doing Red Hat stuff, back when you got to work on open-source stuff, as opposed to now, where you're not within 1000 miles of that stuff, right?Chris: Actually well, no. So, to be clear, I'm on the EKS team, the Kubernetes team here at AWS. So, when I joined AWS in October, they were like, “Hey, you do open-source stuff. We like that. Do more.” And I was like, “Oh, wait, do more?” And they were like, “Yes, do more.” “Okay.”So, since joining AWS, I've probably done more open-source work than the three years at Red Hat that I did. So, that's kind of—you know, like, it's an interesting point when I talk to people about it because the first couple months are, like—you know, my friends are like, “So, are you liking it? Are you enjoying it? What's going on?” And—Corey: Do they beat you with reeds? Like, all the questions people have about companies? Because—Chris: Right. Like, I get a lot of random questions about Amazon and AWS that I don't know the answer to.Corey: Oh, when I started telling people, I fixed Amazon bills, I had to quickly pivot that to AWS bills because people started asking me, “Well, can you save me money on underpants?” It's I—Chris: Yeah.Corey: How do you—fine. Get the prime credit card. It docks 5% off the bill, so there you go. But other than that, no, I can't.Chris: No.Corey: It's—Chris: Like, I had to call my bank this morning about a transaction that I didn't recognize, and it was from Amazon. And I was like, that's weird. Why would that—Corey: Money just flows one direction, and that's the wrong direction from my employer.Chris: Yeah. Like, what is going on here? It shouldn't have been on that card kind of thing. And I had to explain to the person on the phone that I do work at Amazon but under the Web Services team. And he was like, “Oh, so you're in IT?”And I'm like, “No.” [laugh]. “It's actually this big company. That—it's a cloud company.” And they're like, “Oh, okay, okay. Yeah. The cloud. Got it.” [laugh]. So, it's interesting talking to people about, “I work at Amazon.” “Oh, my son works at Amazon distribution center,” blah, blah, blah. It's like, cool. “I know about that, but very little. I do this.”Corey: Your son works in Amazon distribution center. Is he a robot? Is normally my next question on that? Yeah. That's neither here nor there.So, you and I started talking a while back. We both write newsletters that go to a somewhat similar audience. You write DevOps'ish. I write Last Week in AWS. And recently, you also have started EKS News because, yeah, the one thing I look at when I'm doing these newsletters every week is, you know what I want to do? That's right. Write more newsletters.Chris: [laugh].Corey: So, you are just a glutton for punishment? And, yeah, welcome to the addiction, I suppose. How's it been going for you?Chris: It's actually been pretty interesting, right? Like, we haven't pushed it very hard. We're now starting to include it in things. Like we did Container Day; we made sure that EKS news was on the landing page for Container Day at KubeCon EU. And you know, it's kind of just grown organically since then.But it was one of those things where it's like, internally—this happened at Red Hat, right—when I started live streaming at Red Hat, the ultimate goal was to do our product management—like, here's what's new in the next version thing—do those live so anybody can see that at any point in time anywhere on Earth, the second it's available. Similar situation to here. This newsletter actually is generated as part of a report my boss puts together to brief our other DAs—or developer advocates—you know, our solutions architects, the whole nine yards about new EKS features. So, I was like, why can't we just flip that into a weekly newsletter, you know? Like, I can pull from the same sources you can.And what's interesting is, he only does the meeting bi-weekly. So, there's some weeks where it's just all me doing it and he ends up just kind of copying and pasting the newsletter into his document, [laugh] and then adds on for the week. But that report meeting for that team is now getting disseminated to essentially anyone that subscribes to eks.news. Just go to the site, there's a subscribe thing right there. And we've gotten 20 issues in and it's gotten rave reviews, right?Corey: I have been a subscriber for a while. I will say that it has less Chris Short personality—Chris: Mm-hm.Corey: —to it than DevOps'ish does, which I have to assume is by design. A lot of The Duckbill Group's marketing these days is no longer in my voice, rather intentionally, because it turns out that being a sarcastic jackass and doing half-billion dollar AWS contracts can not to be the most congruent thing in the world. So okay, we're slowly ameliorating that. It's professional voice versus snarky voice.Chris: Well, and here's the thing, right? Like, I realized this year with DevOps'ish that, like, if I want to take a week off, I have to do, like, what you did when your child was born. You hired folks to like, do the newsletter for you, or I actually don't do the newsletter, right? It's binary: hire someone else to do it, or don't do it. So, the way I structured this newsletter was that any developer advocate on my team could jump in and take over the newsletter so that, you know, if I'm off that week, or whatever may be happening, I, Chris Short, am not the voice. It is now the entire developer advocate team.Corey: I will challenge you on that a bit. Because it's not Chris Short voice, that's for sure, but it's also not official AWS brand voice either.Chris: No.Corey: It is clearly written by a human being who is used to communicating with the audience for whom it is written. And that is no small thing. Normally, when oh, there's a corporate newsletter; that's just a lot of words to say it's bad. This one is good. I want to be very clear on that.Chris: Yeah, I mean, we have just, like, DevOps'ish, we have sections, just like your newsletter, there's certain sections, so any new, what's new announcements, those go in automatically. So, like, that can get delivered to your inbox every Friday. Same thing with new blog posts about anything containers related to EKS, those will be in there, then Containers from the Couch, our streaming platform, essentially, for all things Kubernetes. Those videos go in.And then there's some ecosystem news as well that I collect and put in the newsletter to give people a broader sense of what's going on out there in Kubernetes-land because let's face it, there's upstream and then there's downstream, and sometimes those aren't in sync, and that's normal. That's how Kubernetes kind of works sometimes. If you're running upstream Kubernetes, you are awesome. I appreciate you, but I feel like that would cause more problems and it's worse sometimes.Corey: Thank you for being the trailblazers. The rest of us can learn from your misfortune.Chris: [laugh]. Yeah, exactly. Right? Like, please file your bugs accordingly. [laugh].Corey: EKS is interesting to me because I don't see a lot of it, which is, probably, going to get a whole lot of, “Wait, what?” Moments because wait, don't you deal with very large AWS bills? And I do. But what I mean by that is that EKS, until you're using its Fargate expression, charges for the control plane, which rounds to no money, and the rest is running on EC2 instances running in a company's account. From the billing perspective, there is no difference between, “We're running massive fleets of EKS nodes.” And, “We're managing a whole bunch of EC2 instances by hand.”And that feels like an interesting allegory for how Kubernetes winds up expressing itself to cloud providers. Because from a billing perspective, it just looks like one big single-tenant application that has some really strange behaviors internally. It gets very chatty across AZs when there's no reason to, and whatnot. And it becomes a very interesting study in how to expose aspects of what's going on inside of those containers and inside of the Kubernetes environment to the cloud provider in a way that becomes actionable. There are no good answers for this yet, but it's something I've been seeing a lot of. Like, “Oh, I thought you'd be running Kubernetes. Oh, wait, you are and I just keep forgetting what I'm looking at sometimes.”Chris: So, that's an interesting point. The billing is kind of like, yeah, it's just compute, right? So—Corey: And my insight into AWS and the way I start thinking about it is always from a billing perspective. That's great. It's because that means the more expensive the services, the more I know about it. It's like, “IAM. What is that?” Like, “Oh, I have no idea. It's free. How important could it be?” Professional advice: do not take that philosophy, ever.Chris: [laugh]. No. Ever. No.Corey: Security: it matters. Oh, my God. It's like you're all stars. Your IAM policy should not be. I digress.Chris: Right. Yeah. Anyways, so two points I want to make real quick on that is, one, we've recently released an open-source project called Carpenter, which is really cool in my purview because it looks at your Kubernetes file and says, “Oh, you want this to run on ARM instance.” And you can even go so far as to say, right, here's my limits, and it'll find an instance that fits those limits and add that to your cluster automatically. Run your pod on that compute as long as it needs to run and then if it's done, it'll downsize—eventually, kind of thing—your cluster.So, you can basically just throw a bunch of workloads at it, and it'll auto-detect what kind of compute you will need and then provision it for you, run it, and then be done. So, that is one-way folks are probably starting to save money running EKS is to adopt Carpenter as your autoscaler as opposed to the inbuilt Kubernetes autoscaler. Because this is instance-aware, essentially, so it can say, like, “Oh, your massive ARM application can run here,” because you know, thank you, Graviton. We have those processors in-house. And you know, you can run your ARM64 instances, you can run all the Intel workloads you want, and it'll right size the compute for your workloads.And I'll look at one container or all your containers, however you want to configure it. Secondly, the good folks over at Kubecost have opencost, which is the open-source version of Kubecost, basically. So, they have a service that you can run in your clusters that will help you say, “Hey, maybe this one notes too heavy; maybe this one notes too light,” and you know, give you some insights into Kubernetes spend that are a little bit more granular as far as usage and things like that go. So, those two projects right there, I feel like, will give folks an optimal savings experience when it comes to Kubernetes. But to your point, it's just compute, right? And that's really how we treat it, kind of, here internally is that it's a way to run… compute, Kubernetes, or ECS, or any of those tools.Corey: A fairly expensive one because ignoring entirely for a second the actual raw cost of compute, you also have the other side of it, which is in every environment, unless you are doing something very strange or pre-funding as a one-person startup in your spare time, your payroll costs will it—should—exceed your AWS bill by a fairly healthy amount. And engineering time is always more expensive than services time. So, for example, looking at EKS, I would absolutely recommend people use that rather than rolling their own because—Chris: Rolling their own? Yeah.Corey: —get out of that engineering space where your time is free. I assure you from a business context, it is not. So, there's always that question of what you can do to make things easier for people and do more of the heavy lifting.Chris: Yeah, and to your rather cheeky point that there's 17 ways to run a container on AWS, it is answering that question, right? Like those 17 ways, like, how much of this do you want to run yourself, you could run EKS distro on EC2 instances if you want full control over your environment.Corey: And then run IoT Greengrass core on top within that cluster—Chris: Right.Corey: So, I can run my own Lambda function runtime, so I'm not locked in. Also, DynamoDB local so I'm not locked into AWS. At which point I have gone so far around the bend, no one can help me.Chris: Well—Corey: Pro tip, don't do that. Just don't do that.Chris: But to your point, we have all these options for compute, and specifically containers because there's a lot of people that want to granularly say, “This is where my engineering team gets involved. Everything else you handle.” If I want EKS on Spot Instances only, you can do that. If you want EKS to use Carpenter and say only run ARM workloads, you can do that. If you want to say Fargate and not have anything to manage other than the container file, you can do that.It's how much does your team want to manage? That's the customer obsession part of AWS coming through when it comes to containers is because there's so many different ways to run those workloads, but there's so many different ways to make sure that your team is right-sized, based off the services you're using.Corey: I do want to change gears a bit here because you are mostly known for a couple of things: the DevOps'ish newsletter because that is the oldest and longest thing you've been doing the time that I've known you; EKS, obviously. But when prepping for this show, I discovered you are now co-chair of the OpenGitOps project.Chris: Yes.Corey: So, I have heard of GitOps in the context of, “Oh, it's just basically your CI/CD stuff is triggered by Git events and whatnot.” And I'm sitting here going, “Okay, so from where you're sitting, the two best user interfaces in the world that you have discovered are YAML and Git.” And I just have to start with the question, “Who hurt you?”Chris: [laugh]. Yeah, I share your sentiment when it comes to Git. Not so much with YAML, but I think it's because I'm so used to it. Maybe it's Stockholm Syndrome, maybe the whole YAML thing. I don't know.Corey: Well, it's no XML. We'll put it that way.Chris: Thankfully, yes because if it was, I would have way more, like, just template files laying around to build things. But the—Corey: And rage. Don't forget rage.Chris: And rage, yeah. So, GitOps is a little bit more than just Git in IaC—infrastructure as Code. It's more like Justin Garrison, who's also on my team, he calls it infrastructure software because there's four main principles to GitOps, and if you go to opengitops.dev, you can see them. It's version one.So, we put them on the website, right there on the page. You have to have a declared state and that state has to live somewhere. Now, it's called GitOps because Git is probably the most full-featured thing to put your state in, but you could use an S3 bucket and just version it, for example. And make it private so no one else can get to it.Corey: Or you could use local files: copy-of-copy-of-this-thing-restored-parentheses-use-this-one-dot-final-dot-doc-dot-zip. You know, my preferred naming convention.Chris: Ah, yeah. Wow. Okay. [laugh]. Yeah.Corey: Everything I touch is terrifying.Chris: Yes. Geez, I'm sorry. So first, it's declarative. You declare your state. You store it somewhere. It's versioned and immutable, like I said. And then pulled automatically—don't focus so much on pull—but basically, software agents are applying the desired state from source. So, what does that mean? When it's—you know, the fourth principle is implemented, continuously reconciled. That means those software agents that are checking your desired state are actually putting it back into the desired state if it's out of whack, right? So—Corey: You're talking about agents running it persistently on instances, validating—Chris: Yes.Corey: —a checkpoint on a cron. How is this meaningfully different than a Puppet agent running in years past? Having spent I learned to speak publicly by being a traveling trainer for Puppet; same type of model, and in fact, when I was at Pinterest, we wound up having a fair bit—like, that was their entire model, where they would have—the Puppet's code would live in an S3 bucket that was then copied down, I believe, via Git, and then applied to the instance on a schedule. Like, that sounds like this was sort of a early days GitOps.Chris: Yeah, exactly. Right? Like so it's, I like to think of that as a component of GitOps, right? DevOps, when you talk about DevOps in general, there's a lot of stuff out there. There's a lot of things labeled DevOps that maybe are, or maybe aren't sticking to some of those DevOps core things that make you great.Like the stuff that Nicole Forsgren writes about in books, you know? Accelerate is on my desk for a reason because there's things that good, well-managed DevOps practices do. I see GitOps as an actual implementation of DevOps in an open-source manner because all the tooling for GitOps these days is open-source and it all started as open-source. Now, you can get, like, Flux or Argo—Argo, specifically—there's managed services out there for it, you can have Flux and not maintain it, through an add-on, on EKS for example, and it will reconcile that state for you automatically. And the other thing I like to say about GitOps, specifically, is that it moves at the speed of the Kubernetes Audit Log.If you've ever looked at a Kubernetes audit log, you know it's rather noisy with all these groups and versions and kinds getting thrown out there. So, GitOps will say, “Oh, there's an event for said thing that I'm supposed to be watching. Do I need to change anything? Yes or no? Yes? Okay, go.”And the change gets applied, or, “Hey, there's a new Git thing. Pull it in. A change has happened inGit I need to update it.” You can set it to reconcile on events on time. It's like a cron or it's like an event-driven architecture, but it's combined.Corey: How does it survive the stake through the heart of configuration management? Because before I was doing all this, I wasn't even a T-shaped engineer: you're broad across a bunch of things, but deep in one or two areas, and one of mine was configuration management. I wrote part of SaltStack, once upon a time—Chris: Oh.Corey: —due to a bunch of very strange coincidences all hitting it once, like, I taught people how to use Puppet. But containers ultimately arose and the idea of immutable infrastructure became a thing. And these days when we were doing full-on serverless, well, great, I just wind up deploying a new code bundle to the Lambdas function that I wind up caring about, and that is a immutable version replacement. There is no drift because there is no way to log in and change those things other than through a clear deployment of this as the new version that goes out there. Where does GitOps fit into that imagined pattern?Chris: So, configuration management becomes part of your approval process, right? So, you now are generating an audit log, essentially, of all changes to your system through the approval process that you set up as part of your, how you get things into source and then promote that out to production. That's kind of the beauty of it, right? Like, that's why we suggest using Git because it has functions, like, requests and issues and things like that you can say, “Hey, yes, I approve this,” or, “Hey, no, I don't approve that. We need changes.” So, that's kind of natively happening with Git and, you know, GitLab, GitHub, whatever implementation of Git. There's always, kind of—Corey: Uh, JIF-ub is, I believe, the pronunciation.Chris: JIF-ub? Oh.Corey: Yeah. That's what I'm—Chris: Today, I learned. Okay.Corey: Exactly. And that's one of the things that I do for my lasttweetinaws.com Twitter client that I build—because I needed it, and if other people want to use it, that's great—that is now deployed to 20 different AWS commercial regions, simultaneously. And that is done via—because it turns out that that's a very long to execute for loop if you start down that path—Chris: Well, yeah.Corey: I wound up building out a GitHub Actions matrix—sorry a JIF-ub—actions matrix job that winds up instantiating 20 parallel builds of the CDK deploy that goes out to each region as expected. And because that gets really expensive with native GitHub Actions runners for, like, 36 cents per deploy, and I don't know how to test my own code, so every time I have a typo, that's another quarter in the jar. Cool, but that was annoying for me so I built my own custom runner system that uses Lambda functions as runners running containers pulled from ECR that, oh, it just runs in parallel, less than three minutes. Every time I commit something between I press the push button and it is out and running in the wild across all regions. Which is awesome and also terrifying because, as previously mentioned, I don't know how to test my code.Chris: Yeah. So, you don't know what you're deploying to 20 regions sometime, right?Corey: But it also means I have a pristine, re-composable build environment because I can—Chris: Right.Corey: Just automatically have that go out and the fact that I am making a—either merging a pull request or doing a direct push because I consider main to be my feature branch as whenever something hits that, all the automation kicks off. That was something that I found to be transformative as far as a way of thinking about this because I was very tired of having to tweak my local laptop environment to, “Oh, you didn't assume the proper role and everything failed again and you broke it. Good job.” It wound up being something where I could start developing on more and more disparate platforms. And it finally is what got me away from my old development model of everything I build is on an EC2 instance, and that means that my editor of choice was Vim. I use the VS Code now for these things, and I'm pretty happy with it.Chris: Yeah. So, you know, I'm glad you brought up CDK. CDK gives you a lot of the capabilities to implement GitOps in a way that you could say, like, “Hey, use CDK to declare I need four Amazon EKS clusters with this size, shape, and configuration. Go.” Or even further, connect to these EKS clusters to RDS instances and load balancers and everything else.But you put that state into Git and then you have something that deploys that automatically upon changes. That is infrastructure as code. Now, when you say, “Okay, main is your feature branch,” you know, things happen on main, if this were running in Kubernetes across a fleet of clusters or the globe-wide in 20 regions, something like Flux or Argo would kick in and say, “There's been a change to source, main, and we need to roll this out.” And it'll start applying those changes. Now, what do you get with GitOps that you don't get with your configuration?I mean, can you rollback if you ever have, like, a bad commit that's just awful? I mean, that's really part of the process with GitOps is to make sure that you can, A, roll back to the previous good state, B, roll forward to a known good state, or C, promote that state up through various environments. And then having that all done declaratively, automatically, and immutably, and versioned with an audit log, that I think is the real power of GitOps in the sense that, like, oh, so-and-so approve this change to security policy XYZ on this date at this time. And that to an auditor, you just hand them a log file on, like, “Here's everything we've ever done to our system. Done.” Right?Like, you could get to that state, if you want to, which I think is kind of the idea of DevOps, which says, “Take all these disparate tools and processes and procedures and culture changes”—culture being the hardest part to adopt in DevOps; GitOps kind of forces a culture change where, like, you can't do a CAB with GitOps. Like, those two things don't fly. You don't have a configuration management database unless you absolutely—Corey: Oh, you CAB now but they're all the comments of the pull request.Chris: Right. Exactly. Like, don't push this change out until Thursday after this other thing has happened, kind of thing. Yeah, like, that all happens in GitHub. But it's very democratizing in the sense that people don't have to waste time in an hour-long meeting to get their five minutes in, right?Corey: DoorDash had a problem. As their cloud-native environment scaled and developers delivered new features, their monitoring system kept breaking down. In an organization where data is used to make better decisions about technology and about the business, losing observability means the entire company loses their competitive edge. With Chronosphere, DoorDash is no longer losing visibility into their applications suite. The key? Chronosphere is an open-source compatible, scalable, and reliable observability solution that gives the observability lead at DoorDash business, confidence, and peace of mind. Read the full success story at snark.cloud/chronosphere. That's snark.cloud slash C-H-R-O-N-O-S-P-H-E-R-E.Corey: So, would it be overwhelmingly cynical to suggest that GitOps is the means to implement what we've all been pretending to have implemented for the last decade when giving talks at conferences?Chris: Ehh, I wouldn't go that far. I would say that GitOps is an excellent way to implement the things you've been talking about at all these conferences for all these years. But keep in mind, the technology has changed a lot in the, what 11, 12 years of the existence of DevOps, now. I mean, we've gone from, let's try to manage whole servers immutably to, “Oh, now we just need to maintain an orchestration platform and run containers.” That whole compute interface, you go from SSH to a Docker file, that's a big leap, right?Like, you don't have bespoke sysadmins; you have, like, a platform team. You don't have DevOps engineers; they're part of that platform team, or DevOps teams, right? Like, which was kind of antithetical to the whole idea of DevOps to have a DevOps team. You know, everybody's kind of in the same boat now, where we see skill sets kind of changing. And GitOps and Kubernetes-land is, like, a platform team that manages the cluster, and its state, and health and, you know, production essentially.And then you have your developers deploying what they want to deploy in when whatever namespace they've been given access to and whatever rights they have. So, now you have the potential for one set of people—the platform team—to use one set of GitOps tooling, and your applications teams might not like that, and that's fine. They can have their own namespaces with their own tooling in it. Like, Argo, for example, is preferred by a lot of developers because it has a nice UI with green and red dots and they can show people and it looks nice, Flux, it's command line based. And there are some projects out there that kind of take the UI of Argo and try to run Flux underneath that, and those are cool kind of projects, I think, in my mind, but in general, right, I think GitOps gives you the choice that we missed somewhat in DevOps implementations of the past because it was, “Oh, we need to go get cloud.” “Well, you can only use this cloud.” “Oh, we need to go get this thing.” “Well, you can only use this thing in-house.”And you know, there's a lot of restrictions sometimes placed on what you can use in your environment. Well, if your environment is Kubernetes, how do you restrict what you can run, right? Like you can't have an easily configured say, no open-source policy if you're running Kubernetes. [laugh] so it becomes, you know—Corey: Well, that doesn't stop some companies from trying.Chris: Yeah, that's true. But the idea of, like, enabling your developers to deploy at will and then promote their changes as they see fit is really the dream of DevOps, right? Like, same with production and platform teams, right? I want to push my changes out to a larger system that is across the globe. How do I do that? How do I manage that? How do I make sure everything's consistent?GitOps gives you those ways, with Kubernetes native things like customizations, to make consistent environments that are robust and actually going to be reconciled automatically if someone breaks the glass and says, “Oh, I need to run this container immediately.” Well, that's going to create problems because it's deviated from state and it's just that one region, so we'll put it back into state.Corey: It'll be dueling banjos, at some point. You'll try and doing something manually, it gets reverted automatically. I love that pattern. You'll get bored before the computer does, always.Chris: Yeah. And GitOps is very new, right? When you think about the lifetime of GitOps, I think it was coined in, like, 2018. So, it's only four years old, right? When—Corey: I prefer it to ChatOps, at least, as far as—Chris: Well, I mean—Corey: —implementation and expression of the thing.Chris: —ChatOps was a way to do DevOps. I think GitOps—Corey: Well, ChatOps is also a way to wind up giving whoever gets access to your Slack workspace root in production.Chris: Mmm.Corey: But that's neither here nor there.Chris: Mm-hm.Corey: It's yeah, we all like to pretend that's not a giant security issue in our industry, but that's a topic for another time.Chris: Yeah. And that's why, like, GitOps also depends upon you having good security, you know, and good authorization and approval processes. It enforces that upon—Corey: Yeah, who doesn't have one of those?Chris: Yeah. If it's a sole operation kind of deal, like in your setup, your case, I think you kind of got it doing right, right? Like, as far as GitOps goes—Corey: Oh, to be clear, we are 11 people and we do have dueling pull requests and all the rest.Chris: Right, right, right.Corey: But most of the stuff I talk about publicly is not our production stuff, so it really is just me. Just as a point of clarity there. I've n—the 11 people here do not all—the rest of you don't just sit there and clap as I do all the work.Chris: Right.Corey: Most days.Chris: No, I'm sure they don't. I'm almost certain they don't clap… for you. I mean, they would—Corey: No. No, they try and talk me out of it in almost every case.Chris: Yeah, exactly. So, the setup that you, Corey Quinn, have implemented to deploy these 20 regions is kind of very GitOps-y, in the sense that when main changes, it gets updated. Where it's not GitOps-y is what if the endpoint changes? Does it get reconciled? That's the piece you're probably missing is that continuous reconciliation component, where it's constantly checking and saying, “This thing out there is deployed in the way I want it. You know, the way I declared it to be in my source of truth.”Corey: Yeah, when you start having other people getting involved, there can—yeah, that's where regressions enter. And it's like, “Well, I know where things are so why would I change the endpoint?” Yeah, it turns out, not everyone has the state of the entire application in their head. Ideally it should live in—Chris: Yeah. Right. And, you know—Corey: —you know, Git or S3.Chris: —when I—yeah, exactly. When I think about interactions of the past coming out as a new DevOps engineer to work with developers, it's always been, will developers have access to prod or they don't? And if you're in that environment with—you're trying to run a multi-billion dollar operation, and your devs have direct—or one Dev has direct access to prod because prod is in his brain, that's where it's like, well, now wait a minute. Prod doesn't have to be only in your brain. You can put that in the codebase and now we know what is in your brain, right?Like, you can almost do—if you document your code, well, you can have your full lifecycle right there in one place, including documentation, which I think is the best part, too. So, you know, it encourages approval processes and automation over this one person has an entire state of the system in their head; they have to go in and fix it. And what if they're not on call, or in Jamaica, or on a cruise ship somewhere kind of thing? Things get difficult. Like, for example, I just got back from vacation. We were so far off the grid, we had satellite internet. And let me tell you, it was hard to write an email newsletter where I usually open 50 to 100 tabs.Corey: There's a little bit of internet out Californ-ie way.Chris: [laugh].Corey: Yeah it's… it's always weird going from, like, especially after pandemic; I have gigabit symmetric here and going even to re:Invent where I'm trying to upload a bunch of video and whatnot.Chris: Yeah. Oh wow.Corey: And the conference WiFi was doing its thing, and well, Verizon 5G was there but spotty. And well, yeah. Usual stuff.Chris: Yeah. It's amazing to me how connectivity has become so ubiquitous.Corey: To the point where when it's not there anymore, it's what do I do with myself? Same story about people pushing back against remote development of, “Oh, I'm just going to do it all on my laptop because what happens if I'm on a plane?” It's, yeah, the year before the pandemic, I flew 140,000 miles domestically and I was almost never hamstrung by my ability to do work. And my only local computer is an iPad for those things. So, it turns out that is less of a real world concern for most folks.Chris: Yeah I actually ordered the components to upgrade an old Nook that I have here and turn it into my, like, this is my remote code server, that's going to be all attached to GitHub and everything else. That's where I want to be: have Tailscale and just VPN into this box.Corey: Tailscale is transformative.Chris: Yes. Tailscale will change your life. That's just my personal opinion.Corey: Yep.Chris: That's not an AWS opinion or anything. But yeah, when you start thinking about your network as it could be anywhere, that's where Tailscale, like, really shines. So—Corey: Tailscale makes the internet work like we all wanted to believe that it worked.Chris: Yeah. And Wireguard is an excellent open-source project. And Tailscale consumes that and puts an amazingly easy-to-use UI, and troubleshooting tools, and routing, and all kinds of forwarding capabilities, and makes it kind of easy, which is really, really, really kind of awesome. And Tailscale and Kubernetes—Corey: Yeah, ‘network' and ‘easy' don't belong in the same sentence, but in this case, they do.Chris: Yeah. And trust me, the Kubernetes story in Tailscale, there is a lot of there. I understand you might want to not open ports in your VPC, maybe, but if you use Tailscale, that node is just another thing on your network. You can connect to that and see what's going on. Your management cluster is just another thing on the network where you can watch the state.But it's all—you're connected to it continuously through Tailscale. Or, you know, it's a much lighter weight, kind of meshy VPN, I would say, if I had to sum it up in one sentence. That was not on our agenda to talk about at all. Anyways. [laugh]Corey: No, no. I love how many different topics we talk about on these things. We'll have to have you back soon to talk again. I really want to thank you for being so generous with your time. If people want to learn more about what you're up to and how you view these things, where can they find you?Chris: Go to ChrisShort.net. So, Chris Short—I'm six-four so remember, it's Short—dot net, and you will find all the places that I write, you can go to devopsish.com to subscribe to my newsletter, which goes out every week. This year. Next year, there'll be breaks. And then finally, if you want to follow me on Twitter, Chris Short: at @ChrisShort on Twitter. All one word so you see two s's. Like, it's okay, there's two s's there.Corey: Links to all of that will of course be in the show notes. It's easier for people to do the clicky-clicky thing as a general rule.Chris: Clicky things are easier than the wordy things, yes.Corey: Says the Kubernetes guy.Chris: Yeah. Says the Kubernetes guy. Yeah, you like that, huh? Like I said, Argo gives you a UI. [laugh].Corey: Thank you [laugh] so much for your time. I really do appreciate it.Chris: Thank you. This has been fun. If folks have questions, feel free to reach out. Like, I am not one of those people that hides behind a screen all day and doesn't respond. I will respond to you eventually.Corey: I'm right here, Chris. Come on, come on. You're calling me out in front of myself. My God.Chris: Egh. It might take a day or two, but I will respond. I promise.Corey: Thanks again for your time. This has been Chris Short, senior developer advocate at AWS. I'm Cloud Economist Corey Quinn and this is Screaming in the Cloud. If you've enjoyed this podcast, please leave a five-star review on your podcast platform of choice and if it's YouTube, click the thumbs-up button. Whereas if you've hated this podcast, same thing, smash the buttons five-star review and leave an insulting comment that is written in syntactically correct YAML because it's just so easy to do.Corey: If your AWS bill keeps rising and your blood pressure is doing the same, then you need The Duckbill Group. We help companies fix their AWS bill by making it smaller and less horrifying. The Duckbill Group works for you, not AWS. We tailor recommendations to your business and we get to the point. Visit duckbillgroup.com to get started.Announcer: This has been a HumblePod production. Stay humble.