Podcasts about UI

Share on
Share on Facebook
Share on Twitter
Share on Reddit
Copy link to clipboard
  • 2,422PODCASTS
  • 5,957EPISODES
  • 47mAVG DURATION
  • 2DAILY NEW EPISODES
  • Jan 20, 2022LATEST

POPULARITY

20122013201420152016201720182019202020212022


Best podcasts about UI

Show all podcasts related to ui

Latest podcast episodes about UI

HyperChange
Rainbow

HyperChange

Play Episode Listen Later Jan 20, 2022 74:26


Interview with my homie/Co-Founder of Rainbow Wallet, Mike Demarais. Rainbow is one of the fastest growth Ethereum wallets in the world, and has been praised for its industry leading design and open-source/own-your-keys attitude. I first met Mike/invested in Rainbow in 2019, (then I invested again in 2021), it's a top 5 position in my portfolio. I love the potential of Rainbow to build a UI for Ethereum/the metaverse. I think this is a tremendous business opportunity that will unlock the power of cryptography and put it in the hands of the masses. Go Rainbow!

Design Details
425: Overengineering Variants

Design Details

Play Episode Listen Later Jan 20, 2022 24:41


This week, we share tips for crafting component variants to avoid the dreaded variant-explosion problem. In the Sidebar, we talk about Tesla's latest UI refresh, where we see auto interfaces going in the future, and share some of our favorite car dashboard design details.Golden Ratio Supporters:Play — Play is the first native iOS design tool made for teams creating mobile products. Design, prototype, and collaborate, directly from your phone. With Play you can experience your design as you create it while taking full advantage of native iOS features not found in other design and prototyping tools. Full access invites available for the first 25 people here!The Sidebar:The Sidebar is an exclusive weekly segment for our Patreon supporters. You can subscribe starting at $1 per month for access to bonus content going forward! Sign up at patreon.com/designdetails.Latest VIP Patrons:Aneliya KyurkchiyskaLuciaMatthew AchariamAlan MillsJordanMejji LeTaylor VogelFilip SzafirowskiMain Topic:This week, we share tips for crafting component variants to avoid the dreaded variant-explosion problem.Bryan Maniotakis asks about Figma variants on GitHub: Based on your experience, is this method sustainable? Is forcing the user to hide/show layers a better option to reduce complexity? Should I break out the component into more subcomponents to create fewer variants, but which causes more clicking around?Cool Things:Brian shared the August Wi-Fi Smart Lock as a nice upgrade to your home's deadbolts. Auto-locking and unlocking are great features, and the ability to share access with a partner or friends is awesome, too.Marshall shared Lian-Li UNI Fans, a modular, daisy-chainable fan module for your custom PC build.Design Details on the Web:

Awkward Silences
#85 - So Meta: Doing User Research at UXR Company with Roberta Dombrowski of User Interviews

Awkward Silences

Play Episode Listen Later Jan 18, 2022 39:36


It's our most meta episode yet. Today, we chatted with Roberta Dombrowski, VP of User Research at User Interviews, about doing user research about user researchers at a user research company. Listen in to learn about how adding a formal user research practice has benefited the UI team, the challenges of going from an IC to a leadership role, and building a research practice from the ground up. Head to the User Interviews blog for the transcript and episode highlights: https://bit.ly/awkward-roberta --- Send in a voice message: https://anchor.fm/awkwardsilences/message

PodRocket - A web development podcast from LogRocket
Framer Motion and Motion One with Matt Perry

PodRocket - A web development podcast from LogRocket

Play Episode Listen Later Jan 18, 2022 40:03


Framer Motion is a production-ready motion library for React and Motion One is a new animation library, built on the Web Animations API for the smallest file size and the fastest performance. We speak to Matt Perry about Framer Motion, Motion One, animations, and open source. Links https://www.framer.com/motion https://motion.dev https://twitter.com/mattgperry Review us Reviews are what help us grow and tailor our content to what you want to hear. Give us a review here (https://ratethispodcast.com/podrocket). Contact us https://podrocket.logrocket.com/contact-us @PodRocketpod (https://twitter.com/podrocketpod) What does LogRocket do? LogRocket combines frontend monitoring, product analytics, and session replay to help software teams deliver the ideal product experience. Try LogRocket for free today (https://logrocket.com/signup/?pdr). Special Guest: Matt Perry .

Command Control Power: Apple Tech Support & Business Talk
447: Interview With Jason Dettbarn / Founder & CEO of Addigy - Cloud Based Mac Management Platform

Command Control Power: Apple Tech Support & Business Talk

Play Episode Listen Later Jan 18, 2022 32:50


Topics: -We welcome back Jason Detrbarn, founder and CEO of Addigy.  -Jason talks to us about taking a company-wide break over the holidays.  -Working from home can make it difficult to separate work and home life. Sam discusses one of his tactics.  -Sam and Joe both needed support from Addigy over the break and they were able to assist without missing a beat.  -Joe had Migration Assistant going remotely and had to use Addigy Live Terminal to bail him out.  -Jason talks about the upcoming Addigy Innovate Conference, February 22-23, 2022. -Automating your workflows is the key to getting out of the habit of repeating the same tasks over and over.  -With the partnership with Splashtop in place, Jerry is curious about the differences between that and Live Terminal.  -Automated Device Enrollment with customizations is impressive.  -Jason discusses how much the community is involved in the direction of new features.  -Jason gives us a teaser into big UI changes coming in the product. 

The Bike Shed
322: Toxic Traits

The Bike Shed

Play Episode Listen Later Jan 18, 2022 35:21


Happy New Year (for real)! Chris and Steph both took some end-of-year time off to rest and recharge. Steph talks about some books she enjoyed, recipes she tried, and trail-walking adventures with her dog, Utah. Chris' company is now in a good position to actually start hiring within the engineering team. He's excited about that and will probably delve into more around the hiring process in the coming weeks. Since they aren't really big on New Year's Eve resolutions, Steph and Chris answer a listener question regarding toxic traits inspired by the listener question related to large pull requests and reflect on their own. The Midnight Library by Matt Haig (http://www.matthaig.com/books/midnight-library/) Tim Urban on Twitter (https://twitter.com/waitbutwhy/status/1367871165319049221) How to Stop Time by Matt Haig (http://www.matthaig.com/how-to-stop-time/) Do the Next Right Thing (https://daverupert.com/2020/09/do-the-next-right-thing/) Debugging Why Your Specs Have Slowed Down (https://thoughtbot.com/blog/debugging-why-your-specs-have-slowed-down) test-prof (https://github.com/test-prof/test-prof) Tests Oddly Slow Might Be Bcrypt (https://collectiveidea.com/blog/archives/2012/11/12/tests-oddly-slow-might-be-bcrypt) Transcript: STEPH: Hello and welcome to another episode of The Bike Shed, a weekly podcast from your friends at thoughtbot about developing great software. I'm Steph Viccari. CHRIS: And I'm Chris Toomey. STEPH: And together, we're here to share a bit of what we've learned along the way. So, hey, Chris, what's new in your world? CHRIS: What's new in my world? Well, spoiler, we actually may have lied in a previous episode when we said, "Hey, happy New Year," because, for us, it was not actually the new year. But this, in fact, is the first episode of the new year that we're recording, that you're hearing. Anyway, this is enough breaking the fourth wall. Sorry, listener. STEPH: [laughs] CHRIS: Inside baseball, yadda, yadda. I'm doing great. First week back. I took some amount of vacation over the holidays, which was great, recharging, all those sorts of things. But now we're hitting the ground running. And I'm actually really enjoying just getting back into the flow of things and, frankly, trying to ramp everything up, which we can probably talk about more in a moment. But how about you? How's your new year kicking off? STEPH: I like how much we plan the episodes around when it's going to release, and we're very thoughtful about this is going to be released for the new year or around Christmas time, and happy holidays to everybody. And then we get back, and we're like, yeah, yeah, yeah, we can totally drop the facade. [laughs] We're finally back from vacation. And this is us, and this is real. CHRIS: Date math is so hard. It just drains me entirely to even try and figure out when episodes are going to actually land. And then when we get here, also, you know, I want to talk about the fact that there was vacation and things, and the realities of the work, and the ebb and flow of life. So here we are. STEPH: Same. Yeah, I love it. Because I'm in a similar spot where I took two weeks off, which was phenomenal. That's actually sticking to one of the things we talked about, for one of the things I'm looking to do is where I take just more time off. And so having the two weeks was wonderful. It was also really helpful because the client team that I'm working with also shut down around the end of the year. So they took ten days off as well. So I was like, well, that's a really good sign of encouragement that I should also just shut down since I can. So it's been delightful. And I have very little tech stuff to share because I've just been doing lots of other fun things and reading fiction, and catching up with friends and family, and trying out new recipes. That's been pretty much my last two weeks. Oh, and walks with Utah. His training is going so well where we're starting to walk off-leash on trails. And that's been awesome. CHRIS: Wow, that's a big upgrade right there. STEPH: Yeah, we're still working on that moving perimeter so he knows how far he can go. Before then, he needs to stop and check on me. But he's getting pretty good where he'll bolt ahead, but then he'll stop, and he'll look at me, and then he'll wait till I catch up. And then he'll bolt ahead again. It's really fun. CHRIS: I like that that's the version of it that we're going for. This is not like you're going to walk alongside me on the trail; it's you're obviously going to run some distance out. As long as you check back in once every 20 feet, we're good; that's fine. Any particularly good books, or recipes, or talks with friends to go with that category? But that one's probably a little more specific to you. STEPH: [laughs] Yes. There are two really good books that I read over the holidays. They're both by the same author. So I get a lot of books from my mom. She'll often pick up a book, and once she's done with it, she'll drop it off to me or vice versa. So the one that she shared with me is called The Midnight Library. It's written by Matt Haig, H-A-I-G. And it's a very interesting story. It's a bit sad where it's about a woman who decides that she no longer wants to live. And then, when she moves in that direction to go ahead and end her life, she ends up in this library. And in the library, every time she has made a different decision or made a decision in life, then there is a new book written about what that life is like. So then she has an opportunity to go explore all of these lives and see if there's a better life out there for her. It is really interesting. I highly recommend it. CHRIS: Wow. I mean, that started with, I'm going to be honest, a very heavy premise. But then the idea that's super interesting. I would, actually...I think I might read that. I tend to just read sci-fi. This is broadly in the space, but that is super interesting. There's an image that comes to mind actually as you described that. It's from Tim Urban, who's also known as Wait But Why. I think he posts under that both on Twitter, and then I think he has a blog or something to that effect. But the image is basically like, all of the timelines that you could have followed in your life. And everybody thinks about like, from this moment today. Man, I think about all of the different versions of me that could exist today. But we don't think about the same thing moving forward in time. Like, what are all the possibilities in front of me? And what you're describing of this person walking around in a library and each book represents a different fork in the road from moving forward is such an interesting idea. And I think a positive reframing of any form of regret or looking back and being like, what if I had gone the other way? It's like, yeah, but forward in time, though. I'm very intrigued by this book. STEPH: Yeah, it's really good. It definitely has a strong It's a Wonderful Life vibe. Have you ever watched that movie? CHRIS: Yes, I have. STEPH: So there's a lot of that idea of regret. And what if I had lived differently and then getting to explore? But in it's A Wonderful Life, he just explores the one version. And in the book, she's exploring many versions. So it's really neat to be like, well, what if I'd pursued this when I was younger, had done this differently? Or what if I got coffee instead of tea? There are even small, little choices that then might impact you being a different person at a point in time. The other book that I read is by the same author because I enjoyed Midnight Library so much that I happened to see one of his other books. So I picked it up. And it's called How to Stop Time. And it's about an individual who essentially lives a very long time. And there are several people in the world that are like this, but he lives for centuries. But he doesn't age, or he ages incredibly slowly, at a rate that where say that he's 100 years old, but he'll still look 16 years old. And it's very good. It's very interesting. It's a bit more sad and melancholy than I typically like to read. So that one's good. But I will add that even though I described the first one, it has a sad premise; I found The Midnight Library a little more interesting and uplifting versus the other one I found a bit more sad. CHRIS: All right. Excellent additional notes in the reading list here. So you can opt like, do you want a little bit more somber, or do you want to go a little more uplifting? Yeah, It's a Wonderful Life path being like, starts in a complicated place but don't worry, we'll get you there in the end. STEPH: But I've learned I have to be careful with the books that I pick up because I will absorb the emotions that are going on in that book. And it will legit affect me through the week or as I'm reading that book. So I have to be careful of the books that I'm reading. [laughs] Is that weird? Do you have the same thing happen for when you're reading books? CHRIS: It's interesting. I don't think of it with books as much. But I do think of it with TV shows. And so my wife and I have been very intentional when we've watched certain television shows to be like, we're going to need something to cut the intensity of this show. And the most pointed example we had was we were watching Breaking Bad, which is one of the greatest television shows of all time but also just incredibly heavy and dark at times, kind of throughout. And so we would watch an episode of Breaking Bad. And then, as a palate cleanser, we would watch an episode of Malcolm in the Middle. And so we saw the same actor but in very different facets of his performance arc and just really softened things and allowed us to, frankly, go to bed after that be able to sleep and whatnot but less so with reading. So I find it interesting that I have that distinction there. STEPH: Yeah, that is interesting. Although I definitely feel that with movies and shows as well. Or if I watch something heavy, I'm like, great, what's on Disney? [laughs] I need to wash away some of that so I can watch something happy and go to sleep. You also asked about recipes because I mentioned that's something I've been doing as well. There's a lot of plant-based books that I've picked up because that's really my favorite type of thing to make. So that's been a lot of fun. So yeah, a lot of cooking, a lot of reading. How about you? What else is going on in your world? CHRIS: Well, actually, it's a super exciting time for Sagewell Financial, the company that I've joined. We are closing our seed financing round, which the whole world of venture capital is a novel thing that I'm still not super involved in that part of the process. But it has been really interesting to watch it progress, and evolve, and take shape. But at this point, we are closing our seed round. Things have gone really well. And so we're in a position to actually start hiring, which is a whole thing to do, in particular, within the engineering group. We're hiring, I think, throughout the company, but my focus now will be bringing a few folks into the engineering team. And yeah, just trying to do that and do that well, do that intentionally, especially for the size of the team that we have now, the sort of work that we're doing, et cetera, et cetera. But if anyone out there is listening, we are looking for great folks to join the team. We are Ruby on Rails, Inertia, TypeScript. If you've listened to the show anytime recently, you've heard me talk about the tech stack plenty. But I think we're trying to do something very meaningful and help seniors manage finance, which is a complicated and, frankly, very underserved space. So it's work that I deeply believe in, and I think we're doing a good job at it. And I hope to do even a better job over time. So if that's at all interesting, definitely reach out to me. But probably in the coming weeks, you'll hear me talk more and more about hiring and technical interviews and all of those sorts of things. I got to ramp myself back up on that entire world, which is really one of those things that you should always be doing is the thought that I have in my head. Now that I'm in a position to be hiring, I wish I'd been half-hiring for the past three months, but I'll figure it out. It'll be fine. STEPH: That's such a big undertaking. Everything you're saying resonates, but also, it's like that's a lot of hard work. So if you're not in that state of really being ramped up for hiring, I understand why that would be on the backburner. And yeah, I'm excited to hear more. I've gotten to hear some more of the product details about Sagewell, but I don't think we've really talked about those features here on the show. So I would love it if we brought some more of the feature work and talked about specifically what the application does. I am intrigued speaking of how much energy goes into hiring. Where are you at in terms of how much...like, are there any particular job boards that you're going for? Or what's your current approach to hiring? CHRIS: Oh, that's a great question. I have tweeted once into the world. I have a draft of a LinkedIn post. This is very much I'm figuring out as I go. It's sort of the nature of a startup as we have so many different things to do. And frankly, even finding the time to start thinking about hiring means I'm taking time away from building features and growing out other aspects. So it's definitely a necessary thing that we're doing at this point in time. But basically, everything we're doing is just in time compiling and figuring out what are the things that are semi-urgent right now? And to be honest, I like that energy overall. I've always had in the back of my mind that I like this sort of work and this space, especially if you can do it intentionally. It shouldn't feel like everything's on fire all the time, but it should feel like a lot of constraints that force you to make decisions quickly, which, if we're being honest, I think that's something that is not my strongest suit. So it's something that I'm excited to grow that muscle as part of this work. But so, with that in mind, at this point, my goal is to just start getting the word out there into the world that we are looking to hire and get people interested and then, from there, build out what's the interview process going to look like? I will let you know when we get there; I will. I will figure that out. But it's not something that I've...I haven't actually very intentionally thought about all of this. Because if I were to do that, it would delay the amount of time until I actually say into the world, "Hey, we're hiring." So I very purposely was like, I just need to say this into the world and then continue doing the next steps in that process. I'm prone to the perfect is the enemy of the good just trying to like, I want to have a complete plan and a 27-step checklist, and a Gantt chart, and a burndown. And before I take any first action and really trying to push back, I'm going to be like, no, no, just do something, just take a step in the right direction. There's actually a blog post that comes to mind, which is by Dave Rupert, who is a former guest on this podcast. It was wonderful getting to interview him. But he wrote a blog post. The title of it is Do the Next Right, which is a line from a song in the movie Frozen 2, I believe. He is like, all right, stick with me here. And I know this is a movie for kids, maybe. But also, this is a very meaningful song. And he framed it in a way that actually was surprisingly impactful to me. And it's that idea that I'm holding on to of you can't do it all, and you can't do it perfectly. Just do the next right thing. That's what you're going to do. So we'll link to that blog post in the show notes. But that's kind of where I'm at. STEPH: I love that. I'm looking forward to reading that because that has been huge for me. I used to be held back by that idea of perfection. But then I realized other people were getting more work done more quickly. And so I was like, huh, maybe there's something to this just doing the next thing versus waiting for perfection that is really the right path. So, how do folks reach out to you? Should they reach out to you on Twitter or email? What's best for you? CHRIS: Oh yeah, Twitter. This is all probably going to be said at the end of the show as well. But Twitter @christoomey. ctoomey.com is my blog. I'm on GitHub. I make it very easy to contact me because I haven't regretted that up to this point in my life. So basically, anywhere you find me on the internet, you will be able to email me or DM me or any of the things. I'm going to see how long I can hold on to that. I want to hold on to that forever. I want just a very open-door policy. So that's where I'm at right now, but any of those starting points. And bikeshed.fm website will somehow link to me in any of the various forums, and they're all kind of linked to each other, so any of those are fine. I will happily take inquiries via any of the channels. STEPH: Cool. Well, I'm excited to hear about how it goes. CHRIS: Me too, frankly. But in a very small bit of little tech news or tech happenings from my holiday time, this was actually just before I started to go on break for the holidays. I had noticed that the test suite was getting very slow, like very, very slow but on my machine. It was getting a little bit slow on CI, but the normal amount where we just keep adding new things. And we're adding a lot of feature specs because we want to have that holistic coverage over the whole application, and we can, so for now, we're doing that. But our spec suite had gotten up to six-ish minutes on CI and had a couple of other things. We have some linting and some TypeScript and things like that. But on my machine, it was very slow. So I hadn't run the full spec suite in a long time. But I knew that running any individual spec took surprising amounts of time. And in the back of my head, I was like; I guess I hadn't configured Spring. That seems weird. I probably would have done that, but whatever. And I'd never pushed on it more until one day I ran the specs. I ran one model spec, and it took 30 seconds or something like that. And I was like, well, that's absurd. And so I started to look into it. I did some scanning around the internet. There was a wonderful post on the Giant Robots blog about how to look through things from Mike Wenger, a wonderful former thoughtboter. Unfortunately, none of the tips in there were anything meaningful for me. Everything was as I expected it to be. So I set it down. And there were a couple of times that this happened to me where I'd be like, this is frustrating. I need to look into this a little bit more, but it was never worth investing more time. But I mentioned it in passing to one of the other developers on the team. And as a holiday gift to me, this person discovered the solution. So let me describe a little bit more of what we've got working on here. On CI, which in theory is less powerful than my new, fancy M1 MacBook, on CI, we take about six minutes for the test suite. On my computer, it was taking 28 minutes and 30 seconds. So that's what we're working with. The factories are all doing normal things. We're not creating way too many database records or anything like that. So any thoughts, anything that you would inspect here? STEPH: Ooh, you've already listed a number of good things that I would check. CHRIS: Yeah, I took all the easy ones off the list. So this is a hard question at this point. To be clear, I had no ideas. STEPH: Could you tell if there's a difference if it's like the boot-up time versus the actual test running? CHRIS: Did that check; it is not the boot-up time. It is something that is happening in the process of running an individual spec. STEPH: No, I'm drawing a blank. I can't think of what else I would check from there. CHRIS: It's basically where I was at. Let me give you one additional piece of data, see if it does anything for you. I noticed that it happened basically whenever executing any factory. So I'd watch the logs. And if I create this record, it would do roughly what I expect it to. It would create the record and maybe one or two associated records because that's how Factory Bot works. But it wasn't creating a giant cascade or waterfall of records under the hood. If we create a product, the product should have an associated user. So we'll see a product and a user insert. But for some reason, that line create whatever database record was very, very slow. STEPH: Yeah, it's a good point, looking at factories because that's something I've noticed in triaging other tests is that I will often check to see how many records are created at a certain point because I've noticed there's a test where I think only one record is created, but I'll see 20. And that's an interesting artifact. But you're not running into that. But it sounds like there's more either some callback or transaction or something that's getting hung up and causing things to be slow. CHRIS: I love those ideas. I didn't even know those were sort of ideas in the back of my head. I didn't know how to even try and chase that down. There was nothing in the logs. I couldn't see anything. And again, I just kept giving up. But again, this other developer on the team found the answer. But at this point, I'll just share the answer because I think we've run out of the good bits of the trivia. It turns out bcrypt was the answer. So password-hashing was incredibly slow on my machine. What was interesting is I mentioned this to the other developer because they also have an M1. But there are three of us working on the project. The third developer does not have the M1 architecture. So that was an interesting thing. I was like, I feel like this maybe is a thing because we're both experiencing this, but the other developer isn't. So it turns out bcrypt is wildly slow on the M1 architecture, which is sort of interesting as an artifact of like, what is password hashing, and how does it work? And in normal setups, I think the way it works is Devise will say by default, "We're going to do 12 runs of bcrypt." So like take the password, put it into the hashing algorithm, take the output, put it back into the hashing algorithm, and do that loop 12 times or whatever. In test mode, it often will configure it to just run once, but it will still use the password hashing. Turns out even that was too slow for us. So we in test mode enabled it so that the password hashing algorithm was just the password. Don't do anything. Just return it directly. Turn off bcrypt; it's too painful for us. But it was very interesting to see that that was the case. STEPH: Yeah, I don't like that answer. [laughs] I'm not a fan. That is interesting and tricky. And I feel like the only way I would have found that...I'm curious how they found it because I feel like at that point, I would have started outputting something to figure out, okay, where is the slow process? What's the thing that's taking so long to return? And if I can't see tailing the test logs, then I would start just using a PUT statement to figure out what's taking a long time? And start trying to troubleshoot from there. So I'm curious, do you know how they identified that was the core issue? CHRIS: Yes, actually. I'm looking back at the pull requests right now. And I'm mentioning that this was related to the M1 architecture, but I don't think that's actually true because the blog post that they're linking to is Collective Idea blog post: Tests Oddly Slow? Might be bcrypt. And then there's a related Rails issue. They used TestProf, which is a process that you can run that will examine, I think the stack trace and say where are we spending the most time? And from that, they were able to see it looks like it's at the point where we're doing bcrypt. And so that's the answer. As an aside, my test suite went from 28 minutes and 30 seconds to 1 minute and 30 seconds with this magical speed up. STEPH: Nice. That's a great idea, TestProf. I don't know if I've used that tool. It rings a bell. But that's an awesome sales pitch for using TestProf. CHRIS: Similarly, I don't think I'd ever use it before. But it truly was this wonderful holiday gift. Because the minute I switched over to this branch, I was like, oh my God, the tests are so fast. I have one of those fancy, new fast computers, [laughs] and now they're so fast. STEPH: Wait, you had to switch to a branch? I figured it was something that you had to do special on your machine. So I'm intrigued how they fixed it for you, and then you switched to a branch and saw the speed increase. CHRIS: So they opened a pull request. And that pull request had the change in the code. So it was a code-level configuration to say, "Hey, Devise, when you do the password hashing thing, maybe just don't, maybe be easy for a moment," [laughter] but only in the test configuration. So all I had to do was check out the branch, and then that configuration was part of the Rails helper setup, and then we were good to go from there. I added an extra let me be terrified about this because the idea of not hashing passwords in production is terrifying. So let me raise...I put a couple of different guards against like, this should only ever run in test. I know it's in the spec support directory, so it shouldn't. Let me just add some other guards here just to superduper make sure we still hash passwords in production. STEPH: Devise has a bcrypt chill mode. Good to know. [laughs] And I like all the guards you put in place too. CHRIS: Yeah, it was really frankly such a relief to get that back to normal, is how I would describe it. But yeah, that's a fun little testing, and password hashing, and little adventure that I get to go on. Mid-roll Ad And now a quick break to hear from today's sponsor, Scout APM. Scout APM is leading-edge application performance monitoring that's designed to help Rails developers quickly find and fix performance issues without having to deal with the headache or overhead of enterprise platform feature bloat. With a developer-centric UI and tracing logic that ties bottlenecks to source code, you can quickly pinpoint and resolve those performance abnormalities like N+1 queries, slow database queries, memory bloat, and much more. Scout's real-time alerting and weekly digest emails let you rest easy knowing Scout's on watch and resolving performance issues before your customers ever see them. Scout has also launched its new error monitoring feature add-on for Python applications. Now you can connect your error reporting and application monitoring data on one platform. See for yourself why developers call Scout their best friend and try our error monitoring and APM free for 14 days; no credit card needed. And as an added-on bonus for Bike Shed listeners, Scout will donate $5 to the open-source project of your choice when you deploy. Learn more at scoutapm.com/bikeshed. That's scoutapm.com/bikeshed. STEPH: So I have something that I've been wanting to ask you, and it's not tech-related. But we can make this personal and work however we want to tackle it. But there is a previous episode where we read a listener question from Brian about their self-diagnosed toxic trait being large pull requests. And Brian was being playful with the use of the term toxic trait. But it got me thinking, it's like, well, what is my toxic trait? And it seems like a fun twist on you, and I aren't really big on New Year's Eve resolutions. And in fact, I think you and I are more like if we're interested in achieving a goal, we'd rather focus on building a habit versus this specific, ambiguous we're going to publish ten blogs this year. But rather, I'd rather sit down and write for 15 minutes each day. And it seemed like a fun twist instead of thinking about what are my toxic traits, personal, at work? Large pull request is a really fun example. So I'll let you choose. I can go first, or you can go first, but I'm excited to hear your thoughts on this one. CHRIS: I think I've been talking too much. So let's have you go first at this point/ also, I want a few more seconds to think about my toxic trait. STEPH: [laughs] All right, I have a couple. So that's an interesting point start there [laughs], but here we are. So I was even bold because I asked other people. Because I'm like, well, if I'm going to be fully self-aware, I can't just...I might lie to myself. So I'm going to have to ask some other people. So I asked other folks. And my personal toxic trait is I am tardy. I am that person who I love to show up 5, 10, 15 minutes late. It's who I am. I don't find it a problem, but it often bothers other people. So that is my informed toxic trait. That might be a strong term for it. But that's the one that gives people the most grief. CHRIS: Interesting. I do find the framing of I don't find my own tardiness to be a problem as a really interesting sort of lens on it. But okay, it's okay. STEPH: I see it as long as I'm getting really good quality time with someone; if I'm five minutes late, I'm five minutes late. I think the voice going high means I'm a little defensive. [laughs] CHRIS: But at least you're self-aware about all of these aspects. [laughs] That's critical. STEPH: I am self-aware, and most of the people in my life are also self-aware, although I do correct that behavior for work. That feels more important that I be on time for everything because I don't want anyone to feel that I am not valuing their time. But when it comes to friends and family, they thankfully accept me for who I am. But then, on the work note, I started thinking about toxic traits there. And the one I came up with is that I'm a pretty empathetic person. And there's something that I learned that's called toxic empathy. And it's when you let people's emotions hijack your own emotions, or you'll prioritize someone else's physical or mental health over your own. So, for example, it could be letting another person's anxiety and stress keep you from getting your current tasks and responsibilities done. And there's a really funny tweet that I saw where someone says, "Hey, can I vent to you about something?" And the first person telling it from their perspective they're crying in the middle of a breakdown. And they're like, "Yeah, sure, what's up?" And I felt seen by that tweet. I was like, yeah; this seems like something I would do. [laughs] So over time, as something I'm aware of about myself, I've learned to set more boundaries and only keep relationships where equal support is given to both individuals. And this circles back to the book anecdote that I shared where I had to be careful about the books that I read because they can really affect my mood based on how the characters are doing in that book. So yeah, that's mine. I have one other one that I want to talk about. But I'm going to pause there so you can go. CHRIS: Okay, fun. [laughs] This is fun. And it is a challenging mental exercise. But it is also, I don't know, vulnerable, and you have to look inside and all that. I think I poked at one earlier on as we were talking, but the idea of perfect is the enemy of the good. And I don't mean this in the terrible like; what's your worst trait in a job interview? And you're like, "I'm a perfectionist." I don't mean it in that way. I mean, I have at times struggled to make progress because so much of me wants to build the complete plan, and then very meticulously worked through in exactly the order that I define, sort of like a waterfall versus agile sort of thing. And it is an ongoing very intentional body of work for me to try and break myself off those habits to try and accept what's the best thing that I can do? How can I move forward? How can I identify things that I will regret later versus things that are probably fine? They're little messes that I can clean up, that sort of thing. And even that construing it as like there's a good choice and a bad choice, and I'm trying to find the perfect choice. It's like almost nothing in the world actually falls into that shape. So perfect is the enemy of the good is a really useful phrase that I've held onto that helps me. And it's like, aiming for that perfection will cause you to miss the good that is available. And so, trying to be very intentional with that is the work that I'm doing. But that I think is a toxic trait that I have. STEPH: I really like what you just said about being able to identify regrets. That feels huge. If you can look at a moment and say, "I really want to get all this done. I will regret if I don't do this, but the rest of it can wait," that feels really significant. So the other one that I wanted to talk about is actually one that I feel like I've overcome. So this one makes me happy because I feel like I'm in a much better space with it, but it's negative self-talk. And it's essentially just how you treat yourself when you make a mistake. Or what's your internal dialogue throughout the day? And I used to be harsh on myself. If I made a mistake, I was upset, I was annoyed with myself, and I wouldn't have a kind voice. And I don't know if I've shared this with you. But over time, I've gotten much better at that. And what has really helped me with it is instead of talking to myself in an unkind voice, I talk to myself how someone who loves me will talk to me. I'm not going to talk to a friend in a really terrible, mean voice, and I wouldn't expect them to talk to me. So I channel someone that I know is very positive and supportive of me. And I will frame it in that context. So then, when I make a mistake, it's not a big deal. And I just will say kind things to myself or laugh about it and move through it. And I found that has been very helpful and also funny and maybe a little embarrassing at times because when pairing, I will talk out loud to myself. And so I'll do something silly, and I'll laugh. I'm like, "Oh, Stephanie," that was silly. And the other person hears me say that. [laughs] So it's a little entertainment for them too, I suppose. CHRIS: Having observed it, it is charming. STEPH: It's something that I've noticed that a lot of people do, and we don't talk about a lot. I mean, there's imposter syndrome. People will talk about that. But we don't often talk about how critical we are of ourselves. It's something that I will talk to people who I highly admire and just think they're incredibly good at what they do. And then when they give me a glimpse into how they think about themselves at times or how they will berate themselves for something they have done or because they didn't sit down for that 15 minutes and write per day, then it really highlights. And I hope that if we talk about this more, the fact that people tend to have such a negative inner critical voice, that maybe we can encourage people to start filtering that voice to a more kind voice and more supportive voice, and not have this unhelpful energy that's holding us back from really enjoying our work and being our best self. CHRIS: That's so interesting to hear you say all of that for one of your traits because it's very similar to the last one for myself, which is I find that I do not feel safe unless (This is going to sound perhaps boastful, and I definitely do not mean it as boastful.) but unless I'm perfect. I guess the standard that I hold myself to versus the standard that I hold others to are wildly different. Of course, for other people, yes, bugs will get into the code, or they may misunderstand something, or they may miss communicate something, or they may forget something. But if I do that, I feel unsafe, which is a thing that I've slowly come to recognize. I'm like, well, that shouldn't be true because that's definitely not how I feel about other people. That's not a reasonable standard to hold. But that needing to be perfectly secured on all fronts and have just this very defensible like, yeah, I did the work, and it's great, and that's all that's true in the world. That's not reasonable. I'm never going to achieve that. And so, for a long time, there have been moments where I just don't feel great as a result of this, as a result of the standard that I'm trying to hold myself to. But very similarly, I have brought voices into my head. In my case, I've actually identified a board of directors which are random actual people from my world but then also celebrities or fake people, and I will have conversations with them in my head. And that is a true thing about me that I'm now saying on the internet, here we are. STEPH: [laughs] CHRIS: And I'm going to throw it out there. It is fantastic. It is one of my favorite things that I have in my world. As a pointed example of a time that I did this, I was running a race at one point, which I occasionally will run road races. I am not good at it at all. But I was running this particular race. It was a five-mile January race a couple of years back. And I was getting towards the end, and I was just going way faster than I normally do. I was at the four-mile mark, and I was well ahead of pace. I was like, what is this? I was on track to get a personal record. I was like, this is exciting. But I didn't know if I could finish. And so I started to consult the board of directors and just check in with them and see what they would think about this. And I got weirdly emotional, and it was weirdly real is the thing that was very interesting, not like I actually believed that these people were running with me or anything of that nature. But the emotions and the feelings that I was able to build up in that moment were so real and so powerful and useful to me that it was just like, oh, okay, yeah, that's a neat trick. I'm going to hold on to that one. And it has been continuously useful moving forward from that of like, yeah, I can just have random conversations with anyone and find useful things in that and then use that to feel better about how I'm working. STEPH: I so love this idea. And I'm now thinking about who to put on my board of directors. [laughs] CHRIS: I'm telling you, everybody should have one. As I'm saying this, there is definitely a portion of me that is very self-conscious that I'm saying this on the internet because this is probably one of the weirdest things that I do. STEPH: [laughs] CHRIS: But it is so valuable. And it's one of those like; I like getting over that hump of like, well, this is an odd little habit that I have, but the utility that I get from it and the value is great. So highly recommend it. It's a fun game of who gets to go on your board. You can change it out every year. And it is interesting because the more formed picture that you have of the individual, the more you can have a real conversation with them, and that's fun. STEPH: So, as I'm working on forming a board of directors, how do you separate? Is it based on one person is running work and one is finance? How does each person have a role? CHRIS: So there are no rules in this game. [laughs] This is a ridiculous thing that I do. But I find value in it's sort of vaguely the same collection of individuals. Some of them are truly archetypal, even fictitious characters. As long as I can have a picture in my head of them and say, "What would they say in a situation?" If you're considering, say, moving jobs? What would Arnold Schwarzenegger have to say about that? And you'd be surprised the minute you ask it in your head; your brain is surprisingly good at these things. And it's like, let me paint The Terminator yelling at you to get the new job. STEPH: [laughs] CHRIS: Not get to the chopper, but get the new job. And it's surprisingly effective. And so I don't have a compartmentalized like, this is my work crew, this is my life crew. It's a nonsense collection of fake people in my head that I get to talk to. I'm saying this on the internet; here we are. [laughs] STEPH: That makes sense to me, though, because as you're describing that situation, I do something similar, but I've just never thought about it in these concrete terms where I have someone in mind, and it's a real person in my life who are my confidence person. They're the one that I know they are very confident. They're going to push for the best deal for themselves. They're going to look out for themselves. They're going to look out for me. They're going to support me. I have that person. And so, even if I can't talk to them in reality, then I will still channel that energy. And then I have someone else who's like my kind filter, and they're the person that's going to be very supportive. And you make mistakes, and it's not a big deal, and you learn, and you move on. And so I have those different...and in my mind, I just saw them as coaches. Instead of board of directors, I just see them as different things that I don't see as strong in my character. And so I have these coaches in those particular areas that then I will pull energy from to then bolster myself in a particular way or skill. This was fun. I'm so glad we talked about this because that is very insightful to you, and for me as well, and to myself. CHRIS: Yeah, we went deep on this episode. STEPH: No tech but lots of deep personal insight. CHRIS: I talked a little bit about bcrypt. [laughs] You can't stop me from talking about tech for an entire episode. But then I also talked about my board of directors and the conversations I have with myself, so I feel like I rounded it out pretty good. STEPH: It's a very round episode. CHRIS: Yeah, I agree. And with that roundedness, should we wrap up? STEPH: Let's wrap up. CHRIS: The show notes for this episode can be found at bikeshed.fm. STEPH: This show is produced and edited by Mandy Moore. CHRIS: If you enjoyed listening, one really easy way to support the show is to leave us a quick rating or even a review on iTunes, as it really helps other folks find the show. STEPH: If you have any feedback for this or any of our other episodes, you can reach us at @_bikeshed or reach me on Twitter @SViccari. CHRIS: And I'm @christoomey. STEPH: Or you can reach us at hosts@bikeshed.fm via email. CHRIS: Thanks so much for listening to The Bike Shed, and we'll see you next week. All: Byeeeeeeeeee!!! Announcer: This podcast was brought to you by thoughtbot. thoughtbot is your expert design and development partner. Let's make your product and team a success.

EV News Daily - Electric Car Podcast
1345: 17 Jan 2022 | China's #1 EV Sold 400,000 Units Last Year

EV News Daily - Electric Car Podcast

Play Episode Listen Later Jan 17, 2022 23:11


Show #1345 If you get any value from this podcast please consider supporting my work on Patreon. Plus all Patreon supporters get their own unique ad-free podcast feed. Good morning, good afternoon and good evening wherever you are in the world, welcome to EV News Daily for Monday 17th January. It's Martyn Lee here and I go through every EV story so you don't have to. Thank you to MYEV.com for helping make this show, they've built the first marketplace specifically for Electric Vehicles. It's a totally free marketplace that simplifies the buying and selling process, and help you learn about EVs along the way too. Welcome to a new Patreon Executive Producer MARK RICHARDS ELECTRIC CAR SALES PASS ‘TIPPING POINT' IN SWITZERLAND - The number of new electric cars sold in Switzerland continues to accelerate – even faster than predicted, according to the Touring Club Switzerland (TCS) car association. - For the September to November period, fully electric vehicles accounted for 18.3% of new registrations and plug-in vehicles (electric and plug-in hybrids) hit a record 28% - The TCS described the 18.3% threshold as a milestone. Electric vehicles had clearly gone beyond a “tipping point” and moved into the mainstream, it said. - In Switzerland incentives for plug-in vehicles are not coordinated and vary between cantons. Top 5 Models: 1.       Tesla Model 3 2.       Volkswagen ID.3 3.       Škoda Enyaq 4.       Renault Zoe 5.       Fiat 500 · Original Source : https://www.swissinfo.ch/eng/sci-tech/electric-cars-pass--tipping-point--in-switzerland/47260170 APPLE'S DIGITAL CAR KEYS MAY WORK WITH HYUNDAI AND GENESIS MODELS THIS SUMMER - Apple's digital car key feature might soon be useful for unlocking more than a handful of BMW models. - Hyundai and its upscale Genesis badge will support Apple CarKey "by the summer." It's not certain which models would provide the option, but it's notable that some trim levels of the Ioniq 5 and other Hyundai cars include NFC for a (currently proprietary) digital key. - CarKey (and its Android equivalent) treats the phone more like a physical key. You just have to bring your phone or Apple Watch to the door handle to unlock it, and you can even place your phone in a given area to start the car. People with ultra-wideband iPhones (such as the iPhone 11 and newer) can even leave their phone in their pocket when opening and starting the vehicle. Original Source : https://www.engadget.com/apple-carkey-hyundai-genesis-cars-172130052.html DEVELOPER HACK PUTS CARPLAY ON TESLA USING A RASPBERRY PI - A developer has come up with a way to get CarPlay running on a Tesla, with a workaround allowing drivers access to their iPhones while behind the wheel. - Polish developer Michal Gapinski came up with his own way.  In images and video posted to Twitter on Friday, Gapinski shows his Tesla running CarPlay on the display of his vehicle. The clips, spotted by Tesla North show the feature as being quite functional, including Apple Maps and Apple Music. - Gapinski instead bypasses Wi-Fi restrictions so that the Tesla's browser can connect to a secondary device. In turn, the browser displays what is shown on the host device as a live video feed. - Currently in its early stages, the developer says he plans to release it to the public "when it's polished." - the project actually relies on a Raspberry Pi running a custom build of Android. That build runs an interface that works with CarPlay, enabling Apple's UI to be usable from the larger screen. Original Source : https://appleinsider.com/articles/22/01/15/developer-hack-puts-carplay-on-tesla-using-a-raspberry-pi TRITIUM GOES PUBLIC TO EXPAND TO THREE PLANTS GLOBALLY - The Australian charging column manufacturer Tritium has launched on the US stock exchange Nasdaq. Tritium plans to invest the capital generated by the IPO in its expansion to three global manufacturing facilities and the development of global sales and service teams. - . Going public by merging with an already listed company has become the most utilized method for electric mobility companies to shorten the lengthy IPO process in the US. - Tritium currently has manufacturing facilities in Australia and is currently building manufacturing facilities in the USA. Tritium CEO Jane Hunter recently told Bloomberg that Tritium is ramping up speed to get its US manufacturing facility ready Original Source : https://www.electrive.com/2022/01/14/tritium-goes-public-to-expand-to-three-plants-globally/ 400,000 UNITS OF SAIC-GM-WULING'S MINI EV WERE SOLD IN 2021 - General Motors' Chinese joint venture SAIC-GM-Wuling was the number one purveyor of electric vehicles in China last year, selling nearly 400,000 units of its sensible MINI EV hatchback. - numbers published by the China Passenger Car Association, SAIC-GM-Wuling sold a total of 395,451 examples of its MINI EV between January and December last year. This made it the best-selling EV in China ahead of the BYD Qin, which sold 187,227 units. - The MINI EV is priced from the equivalent of just over $4,000 USD in China, with each unit carrying a minuscule profit margin of $14 for SAIC-GM-Wuling. While the margins are small, sales of the vehicle allow the automaker to earn carbon credits, saving it money in the long term. Original Source : https://gmauthority.com/blog/2022/01/almost-400000-units-of-saic-gm-wulings-mini-ev-were-sold-in-2021/ CHINESE EVS FIND A NICHE MAKING SHORT-HAUL DELIVERIES IN JAPAN - Logistics companies in Japan, striving to cut costs and make the most out of the pandemic-inspired online shopping boom, are finding an unlikely white knight in Chinese electric-vehicle manufacturers, whose vans make last-mile deliveries not only cheaper, but cleaner as well. - Tokyo's SBS Holdings Inc., a listed logistics company that offers deliveries, recently struck a deal to buy 2,000 light EV trucks over five years from Japanese EV startup folofly. The cars will be made by a unit of Dongfeng Motor Group Co - Although Japan isn't currently a huge market for electric vehicles — EV penetration runs at just 1% versus 30% in some cities in China — Chinese automakers sense an opportunity. - "If Japanese companies just stick to producing cars, foreign companies will come in,” said Hiroyasu Koma, CEO of folofly, the company working with SBS and Dongfeng Motor on the former's fleet-electrification strategy. Original Source : https://www.japantimes.co.jp/news/2022/01/17/business/corporate-business/japan-buying-china-ev/ NEW 2023 PEUGEOT E-308: EV HATCHBACK TO BRING 250-MILE RANGE - Peugeot has confirmed the battery-electric variants of its 308 hatchback and SW estate will be more powerful, more efficient and have a longer range than its existing e-208 supermini. - The e-308 will join pure-combustion and plug-in hybrid variants of the family hatchback to complete the Peugeot 308 line up when it goes on sale next year. - The battery is only 4kWh bigger than the one in the smaller e-208 but Peugeot is claiming that a new NMC811 battery chemistry will give the car increased efficiency, of 5mi/kWh (12.4kWh/100km), - That would give the e-308 a test cycle range of nearly 250 miles. - The e-308 will go into full production in July 2023, with deliveries shortly afterwards. Pricing will be announced nearer the time. Original Source : https://www.autocar.co.uk/car-news/new-cars/new-2023-peugeot-e-308-ev-hatchback-bring-250-mile-range CATL TO UNVEIL BATTERY SWAP BRAND EVOGO - CATL, a leading Chinese battery firm, has officially confirmed it will hold a launch event for a new battery swap brand called EVOGO on Tuesday at 3:30 p.m. Beijing time. - In a post on popular domestic microblogging platform Weibo, a picture showing CATL's power exchange station looking somewhat rough was recently exposed. CATL responded on Monday: “This is a test station, which is different from what we will release on Tuesday.” Original Source : https://pandaily.com/catl-to-unveil-battery-swap-brand-evogo/ OLA ELECTRIC SCOOTER PRODUCTION SOARS, OPENING NEW PAYMENT WINDOW - Despite running into initial delays, Ola has significantly ramped up production of its high-speed smart electric scooters. Now the Indian company says it will be opening up a new payment window soon to complete more orders of its Ola S1 and S1 Pro electric scooters. - Production rates appeared to have soared though, as the company boasted a daily rate of nearly 1,000 scooters at the beginning of the year. - The scooters are produced in a megafactory known as the Ola Futurefactory. It has an intended designed capacity of two million electric scooters per year, or around 5,500 per day. Original Source : https://electrek.co/2022/01/14/ola-production-blows-past-1000-electric-scooters-per-day-opening-more-orders-soon/ JAGUAR I-PACE SALES SHRUNK TO BELOW 10,000 IN 2021 Original Source : https://insideevs.com/news/561066/jaguar-ipace-sales-2021/ PRODRIVE FEARS AUDI COULD "KILL" DAKAR COMPETITION IN 2023 Original Source : https://www.motorsport.com/dakar/news/prodrive-audi-kill-competition-2023-dakar/7275480/ EV SALES CAN OVERTHROW GAS-GUZZLERS IN EUROPE BY 2025, STUDY FINDS   Original Source : https://thenextweb.com/news/ev-sales-can-overthrow-gas-guzzlers-europe-2025-study-finds WHAT ELECTRIC VEHICLE TO BUY? FINALLY TV ADS CAN HELP Original Source : https://www.bloomberg.com/news/articles/2022-01-15/what-electric-vehicle-to-buy-finally-tv-ads-can-help QUESTION OF THE WEEK WITH EMOBILITYNORWAY.COM What TV, Print or Digital advertising have you seen for EVs recently which you noticed, or thought was memorable? Email me your answer now: hello@evnewsdaily.com It would mean a lot if you could take 2mins to leave a quick review on whichever platform you download the podcast. And  if you have an Amazon Echo, download our Alexa Skill, search for EV News Daily and add it as a flash briefing. Come and say hi on Facebook, LinkedIn or Twitter just search EV News Daily, have a wonderful day, I'll catch you tomorrow and remember…there's no such thing as a self-charging hybrid. PREMIUM PARTNERS PHIL ROBERTS / ELECTRIC FUTURE BRAD CROSBY PORSCHE OF THE VILLAGE CINCINNATI AUDI CINCINNATI EAST VOLVO CARS CINCINNATI EAST NATIONAL CAR CHARGING ON THE US MAINLAND AND ALOHA CHARGE IN HAWAII DEREK REILLY FROM THE EV REVIEW IRELAND YOUTUBE CHANNEL RICHARD AT RSEV.CO.UK – FOR BUYING AND SELLING EVS IN THE UK EMOBILITYNORWAY.COM/

Amigos: Everything Amiga Podcast
KGB - A Soviet Adventure Masterpiece! Amigos: Everything Amiga 334

Amigos: Everything Amiga Podcast

Play Episode Listen Later Jan 15, 2022 73:59


The Soviet Security Agency is the subject of this week's point and click adventure, a masterpiece of UI and storytelling.

The iDeveloper Podcast
317 - Data Management and API's: The SQL

The iDeveloper Podcast

Play Episode Listen Later Jan 13, 2022 36:20


This week the boys talk the ever evolving remote workplace, and the best ways of communicating and emulating an office environment. John talks his recent frustration with debugging and context switching as a UI developer to managing various API's, initially setting up an Xcode Project and problems with Swift Packages. Scotty talks the public release of the MoneyWell 3.5 beta. MoneyWell 3.5 Public Beta Closer | Virtual Office

Screaming in the Cloud
“Cloudash”ing onto Mac with Maciej Winnicki

Screaming in the Cloud

Play Episode Listen Later Jan 13, 2022 34:41


About MaciejMaciej Winnicki is a serverless enthusiast with over 6 years of experience in writing software with no servers whatsoever. Serverless Engineer at Stedi, Cloudash Founder, ex-Engineering Manager, and one of the early employees at Serverless Inc.Links: Cloudash: https://cloudash.dev Maciej Winnicki Twitter: https://twitter.com/mthenw Tomasz Łakomy Twitter: https://twitter.com/tlakomy Cloudash email: hello@cloudash.dev 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: This episode is sponsored in part byLaunchDarkly. Take a look at what it takes to get your code into production. I'm going to just guess that it's awful because it's always awful. No one loves their deployment process. What if launching new features didn't require you to do a full-on code and possibly infrastructure deploy? What if you could test on a small subset of users and then roll it back immediately if results aren't what you expect? LaunchDarkly does exactly this. To learn more, visitlaunchdarkly.com and tell them Corey sent you, and watch for the wince.Corey: This episode is sponsored in part by our friends at Rising Cloud, which I hadn't heard of before, but they're doing something vaguely interesting here. They are using AI, which is usually where my eyes glaze over and I lose attention, but they're using it to help developers be more efficient by reducing repetitive tasks. So, the idea being that you can run stateless things without having to worry about scaling, placement, et cetera, and the rest. They claim significant cost savings, and they're able to wind up taking what you're running as it is in AWS with no changes, and run it inside of their data centers that span multiple regions. I'm somewhat skeptical, but their customers seem to really like them, so that's one of those areas where I really have a hard time being too snarky about it because when you solve a customer's problem and they get out there in public and say, “We're solving a problem,” it's very hard to snark about that. Multus Medical, Construx.ai and Stax have seen significant results by using them. And it's worth exploring. So, if you're looking for a smarter, faster, cheaper alternative to EC2, Lambda, or batch, consider checking them out. Visit risingcloud.com/benefits. That's risingcloud.com/benefits, and be sure to tell them that I said you because watching people wince when you mention my name is one of the guilty pleasures of listening to this podcast.Corey: Welcome to Screaming in the Cloud. I'm Cloud Economist Corey Quinn. And my guest today is Maciej Winnicki, who is the founder of Cloudash. Now, before I dive into the intricacies of what that is, I'm going to just stake out a position that one of the biggest painful parts of working with AWS in any meaningful sense, particularly in a serverless microservices way, is figuring out what the hell's going on in the environment. There's a bunch of tools offered to do this and they're all—yeee, they aspire to mediocrity. Maciej, thank you for joining me today.Corey: Welcome to Screaming in the Cloud. I'm Cloud Economist Corey Quinn. And my guest today is Maciej Winnicki, who is the founder of Cloudash. Now, before I dive into the intricacies of what that is, I'm going to just stake out a position that one of the biggest painful parts of working with AWS in any meaningful sense, particularly in a serverless microservices way, is figuring out what the hell's going on in the environment. There's a bunch of tools offered to do this and they're all—yeee, they aspire to mediocrity. Maciej, thank you for joining me today.Maciej: Thank you for having me.Corey: So, I turned out to have accidentally blown up Cloudash, sort of before you were really ready for the attention. You, I think, tweeted about it or put it on Hacker News or something; I stumbled over it because it turns out that anything that vaguely touches cloud winds up in my filters because of awesome technology, and personality defects on my part. And I tweeted about it as I set it up and got the thing running, and apparently this led to a surge of attention on this thing that you've built. So, let me start off with an apology. Oops, I didn't realize it was supposed to be a quiet launch.Maciej: I actually thank you for that. Like, that was great. And we get a lot of attention from your tweet thread, actually because at the end, that was the most critical part. At the end of the twitter, you wrote that you're staying as a customer, so we have it on our website and this is perfect. But actually, as you said, that's correct.Our marketing strategy for releasing Cloudash was to post it on LinkedIn. I know this is not, kind of, the best strategy, but that was our plan. Like, it was like, hey, like, me and my friend, Tomasz, who's also working on Cloudash, we thought like, let's just post it on LinkedIn and we'll see how it goes. And accidentally, I'm receiving a notification from Twitter, “Hey, Corey started tweeting about it.” And I was like, “Oh, my God, I'm having a heart attack.” But then I read the, you know—Corey: Oops.Maciej: [laugh]. Yeah. I read the, kind of, conclusion, and I was super happy. And again, thank you for that because this is actually when Cloudash kind of started rolling as a product and as a, kind of, business. So yeah, that was great.Corey: To give a little backstory and context here is, I write a whole bunch of serverless nonsense. I build API's Gateway, I hook them up to Lambda's Function, and then it sort of kind of works. Ish. From there, okay, I would try and track down what was going on because in a microservices land, everything becomes a murder mystery; you're trying to figure out what's broken, and things have exploded. And I became a paying customer of IOpipe. And then New Relic bought them. Well, crap.Then I became a paying customer of Epsagon. And they got acquired by Cisco, at which point I immediately congratulated the founders, who I know on a social basis, and then closed my account because I wanted to get out before Cisco ruins it because, Cisco. Then it was, what am I going to use next? And right around that time is when I stumbled across Cloudash. And it takes a different approach than any other entity in the space that I've seen because you are a native Mac desktop app. I believe your Mac only, but you seem to be Electron, so I could be way off base on that.Maciej: So, we're Linux as well right now and soon we'll be Windows as well. But yeah, so, right now is Mac OS and Linux. Yeah, that's correct. So, our approach is a little bit different.So, let me start by saying what's Cloudash? Like, Cloudash is a desktop app for, kind of, monitoring and troubleshooting serverless architectures services, like, serverless stuff in general. And the approach that we took is a little bit different because we are not web-based, we're desktop-based. And there's a couple of advantages of that approach. The first one is that, like, you don't need to share your data with us because we're not, kind of, downloading your metrics and logs to our back end and to process them, et cetera, et cetera. We are just using the credentials, the AWS profiles that you have defined on your computer, so nothing goes out of your AWS account.And I think this is, like, considering, like, from the security perspective, this is very crucial. You don't need to create a role that you give us access to or anything like that. You just use the stuff that you have on your desktop, and everything stays on your AWS account. So, nothing—we don't download it, we don't process it, we don't do anything from that. And that's one approach—well, that's the one advantage. The other advantage is, like, kind of, onboarding, as I kind of mentioned because we're using the AWS profiles that you have defined in your computer.Corey: Well, you're doing significantly more than that because I have a lot of different accounts configured different ways, and when I go to one of them that uses SSO, it automatically fires me off to the SSO login page if I haven't logged in that day for a 12 hour session—Maciej: Yes.Corey: —for things that have credentials stored locally, it uses those; and for things that are using role-chaining to use assuming roles from the things I have credentials for, and the things that I just do role assumption in, and it works flawlessly. It just works the way that most of my command-line tools do. I've never seen a desktop app that does this.Maciej: Yeah. So, we put a lot of effort into making sure that this works great because we know that, like, no one will use Cloudash if there's—like, not no one, but like, we're targeting, like, serverless teams, maybe, in enterprise companies, or serverless teams working on some startups. And in most cases, those teams or those engineers, they use SSO, or at least MFA, right? So, we have it covered. And as you said, like, it should be the onboarding part is really easy because you just pick your AWS profile, you just pick region, and just pick, right now, a CloudFormation stack because we get the information about your service based on CloudFormation stack. So yeah, we put a lot of effort in making sure that this works without any issues.Corey: There are some challenges to it that I saw while setting it up, and that's also sort of the nature of the fact you are, in fact, integrating with CloudWatch. For example, it's region specific. Well, what if I want to have an app that's multi-region? Well, you're going to have a bad time because doing [laugh] anything multi-region in AWS means you're going to have a bad time that gets particularly obnoxious and EC2 get to when you're doing something like Lambda@Edge, where, oh, where are the logs live; that's going to be in a CloudFront distribution in whatever region it winds up being accessed from. So, it comes down to what distribution endpoint or point of presence did that particular request go through, and it becomes this giant game of whack-a-mole. It's frustrating, and it's obnoxious, and it's also in no way your fault.Maciej: Yeah, I mean, we are at the beginning. Right now, it's the most straightforward, kind of pe—how people think about stacks of serverless. They're think in terms of regions because I think for us, regions, or replicated stacks, or things like that are not really popular yet. Maybe they will become—like, this is how AWS works as a whole, so it's not surprising that we're kind of following this path. I think my point is that our main goal, the ultimate goal, is to make monitoring, as I said, the troubleshooting serverless app as simple as possible.So, once we will hear from our customers, from our users that, “Hey, we would like to get a little bit better experience around regions,” we will definitely implement that because why not, right? And I think the whole point of Cloudash—and maybe we can go more deep into that later—is that we want to bring context into your metrics and logs. If you're seeing a, for example, X-Ray trace ID in your logs, you should be able with one click just see that the trace. It's not yet implemented in Cloudash, but we are having it in the backlog. But my point is that, like, there should be some journey when you're debugging stuff, and you shouldn't be just, like, left alone having, like, 20 tabs, Cloudash tabs open and trying to figure out where I was—like, where's the Lambda? Where's the API Gateway logs? Where are the CloudFront logs? And how I can kind of connect all of that? Because that's—it's an issue right now.Corey: Even what you've done so far is incredibly helpful compared to the baseline experience that folks will often have, where I can define a service that is comprised of a number of different functions—I have one set up right now that has seven functions in it—I grab any one of those things, and I can set how far the lookback is, when I look at that function, ranging from 5 minutes to 30 days. And it shows me at the top the metrics of invocations, the duration that the function runs for, and the number of errors. And then, in the same pane down below it, it shows the CloudWatch logs. So, “Oh, okay, great. I can drag and zoom into a specific timeframe, and I see just the things inside of that.”And I know this sounds like well, what's the hard part here? Yeah, except nothing else does it in an easy-to-use, discoverable way that just sort of hangs out here. Honestly, the biggest win for me is that I don't have to log in to the browser, navigate through some ridiculous other thing to track down what I'm talking about. It hangs out on my desktop all the time, and whether it's open or not, whenever I fire it up, it just works, basically, and I don't have to think about it. It reduces the friction from, “This thing is broken,” to, “Let me see what the logs say.”Very often I can go from not having it open at all to staring at the logs and having to wait a minute because there's some latency before the event happens and it hits CloudWatch logs itself. I'm pretty impressed with it, and I've been keeping an eye on what this thing is costing me. It is effectively nothing in terms of CloudWatch retrieval charges. Because it's not sitting there sucking all this data up all the time, for everything that's running. Like, we've all seen the monitoring system that winds up costing you more than it costs more than they charge you ancillary fees. This doesn't do that.I also—while we're talking about money, I want to make very clear—because disclaiming the direction the money flows in is always important—you haven't paid me a dime, ever, to my understanding. I am a paying customer at full price for this service, and I have been since I discovered it. And that is very much an intentional choice. You did not sponsor this podcast, you are not paying me to say nice things. We're talking because I legitimately adore this thing that you've built, and I want it to exist.Maciej: That's correct. And again, thank you for that. [laugh].Corey: It's true. You can buy my attention, but not my opinion. Now, to be clear, when I did that tweet thread, I did get the sense that this was something that you had built as sort of a side project, as a labor of love. It does not have VC behind it, of which I'm aware, and that's always going to, on some level, shade how I approach a service and how critical I'm going to be on it. Just because it's, yeah, if you've raised a couple 100 million dollars and your user experience is trash, I'm going to call that out.But if this is something where you just soft launched, yeah, I'm not going to be a jerk about weird usability bugs here. I might call it out as “Ooh, this is an area for improvement,” but not, “What jackwagon thought of this?” I am trying to be a kinder, gentler Corey in the new year. But at the same time, I also want to be very clear that there's room for improvement on everything. What surprised me the most about this is how well you nailed the user experience despite not having a full team of people doing UX research.Maciej: That was definitely a priority. So, maybe a little bit of history. So, I started working on Cloudash, I think it was April… 2019. I think? Yeah. It's 2021 right now. Or we're 2022. [unintelligible 00:11:33].Corey: Yeah. 2022, now. I—Maciej: I'm sorry. [laugh].Corey: —I've been screwing that up every time I write the dates myself, I'm with you.Maciej: [laugh]. Okay, so I started working on Cloudash, in 2020, April 2020.Corey: There we go.Maciej: So, after eight months, I released some beta, like, free; you could download it from GitHub. Like, you can still download on GitHub, but at that time, there was no license, you didn't have to buy a license to run it. So, it was, like, very early, like, 0.3 version that was working, but sort of, like, [unintelligible 00:12:00] working. There were some bugs.And that was the first time that I tweeted about it on Twitter. It gets some attention, but, like, some people started using it. I get some feedback, very initial feedback. And I was like, every time I open Cloudash, I get the sense that, like, this is useful. I'm talking about my own tool, but like, [laugh] that's the thing.So, further in the history. So, I'm kind of service engineer by my own. I am a software engineer, I started focusing on serverless, in, like, 2015, 2016. I was working for Serverless Inc. as an early employee.I was then working as an engineering manager for a couple of companies. I work as an engineering manager right now at Stedi; we're also, like, fully serverless. So I, kind of, trying to fix my own issues with serverless, or trying to improve the whole experience around serverless in AWS. So, that's the main purpose why we're building Cloudash: Because we want to improve the experience. And one use case I'm often mentioning is that, let's say that you're kind of on duty. Like, so in the middle of night PagerDuty is calling you, so you need to figure out what's going on with your Lambda or API Gateway.Corey: Yes. PagerDuty, the original [Call of Duty: Nagios 00:13:04]. “It's two in the morning; who is it?” “It's PagerDuty. Wake up, jackass.” Yeah. We all had those moments.Maciej: Exactly. So, the PagerDuty is calling you and you're, kind of, in the middle of night, you're not sure what's going on. So, the kind of thing that we want to optimize is from waking up into understanding what's going on with your serverless stuff should be minimized. And that's the purpose of Cloudash as well. So, you should just run one tool, and you should immediately see what's going on. And that's the purpose.And probably with one or two clicks, you should see the logs responsible, for example, in your Lambda. Again, like that's exactly what we want to cover, that was the initial thing that we want to cover, to kind of minimize the time you spent on troubleshooting serverless apps. Because as we all know, kind of, the longer it's down, the less money you make, et cetera, et cetera, et cetera.Corey: This episode is sponsored by our friends at Oracle Cloud. Counting the pennies, but still dreaming of deploying apps instead of "Hello, World" demos? Allow me to introduce you to Oracle's Always Free tier. It provides over 20 free services and infrastructure, networking, databases, observability, management, and security. And—let me be clear here—it's actually free. There's no surprise billing until you intentionally and proactively upgrade your account. This means you can provision a virtual machine instance or spin up an autonomous database that manages itself all while gaining the networking load, balancing and storage resources that somehow never quite make it into most free tiers needed to support the application that you want to build. With Always Free, you can do things like run small scale applications or do proof-of-concept testing without spending a dime. You know that I always like to put asterisks next to the word free. This is actually free, no asterisk. Start now. Visit snark.cloud/oci-free that's snark.cloud/oci-free.Corey: One of the things that I appreciate about this is that I have something like five different microservices now that power my newsletter production pipeline every week. And periodically, I'll make a change and something breaks because testing is something that I should really get around to one of these days, but when I'm the only customer, cool. Doesn't really matter until suddenly I'm trying to write something and it doesn't work. Great. Time to go diving in, and always I'm never in my best frame of mind for that because I'm thinking about writing for humans not writing for computers. And that becomes a challenge.And okay, how do I get to the figuring out exactly what is broken this time? Regression testing: It really should be a thing more than it has been for me.Maciej: You should write those tests. [laugh].Corey: Yeah. And then I fire this up, and okay, great. Which sub-service is it? Great. Okay, what happened in the last five minutes on that service? Oh, okay, it says it failed successfully in the logs. Okay, that's on me. I can't really blame you for that. But all right.And then it's a matter of adding more [print or 00:14:54] debug statements, and understanding what the hell is going on, mostly that I'm bad at programming. And then it just sort of works from there. It's a lot easier to, I guess, to reason about this from my perspective than it is to go through the CloudWatch dashboards, where it's okay, here's a whole bunch of metrics on different graphs, most of which you don't actually care about—as opposed to unified view that you offer—and then “Oh, you want to look at logs, that's a whole separate sub-service. That's a different service team, obviously, so go open that up in another browser.” And I'm sitting here going, “I don't know who designed this, but are there any windows in their house? My God.”It's just the saddest thing I can possibly experience when I'm in the middle of trying to troubleshoot. Let's be clear, when I'm troubleshooting, I am in no mood to be charitable to anyone or anything, so that's probably unfair to those teams. But by the same token, it's intensely frustrating when I keep smacking into limitations that get in my way while I'm just trying to get the thing up and running again.Maciej: As you mentioned about UX that, like, we've spent a lot of time thinking about the UX, trying different approaches, trying to understand which metrics are the most important. And as we all know, kind of, serverless simplifies a lot of stuff, and there's, like, way less metrics that you need to look into when something is happening, but we want to make sure that the stuff that we show—which is duration errors, and p95—are probably the most important in most cases, so like, covering most of this stuff. So sorry, I didn't mention that before; it was very important from the very beginning. And also, like, literally, I spent a lot of time, like, working on the colors, which sounds funny, [laugh] but I wanted to get them right. We're not yet working on dark mode, but maybe soon.Anyways, the visual part, it's always close to my heart, so we spent a lot of time going back to what just said. So, definitely the experience around using CloudWatch right now, and CloudWatch logs, CloudWatch metrics, is not really tailored for any specific use case because they have to be generic, right? Because AWS has, like, I don't know, like, 300, or whatever number of services, probably half of them producing logs—maybe not half, maybe—Corey: We shouldn't name a number because they'll release five more between now and when this publishes in 20 minutes.Maciej: [laugh]. So, CloudWatch has to be generic. What we want to do with Cloudash is to take those generic tools—because we use, of course, CloudWatch logs, CloudWatch metrics, we fetch data from them—but make the visual part more tailored for specific use case—in our case, it's the serverless use case—and make sure that it's really, kind of—it shows only the stuff that you need to see, not everything else. So again, like that's the main purpose. And then one more thing, we—like this is also some kind of measurement of success, we want to reduce number of tabs that you need to have open in your browser when you're dealing with CloudWatch. So, we tried to put most important stuff in one view so you don't need to flip between tabs, as you usually do when try to under some kind of broader scope, or broader context of your, you know, error in Lambda.Corey: What inspired you to do this as a desktop application? Because a lot of companies are doing similar things, as SaaS, as webapps. And I have to—as someone who yourself—you're a self-described serverless engineer—it seems to me that building a webapp is sort of like the common description use case of a lot of serverless stuff. And you're sitting here saying, “Nope, it's desktop app time.” Which again, I'm super glad you did. It's exactly what I was looking for. How do you get here?Maciej: I'd been thinking about both kinds of types of apps. So like, definitely webapp was the initial idea how to build something, it was the webapp. Because as you said, like, that's the default mode. Like, we are thinking webapp; like, let's build a webapp because I'm an engineer, right? There is some inspiration coming from Dynobase, which was made by a friend [unintelligible 00:18:55] who also lives in Poland—I didn't mention that; we're based in [Poznań 00:18:58], Poland.And when I started thinking about it, there's a lot of benefits of using this approach. The biggest benefit, as I mentioned, is security; and the second benefit is just most, like, cost-effective because we don't need to run in the backend, right? We don't need to download all your metrics, all your logs. We I think, like, let's think about it, like, from the perspective. Listen, so everyone in the company to start working, they have to download all of your stuff from your AWS account. Like, that sounds insane because you don't need all of that stuff elsewhere.Corey: Store multiple copies of it. Yeah I, generally when I'm looking at this, I care about the last five to ten minutes.Maciej: Exactly.Corey: I don't—Maciej: Exactly.Corey: —really care what happened three-and-a-half years ago on this function. Almost always. But occasionally I want to look back at, “Oh, this has been breaking. How long has it been that way?” But I already have that in the AWS environment unless I've done the right thing and turned on, you know, log expiry.Maciej: Exactly. So, this is a lot of, like, I don't want to be, like, you know, mean to anyone but like, that's a lot of waste. Like, that's a lot of waste of compute power because you need to download it; of cost because you need to get this data out of AWS, which you need to pay for, you know, get metric data and stuff like this. So, you need to—Corey: And almost all of its—what is it? Write once, read never. Because it's, you don't generally look at these things.Maciej: Yeah, yeah. Exactly.Corey: And so much of this, too, for every invocation I have, even though it's low traffic stuff, it's the start with a request ID and what version is running, it tells me ‘latest.' Helpful. A single line of comment in this case says ‘200.' Why it says that, I couldn't tell you. And then it says ‘End request ID.' The end.Now, there's no way to turn that off unless you disabled the ability to write to CloudWatch logs in the function, but ingest on that cost 50 cents a gigabyte, so okay, I guess that's AWS's money-making scam of the year. Good for them. But there's so much of that, it's like looking at—like, when things are working, it's like looking at a low traffic site that's behind a load balancer, where there's a whole—you have gigabytes, in some cases, of load balancer—of web server logs on the thing that's sitting in your auto-scaling group. And those logs are just load balancer health checks. 98% of it is just that.Same type of problem here, I don't care about that, I don't want to pay to store it, I certainly don't want to pay to store it twice. I get it, that makes an awful lot of sense. It also makes your security job a hell of a lot easier because you're not sitting on a whole bunch of confidential data from other people. Because, “Well, it's just logs. What could possibly be confidential in there?” “Oh, my sweet summer child, have you seen some of the crap people put in logs?”Maciej: I've seen many things in logs. I don't want to mention them. But anyways—and also, you know, like, usually when you gave access to your AWS account, it can ruin you. You know, like, there might be a lot of—like, you need to really trust the company to give access to your AWS account. Of course, in most cases, the roles are scoped to, you know, only CloudWatch stuff, actions, et cetera, et cetera, but you know, like, there are some situations in which something may not be properly provisioned. And then you give access to everything.Corey: And you can get an awful lot of data you wouldn't necessarily want out of that stuff. Give me just the PDF printout of last month's bill for a lot of environments, and I can tell you disturbing levels of detail about what your architecture is, just because when you—you can infer an awful lot.Maciej: Yeah.Corey: Yeah, I hear you. It makes your security story super straightforward.Maciej: Yeah, exactly. So, I think just repeat my, like, the some inspiration. And then when I started thinking about Cloudash, like, definitely one of the inspiration was Dynobase, from the, kind of, GUI for, like, more powerful UI for DynamoDB. So, if you're interested in that stuff, you can also check this out.Corey: Oh, yeah, I've been a big fan of that, too. That'll be a separate discussion on a different episode, for sure.Maciej: [laugh]. Yeah.Corey: But looking at all of this, looking at the approach of, the only real concern—well, not even a concern. The only real challenge I have with it for my use case is that when I'm on the road, the only thing that I bring with me for a computer is my iPad Pro. I'm not suggesting by any means that you should build this as a new an iPad app; that strikes me as, like, 15 levels of obnoxious. But it does mean that sometimes I still have to go diving into the CloudWatch console when I'm not home. Which, you know, without this, without Cloudash, that's what I was doing originally anyway.Maciej: You're the only person that requested that. And we will put that into backlog, and we will get to that at some point. [laugh].Corey: No, no, no. Smart question is to offer me a specific enterprise tier pricing—.Maciej: Oh, okay. [laugh].Corey: —that is eye-poppingly high. It's like, “Hey, if you want a subsidize feature development, we're thrilled to empower that.” But—Maciej: [laugh]. Yeah, yeah. To be honest, I like that would be hard to write [unintelligible 00:23:33] implement as iPad app, or iPhone app, or whatever because then, like, what's the story behind? Like, how can I get the credentials, right? It's not possible.Corey: Yeah, you'd have to have some fun with that. There are a couple of ways I can think of offhand, but then that turns into a sandboxing issue, and it becomes something where you have to store credentials locally, regardless, even if they're ephemeral. And that's not great. Maybe turn it into a webapp someday or something. Who knows.What I also appreciate is that we had a conversation when you first launched, and I wound up basically going on a Zoom call with you and more or less tearing apart everything you've built—and ideally constructive way—but looking at a lot of the things you've changed in your website, you listened to an awful lot of feedback. You doubled your pricing, for example. Used to be ten bucks a month; now you're twenty. Great. I'm a big believer in charging more.You absolutely add that kind of value because it's, “Well, twenty bucks a month for a desktop app. That sounds crappy.” It's, “Yeah, jackwagon, what's your time worth?” I was spending seven bucks a month in serverless charges, and 120 or 130 a month for Epsagon, and I was thrilled to pieces to be doing it because the value I got from being able to quickly diagnose what the hell was going on far outstripped what the actual cost of doing these things. Don't fall into the trap of assuming that well, I shouldn't pay for software. I can just do it myself. Your time is never free. People think it is, but it's not.Maciej: That's true. The original price of $9.99, I think that was the price was the launch promo. After some time, we've decided—and after adding more features: API Gateway support—we've decided that this is, like, solving way more problems, so like, you should probably pay a little bit more for that. But you're kind of lucky because you subscribed to it when it was 9.99, and this will be your kind of prize for the end of, you know—Corey: Well, I'm going to argue with you after the show to raise the price on mine, just because it's true. It's the—you want to support the things that you want to exist in the world. I also like the fact that you offered an annual plan because I will go weeks without ever opening the app. And that doesn't mean it isn't adding value. It's that oh, yeah, I will need that now that I'm hitting these issues again.And if I'm paying on a monthly basis, and it shows up with a, “Oh, you got charged again.” “Well, I didn't use it this month; I should cancel.” And [unintelligible 00:25:44] to an awful lot of subscriber churn. But in the course of a year, if I don't have at least one instance in which case, wow, that ten minute span justified the entire $200 annual price tag, then, yeah, you built the wrong thing or it's not for me, but I can think of three incidents so far since I started using it in the past four months that have led to that being worth everything you will charge me a year, and then some, just because it made it so clear what was breaking.Maciej: So, in that regard, we are also thinking about the team licenses, that's definitely on the roadmap. There will be some changes to that. And we definitely working on more and more features. And if we're—like, the roadmap is mostly about supporting more and more AWS services, so right now it's Lambda, API Gateway, we're definitely thinking about SQS, SNS, to get some sense how your messages are going through, probably something, like, DynamoDB metrics. And this is all kind of serverless, but why not going wider? Like, why not going to Fargate? Like, Fargate is theoretically serverless, but you know, like, it's serverless on—Corey: It's serverless with a giant asterisk next to it.Maciej: Yeah, [laugh] exactly. So, but why not? Like, it's exactly the same thing in terms of, there is some user flow, there is some user journey, when you want to debug something. You want to go from API Gateway, maybe to the container to see, I don't know, like, DynamoDB metric or something like that, so it should be all easy. And this is definitely something.Later, why not EC2 metrics? Like, it would be a little bit harder. But I'm just saying, like, first thing here is that you are not, like, at this point, we are serverless, but once we cover serverless, why not going wider? Why not supporting more and more services and just making sure that all those use cases are correctly modeled with the UI and UX, et cetera?Corey: That's going to be an interesting challenge, just because that feels like what a lot of the SaaS monitoring and observability tooling is done. And then you fire this thing up, and it looks an awful lot like the AWS console. And it's, “Yeah, I just want to look at this one application that doesn't use any of the rest of those things.” Again, I have full faith and confidence in your ability to pull this off. You clearly have done that well based upon what we've seen so far. I just wonder how you're going to wind up tackling that challenge when you get there.Maciej: And maybe not EC2. Maybe I went too far. [laugh].Corey: Yeah, honestly, even EC2-land, it feels like that is more or less a solved problem. If you want to treat it as a bunch of EC2, you can use Nagios. It's fine.Maciej: Yeah, totally.Corey: There are tools that have solved that problem. But not much that I've seen has solved the serverless piece the way that I want it solved. You have.Maciej: So, it's definitely a long road to make sure that the serverless—and by serverless, I mean serverless how AWS understands serverless, so including Fargate, for example. So, there's a lot of stuff that we can improve. It's a lot of stuff that can make easier with Cloudash than it is with CloudWatch, just staying inside serverless, it will take us a lot of time to make sure that is all correct. And correctly modeled, correctly designed, et cetera. So yeah, I went too far with EC2 sorry.Corey: Exactly. That's okay. We all go too far with EC2, I assure you.Maciej: Sorry everyone using EC2 instances. [laugh].Corey: If people want to kick the tires on it, where can they find it?Maciej: They can find it on cloudash.dev.Corey: One D in the middle. That one throws me sometimes.Maciej: One D. Actually, after talking to you, we have a double-D domain as well, so we can also try ‘Clouddash' with double-D. [laugh].Corey: Excellent, excellent. Okay, that is fantastic. Because I keep trying to put the double-D in when I'm typing it in my search tool on my desktop, and it doesn't show up. And it's like, “What the—oh, right.” But yeah, we'll get there one of these days.Maciej: Only the domain. It's only the domain. You will be redirected to single-D.Corey: Exactly.Maciej: [laugh].Corey: We'll have to expand later; I'll finance the feature request there. It'll go well. If people want to learn more about what you have to think about these things, where else can they find you?Maciej: On Twitter, and my Twitter handle is @mthenw. M-then-W, which is M-T-H—mthenw. And my co-founder @tlakomy. You can probably add that to [show notes 00:29:35]. [laugh].Corey: Oh, I certainly will. It's fine, yeah. Here's a whole bunch of letters. I hear you. My Twitter handle used to be my amateur radio callsign. It turns out most people don't think like that. And yeah, it's become an iterative learning process. Thank you so much for taking the time to speak with me today and for building this thing. I really appreciate both of them.Maciej: Thank you for having me here. I encourage everyone to visit cloudash.dev, if you have any feature requests, any questions just send us an email at hello@cloudash.dev, or just go to GitHub repository in the issues; just create an issue, describe what you want and we can talk about it.We are always happy to help. The main purpose, the ultimate goal of Cloudash is to make the serverless engineer's life easier, on very high level. And on a little bit lower level, just to make, you know, troubleshooting and debugging serverless apps easier.Corey: Well, from my perspective, you've succeeded.Maciej: Thank you.Corey: Thank you. Maciej Winnicki, founder of Cloudash. 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, whereas if you've hated this podcast, please leave a five-star review on your podcast platform of choice along with an angry comment telling me exactly why I'm wrong for using an iPad do these things, but not being able to send it because you didn't find a good way to store the credentials.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.

The Gary Null Show
The Gary Null Show - 01.12.22

The Gary Null Show

Play Episode Listen Later Jan 12, 2022 60:38


Research shows hemp compounds prevent coronavirus from entering human cells   Oregon State University, January 11, 2022 Hemp compounds identified by Oregon State University research via a chemical screening technique invented at OSU show the ability to prevent the virus that causes COVID-19 from entering human cells. Van Breemen and collaborators, including scientists at Oregon Health & Science University, found that a pair of cannabinoid acids bind to the SARS-CoV-2 spike protein, blocking a critical step in the process the virus uses to infect people. The compounds are cannabigerolic acid, or CBGA, and cannabidiolic acid, CBDA, and the spike protein is the same drug target used in COVID-19 vaccines and antibody therapy. A drug target is any molecule critical to the process a disease follows, meaning its disruption can thwart infection or disease progression.   Tomato concentrate could help reduce chronic intestinal inflammation associated with HIV   University of California Los Angeles, January 11, 2021 New UCLA-led research in mice suggests that adding a certain type of tomato concentrate to the diet can reduce the intestinal inflammation that is associated with HIV. Left untreated, intestinal inflammation can accelerate arterial disease, which in turn can lead to heart attack and stroke. The findings provide clues to how the altered intestinal tract affects disease-causing inflammation in people with chronic HIV infection, suggesting that targeting the inflamed intestinal wall may be a novel way to prevent the systemic inflammation that persists even when antiviral therapy is effective in controlling a person's HIV.     Too much sitting could mean worse outcomes for cancer survivors   Cancer Care Alberta (Canada), January 11, 2022 A new study shows those who sit too much and are not physically active are much more likely to die early from cancer or any other cause than those who are more active. Data on cancer survivors who took part in the U.S. National Health and Nutrition Examination Survey from 2007 to 2014 showed that inactive survivors who reported sitting more than eight hours a day were at the highest risk of dying. "Cancer survivors who did not meet the Physical Activity Guidelines for Americans [150 minutes per week of moderate-to-vigorous intensity leisure-time physical activity] and sit longer than eight hours per day had more than a fivefold increase in the risk of death from all causes—cancer and non-cancer," said lead researcher Lin Yang. The link was particularly troubling because the researchers found that as many as one-third of cancer survivors didn't exercise and sat more than six hours a day. Only about one-third got the recommended 150 hours of exercise a week, Yang said.     Running could improve brain function in people with Gulf War illness   Texas A&M University, January 10, 2022 It has now been three decades since 700,000 American troops responded to the invasion of Kuwait in the first Gulf War, and more than a third of those troops still suffer from the same condition: Gulf War Illness (GWI). Previously labeled Gulf War syndrome, GWI is characterized by persistent reduced cognitive function, memory problems, mood and sleep disturbances, chronic pain and fatigue. The exact cause of GWI is not known, though it is suggested that some combination of the prophylactic drug pyridostigmine bromide (PB), the mosquito repellant N, N-diethyl-m-toluamide (DEET), insecticide permethrin (PER), multiple pesticides, low doses of Sarin, and chronic war-related stress are to blame. Positive findings notwithstanding, the impracticalities of a drug that is not yet approved by the U.S. Food and Drug Administration (FDA) led Shetty to explore more accessible means. With perhaps the most simple of interventions that could be asked (certainly one familiar to our veterans), he found that running a few times each week could be powerful in the relief of GWI-related symptoms.     Why high-dose vitamin C kills cancer cells   Low levels of catalase enzyme make cancer cells vulnerable to high-dose vitamin C University of Iowa, January 9, 2022 Vitamin C has a patchy history as a cancer therapy, but researchers at the University of Iowa believe that is because it has often been used in a way that guarantees failure. Most vitamin C therapies involve taking the substance orally. However, the UI scientists have shown that giving vitamin C intravenously--and bypassing normal gut metabolism and excretion pathways--creates blood levels that are 100 - 500 times higher than levels seen with oral ingestion. It is this super-high concentration in the blood that is crucial to vitamin C's ability to attack cancer cells. Earlier work by UI redox biology expert Garry Buettner found that at these extremely high levels (in the millimolar range), vitamin C selectively kills cancer cells but not normal cells in the test tube and in mice. Physicians at UI Hospitals and Clinics are now testing the approach in clinical trials for pancreatic cancer and lung cancer that combine high-dose, intravenous vitamin C with standard chemotherapy or radiation. Earlier phase 1 trials indicated this treatment is safe and well-tolerated and hinted that the therapy improves patient outcomes. The current, larger trials aim to determine if the treatment improves survival. In a new study, published recently in the December issue of the journal Redox Biology, Buettner and his colleagues have homed in on the biological details of how high-dose vitamin C (also known as ascorbate) kills cancer cells.   People with early-onset Parkinson's disease may benefit from boosting niacin in diet   University of Leicester (UK), January 10, 2022 •    Team studied fruit flies with a mutation that mimics the human disease •    Niacin/Vitamin B3 is found in a variety of foods including meats and nuts •    Research suggests niacin boosts levels of NAD compound in body for energy generation and DNA repair, which is critical for keeping mitochondria in shape and Parkinson's at bay •    Drugs that block NAD-consuming DNA repair already exist to treat cancer - therefore these drugs could be repurposed to protect faulty mitochondria in Parkinson's disease "This study strengthens the therapeutic potential for Vitamin B3/niacin-based dietary interventions in the treatment of Parkinson's disease" - Dr Miguel Martins, MRC Toxicology Unit, University of Leicester People with certain forms of early-onset Parkinson's disease may benefit from boosting the amount of niacin in their diet, according to new research from the University of Leicester. Niacin, or Vitamin B3, is found in a variety of foods, including nuts and meat. The team from the MRC Toxicology Unit at the University of Leicester studied fruit flies with a mutation that mimics the human disease.     America's Crisis of Cultural Moral Panic   Richard Gale and Gary Null PhD Progressive Radio Network, January 12, 2022 It is one thing to show a man that he is in error and another to put him in touch with truth… No man's knowledge can go beyond his experience” – John Locke (Essays Concerning Human Understanding) Locke was not alone in questioning what we believe to be true knowledge, and pointing out the consequences of failing to discern falsehoods from reality. Locke was in excellent company.  Due to the scientific revolution, which inspired several generations of deep thinkers, naturalists and philosophers, including Rousseau, Kant, Spinoza, Darwin, Bacon and Voltaire, the Age of Enlightenment or the Age of Reason has dominated the intellectual world of ideas for nearly two centuries. Locke's statements remain pertinent because today there is a new generation that has been indoctrinated by the shortcomings of scientific materialism. It was intended to bring forth a new purity, an idyllic perfectionism of thought and beliefs founded alone upon objective inquiry. But now this higher ideal has degenerated into a juvenile revolution fuelling identity politics, the cancel culture of wokeness, and a passionate micro-aggression that derives hedonist pleasure in ridicule and insult. One of its more lofty goals is to end free speech as we know it – except for those who are woke. Other goals are to institute a faux collectivism and to abolish meritocracy or social rewards earned through effort and achievement. For many years, important voices of critical thought – Noam Chomsky, Henry Giroux, Jordan Peterson, to name a few, have been warning us that this day was rapidly approaching. However, since there are no dynamic leaders in the youth's woke moment of Maoist-style cleansing and purging of wrong-views, wrong attitudes and wrong beliefs, most of us in the older generations wrongly assume it would be a passing phase. But it wasn't. In fact, the consequences of this unleashed furor, evidenced by an absence of self-reflection and critical thought, has been channeled into a mob rule of dissent and abuse.  In the virtual world gatherings of protest across social media, it is nearly unstoppable. No one is challenging them, neither the mainstream media nor the majority of academia. Rather, corporate leaders and persuasive forces within the ranks of liberal democratic institutions are coming to their aid. Therefore, it proceeds under the cover of a silent political power to sustain its energy. On the other hand, today's youth have every reason to feel disenchanted and to suffer rampant existential angst, the emptiness of not feeling a deeper sense of purpose and meaning in the world at large.  American neoliberalism's and our educational system's single-minded attention on science and technology -- which in themselves are amoral disciplines -- and rote memorization and testing has resulted in two decades of our youth becoming increasingly illiterate in the humanities, critical evaluation and reflective inquiry.  It is also the most irreligious generation in American history. Without the skills of introspective thought to develop a sense of genuine well-being and true happiness, or what Plato called eudomonia as opposed to hedonia, (the pursuit of temporary or transient pleasures), our nation has tossed its youth to the rabid dogs of the social Darwinian rat race for survival. Therefore, it is not surprising that suicides among today's teens and twenty-somethings have risen 47 percentduring the past two decades.  Sadly the casualty rate is higher after we consider there are 36 percent more people living in their 20s today than there were at the turn of the century. Thirty-two percent of youth through their 20s have clinical anxiety disorders, 1 in 9 suffer from depression and almost 14 percent have ADHD.  Although the medical community would like us to believe these are either inherited or biological conditions attributable to brain chemical imbalances, there is absolutely no scientific consensus proving there is a direct, observable causal relationship between brain function and mental states.  Certainly there are correlated relationships; but correlation is not causation.  The latter is solely a belief, an assumption, without any conclusive and confirming data. The causes are elsewhere and perhaps to be found in our dysfunctional society and the complete breakdown of traditional ethical structures and universal values. In 1972, South African sociologist Stanley Cohen proposed the Moral Panic Theory, an irrational widespread fear that threatens one's sense of values, safety and cohesion to one's “tribal” identity.  This moral panic, Cohen observes, is bolstered by the injustices of the ruling elite and its mouthpieces in the media. It also centers aroundthose who society marginalizes and is based upon “ethnicity, class, sexuality, nationality and religion.” Ashley Grossman, writing for ThoughtCo, makes the point that those in power will ultimately most benefit from moral panics “since they lead to increased control of the population and the reinforcement of the authority of those in charge.” The panic aroused grassroots movements provides the government or state “to enact legislation and laws that would seem illegitimate without the perceived threat at the center of the moral panic.” The popular fear of the Covid-19 virus and the unvaccinated created by our federal health officials and their news media allies is another recent example of Moral Panic Theory. Unfortunately, most of the country has entered a Moral Panic phase: the vitriolic propaganda in both parties, the greed and opportunism of the oligarchic and corporate elite, QAnon and the Alt-Right, and the Woke-Left. Repeatedly woke students are demanding their schools and colleges make assurances that they are emotionally safe from ideas and philosophies that challenge their fragile comfort zones. Teachers and professors who challenge their students' illusions about knowledge and their fragile self-identity are being ostracized with calls for administrative dismissal. How many academicians are forced to remain silent to avoid the consequences of the new woke Inquisition? Such student actions are indicative of their weak sense of self-worth and existential angst; yet we must look at modern parental upbringing and our culture's leading elders, as noted by Jonathan Haidt, to diagnose the causal factors for this psychological catastrophe of two entire generations. Consequently, when collective panic reaches a threshold, Cohen's theory might explain the sudden eruption of irrational behavior entangled in the rise of a cancel culture built upon an intellectual anarchy that is frighteningly irrational. And it is equally endemic to the reactionary maleficence of white supremacists and militias. So when a new book emerges, White Fragility by Robin DiAngelo, and becomes the holy grail of woke truths, we are lectured that what will not be tolerated is any deviation or heresy its espoused twisted emerging social norm. The author's central theme is that if you have the misfortune of being born with the wrong genes into the wrong family a with the wrong skin color, you are a racist and will be such for the remainder of your days.  Hence every White person is condemned with a defective moniker blazed across the forehead. And since meritocracy likewise is damned, all achievements are reduced to an inherited privilege of having been born Caucasian.  Your attempt to defend yourself and profess your free speech is a testament of your heresy. No apology or act of humility can save you. It is a life sentence without parole for good behavior. White Fragility is already being taught in many schools, with the full cooperation of teacher unions and school administrators. Resistance will be a subversive act and an admission of your racism. It is critical to observe this may be heading towards a new paradigm of Orwellian social control. Yet there is barely a shred of credible scientific evidence to support DiAngelo's hypotheses.  It is a flawed opinion, and a dangerous one at that.  Worse, its long-reaching conclusions could advocate for a repressive regime of a future scientism dictatorship that Nobel laureate Bertrand Russell warned.  Russell noted that “collective passions” have a penchant to inflame “hatred and rivalry directed towards other groups.” He was acutely aware that “science is no substitute for virtue; the heart is as necessary for the good life as the head.” And DiAngelo's screed falls into the dark abysmal waters of genetic determinism that gave rise to racist fascism. Russell further cautioned that this distorted over-reliance on faux science could be “a curse to mankind.” Perhaps, during its Icarus moment, wokeness will self-destruct under its own rashness and the internal fire of its undiscerning ardor.  What carnage it leaves in its wake remains to be seen. Yet there is nothing new or original in the cultural rebellion we are witnessing. This game has been played out before in previous acts that strived for an adolescent and unreachable social perfection.  It will have its blowback.  In his Principia Mathematica, Isaac Newton observed that for every action there is an equally opposing reaction. However, we have yet to witness how it will boomerang. But we will.  In the meantime, a new class of wannabe priests is emerging within the woke movement, a priesthood David Hume warned about in his Essays, Moral, Political and Literary, which will in turn be an adversary to liberty. Consider the backlash after Harpers magazine published a Letter on Justice and Open Debate to warn about “a new set of moral attitudes and political commitments that tend to weaken our norms of open debate and toleration of differences in favor of ideological conformity.”  Signed by over 160 brilliant minds, academicians and authors – liberal and conservative -- including Noam Chomsky, Jonathan Haidt, Susannah Heschel, Steven Pinker, Gloria Steinem, etc, the letter gives a stark warning of the unwelcomed consequences of the new culture of censorship that the demonstration's leaders are ushering into the nation at large. The woke now demand retribution against its signers, in effect shutting down the nation's 200-plus years of free speech, the right to disagree and public discourse. Have those who are most rabidly eager to condemn and cancel the wide diversity of voices who disagree with their beliefs considered earlier precedents for their actions? It was the Spanish Inquisition.  In principle, how many today are in effect labeled heretics and “witches” because they have spoken publicly in favor of free speech and oppose censorship? May not the woke movement in turn become the harbinger of a new Inquisition, a new platform of economic and social persecution by the powerful and wealthy waiting in the corridors after the cult of woke loses its steam? The causal problems to our terrified culture is of course far deeper and has been identified and analyzed repeatedly in the writings of Chris Hedges and Henry Giroux.  Our nation thrives on victimizing others.  Now the once disenfranchised victims of the liberal woke generation, erupting from its simmering angst and meaninglessness, are determined to be the new victimizers. What is the end game when a populist uprising of disillusioned and psychologically traumatized youth at the mercy of capitalism's parasitical march to claim more victims gets the upper hand. The movement has now evolved beyond its original demands of racial justice for the Black and other minority communities who have been discriminated against by our institutions, particularly law enforcement and the private prison system. Now it is rapidly morphing into a massive autonomous cult of divisiveness and self-righteousness without a moral backbone that recognizes the essential values of forgiveness, reconciliation, and cooperative engagement for preserving a sane and productive culture that benefits all.     Insurance companies should ‘penalize' the unvaxxed, ethicist at New York University recommends   Professor Arthur Caplan said that people who have chosen not to get jabbed should pay higher insurance premiums and be barred from getting life insurance LifeSite News, Jan 6, 2022 An ethicist at New York University said that people who have not gotten jabbed should be punished by insurance companies. “By and large, if you're vaccinated and boosted, even if you get infected, you're going to be fine. You're going to be fine here. It's the unvaccinated who are going to be hurt, so why should anyone who is boosted bother at this point to do anything that makes the unvaccinated more safe?” CNN's John Berman asked Professor Arthur Caplan, the director of the medical ethics division at NYU Grossman School of Medicine. Professor Caplan agreed that the unvaccinated should be shamed and treated poorly by society, though he said he hopes he can change their minds. “I'll condemn them. I'll shame them. I'll blame them,” Professor Caplan said. “We can penalize them more, say you will have to pay more on your hospital bill. You can't get life insurance, disability insurance at affordable rates if you aren't vaccinated.”     NO DEATHS FROM VITAMINS - Safety Confirmed by America's Largest Database   Orthomolecular News Service, January 7th 2022 The 38th annual report from the American Association of Poison Control Centers shows zero deaths from vitamins. It is interesting that it is so quietly placed way back there where nary a news reporter is likely to see it. The AAPCC reports zero deaths from multiple vitamins. And, there were no deaths whatsoever from vitamin A, niacin, pyridoxine (B-6) any other B-vitamin. There were no deaths from vitamin C, vitamin D, vitamin E, or from any vitamin at all. On page 1477 there is an allegation of a single death attributed to an unspecified, unknown "Miscellaneous Vitamin." The obvious uncertainly of such a listing diminishes any claim of validity. There were no fatalities from amino acids, creatine, blue-green algae, glucosamine, or chondroitin. There were no deaths from any homeopathic remedy, Asian medicine, Hispanic medicine, or Ayurvedic medicine. None.   (NEXT)   40% of Israel could be infected with Covid-19 in current wave, says PM   France24, January 10, 2022 Israel could see up to nearly 40 percent of the population infected by coronavirus during the current wave, Prime Minister Naftali Bennett said Sunday, as testing facilities nationwide buckled Data presented at the cabinet meeting indicates that here, in Israel, between two to four million citizens in total will be infected during this current wave. A country of just 9.4 million, Israel has seen infections nearly quadruple over the past week compared to the previous one. The health ministry reported 17,518 new infections on Saturday. Health ministry data showed that more than 4.3 million Israelis were fully vaccinated with three shots, while 204 people are hospitalised in serious condition as a result of Covid-19 illness on Sunday. More than 1.5 million Covid cases, including 8,269 deaths, have been officially recorded in Israel.   (NEXT)   4th COVID Booster Shot Could Cause ‘Immune System Fatigue,' Scientists Say   As Israel moves ahead with fourth COVID shot, scientists told the New York Times the additional booster may cause more harm than good. Childrens Health Defense, January 7, 2022 COVID-19 booster shots could do more harm than good, according to scientists interviewed late last month by The New York Times. The scientists warned “that too many shots might actually harm the body's ability to fight COVID” and “might cause a sort of immune system fatigue.” On Monday, Israeli authorities began offering anyone over age 60 a chance to get a fourth shot, or second booster of the COVID vaccine. But scientists told The Times, before Israel confirmed it would offer the fourth shot, the science is not yet settled on using an additional booster shot to combat the new Omicron variant. There is one official report of an Israeli dying from Omicron. However, according to The Times of Israel, it is unclear that Omicron caused the death of the individual — a man in his 60s hospitalized weeks earlier from a pre-existing condition. A new report from the UK Health Security Agency showed booster doses are less effective against Omicron than previous variants, and their effectiveness wears off in only 10 weeks. Professor Hagai Levine, an epidemiologist and chairman of Israel's Association of Public Health Physicians, told The New York Times there's no published scientific evidence a fourth shot is needed to prevent severe illness from Omicron. “Before giving a fourth shot, it is preferable to wait for the science,” Levine said.   (NEXT)   145-Country Study Shows Increase Of Transmission And Death After Introduction Of Covid Vaccines   Truth Press, January 11, 2022 Instead of bringing an end to this pandemic as promised, the widespread rollout of the experimental vaccines has actually caused a sharp increase in Covid-19 cases and deaths across the world, according to a recently published preprint study that looked at data from the 145 of the most vaccinated countries in the world. The 99-page study titled “Worldwide Bayesian Causal Impact Analysis of Vaccine Administration on Deaths and Cases Associated with COVID-19: A BigData Analysis of 145 Countries” found that in the US specifically, the jab has caused a whopping 38% more Covid cases per million – and an even more astonishing 31% increase in deaths per million. In total, researchers found that almost 90% (89.84%) of the 145 countries experienced this negative effect from the vaccines after they were made available. From the study: “Results indicate that the treatment (vaccine administration) has a strong and statistically significant propensity to causally increase the values in either y1 [variable chosen for deaths per million] or y2 [variable chosen for cases per million] over and above what would have been expected with no treatment. y1 showed an increase/decrease ratio of (+115/-13), which means 89.84% of statistically significant countries showed an increase in total deaths per million associated with COVID-19 due directly to the causal impact of treatment initiation [vaccines]. y2 showed an increase/decrease ratio of (+105/-16) which means 86.78% of statistically significant countries showed an increase in total cases per millionof COVID-19 due directly to the causal impact of treatment initiation.” Perhaps the most telling part of the study's results is that the countries which recorded the fewest Covid deaths in 2020 were the ones to experience the largest increases in cases and deaths once the vaccine was introduced, with some of them seeing increases as high as over a thousand percent. In the study's conclusion, researchers warned that the substantial increase in deaths and cases should be “highly worrisome” for the policymakers around the world who have been promoting the experimental vaccines as the “key to gain back our freedoms.”   (NEXT)   Covid Vaccine-Injuries: "An Avalanche", says Attorney Aaron Siri   In November 2021, attorney Aaron Siri explained to an expert panel at Congress that his firm was seeing "an avalanche of submissions" from people seeking help to sue after covid vaccine-injuries.         Here we are in early January 2022, and:        ~ The CDC's data released December 31, 2021 contains 1,017,001 covid vaccine-injury records.        ~ The WHO's global database (VigiAccess) has collected 2,933,902 covid vaccine-injury records.        Even young children are being vaccine-injured.       From CDC's own publication, MMWR Dec. 31, 2021:        ~ "5,277 VAERS reports received for children aged 5–11 years" [1,028 (19.5%) were excluded from this analysis]        ~ "Approximately 5.1% of parents reported that their child was unable to perform normal daily activities on the day after receipt of dose 1, and 7.4% after receipt of dose 2. Approximately 1% of parents reported seeking medical care in the week after vaccination"       ~ "Two reports of death during the analytic period [November 3 - December 19, 2021]

Women with Cool Jobs
Design Leader (UX) Creates Solutions for Online Tech Startup, with Jing Jin

Women with Cool Jobs

Play Episode Listen Later Jan 12, 2022 58:06


Jing Jin is a Design Leader (UX Design) who creates solutions for users at an online tech startup and education platform. As the design manager at Outschool, she helps imagine the design and functionality that creates the entire user's experience, from start to finish. Jing began as the only one on the team and has seen the company through 10x growth. She now leads a design team of 6, which includes: product designers (UX designers), visual designers (UI designers), experience designers, and tech writers (UX writers.) Together, they ask,  “What do users need?” and imagine the design and function of that solution. They collaborates with engineers to build it and make it work. Next, Jing and her team analyze the solution to see if the user's experience actually matched the intended  outcome. Then, they take those results and refine the user experience. It's an ongoing, iterative process.Product designers have a huge variety of backgrounds and education -- from customer service to rocket scientist! Jing's education is in Human Computer Interaction (HCI) and she has been an engineer, designer, and product manager. She has had a wide depth and breadth of career opportunities. She started at Apple, helped 12  companies build successful products, created a multi-platform system that is used by 4,000+ schools, and now is helping over 1 million learners in 183 countries worldwide.Resources:AIGA (the professional association for design)alistapart.comIDEOBoot Camps:General AssemblyDesign LabContact Info:Jing Jin  - GuestLinkedInJulie Berman - Hostwww.womenwithcooljobs.com@womencooljobs (Instagram)

The Bike Shed
321: Leaving Breadcrumbs

The Bike Shed

Play Episode Listen Later Jan 11, 2022 40:20


Steph tells a cute story about escape artist huskies, and on a technical note, shares a journey in regards to class variables and modules inheritance. Chris talks about how he's starting to pursue analytics and one of the things that he's struggling with that he's always historically struggled with is the idea of historical data. He's also noticed a lack of formalization of certain things and is working with his team to remedy that. This episode is brought to you by ScoutAPM (https://scoutapm.com/bikeshed). Give Scout a try for free today and Scout will donate $5 to the open source project of your choice when you deploy. Mike Burns: How to Skim a Pull Request (https://thoughtbot.com/blog/a-smelly-list) RSpec Documentation (https://rspec.info/documentation/) Don't Let the Internet Dupe You, Event Sourcing is Hard (https://chriskiehl.com/article/event-sourcing-is-hard) Datomic (https://www.datomic.com/) timefora_boolean (https://github.com/calebhearth/time_for_a_boolean) Sentry (https://sentry.io/) Become a Sponsor (https://thoughtbot.com/sponsorship) of The Bike Shed! Transcript: CHRIS: Hello and welcome to another episode of The Bike Shed, a weekly podcast from your friends at thoughtbot about developing great software. I'm Chris Toomey. STEPH: And I'm Steph Viccari. CHRIS: And together, we're here to share a bit of what we've learned along the way. So, Steph, it's an entirely new year. What is new in your new year? STEPH: Well, the year is off to an interesting start because we helped rescue a husky. CHRIS: Rescue as in now this is your dog or rescue as in the dog was trapped in a well, and another dog told you about the dog being trapped in a well, and then you helped the trapped? [laughs] Which of those situations are we working with? STEPH: [laughs] I'm really wishing it was the second version [laughs] where there's a dog that tells me about another dog trapped in a well. No, this is a third version where there was a husky that was wandering around the gym that we go to. And so Tim, my husband, called and said that "There's this husky, and he's super sweet, but he seems very lost." And our gym is located near a major road, and so we were worried that he was going to wander about and get hit. So I hopped into our car and took a crate and a leash, and he hopped right in. Clearly, he belonged to somebody; he'd just escaped. So he hops right in, and then we bring him home. But I put him in the backyard because I want to keep him separate from our dog, Utah, just because I don't know this dog, and I want to keep him safe. And I go back inside to grab a few things. I come back out, and the husky is gone. And I'm like, well, shit. [laughs] Now I'm starting to understand why this husky is missing or why this husky seemed lost. So then I started looking for the husky, and Tim comes home. He's helping me look for the husky. And it was one of those awful moments where we live near...it's not a major road, but people tend to speed on it. And the husky and I happen to see each other across the road. And so the husky was like, oh, human friend and starts coming across the road towards me. And there's this large SUV that's also coming from the other direction. I'm like, oh, this is it. This is my nightmare. This is becoming real. This dog is about to get hit. Thankfully, the driver saw the husky and stopped in time, so everything was fine. And the husky just finished trotting across the road to me, brought him in, kept him in the kennel in the garage. We didn't have any backyard adventures after that. The husky then thanked us by howling most of the night. [laughs] So this poor husky has had an adventure. We've had an adventure. And then, around 4:30 in the morning, I go out because I'm checking on the husky and going to let him out. And I'm scrolling on the app called Nextdoor. And I see that someone posted a picture of this exact husky that's like, "Please help me find my dog." And I was like, yes. Because we were going to have to take him to a county shelter or at least go see if he had a chip so then we could return him. But thankfully, we found the owner. I found out the husky's name is Sebastian. And then we had him for a few more hours, and then we had a wonderful husky and human reunion. CHRIS: That story had everything. It had ups; it had downs; it had huskies. It had escape artist huskies, in fact. I have...this is only through Reddit because that's how people learn about things in the world, but huskies are a rather vocal dog breed. So when you say the dog was howling, huskies have a particular way of almost singing, and it kind of sounds like yelling rather than more traditional dog sounds. Was that the experience you had? STEPH: Luckily, it wasn't too bad. His howling was more just; he didn't want to be in the crate. He seems like an indoor dog. So he's like, what am I doing outside in the garage? I should be indoors. And so he wasn't too loud. It was more he was just bemoaning his situation. But our dog Utah could hear him upset in the garage. And so that was also getting Utah upset because he didn't understand why there was a dog so close. And that was what led to the sleepless night because we couldn't get both of them to calm down. Because then, as soon as one of them calm down, the other one would get the other one riled. CHRIS: As it so often happens. STEPH: I'm so grateful that it turned out to be a happy story, though. That part was wonderful. And if we see the husky again, now we know his name is Sebastian and that he'll just come home with us. [chuckles] And we'll know how to return him since he seems to be an escape artist. CHRIS: And we were best friends forever. STEPH: On a more technical note, I have quite the journey to share in regards to class variables and modules inheritance. But before I dive in, I'm curious, what's new in your world? CHRIS: Oh. Well, I'm excited to dig into that story. But I've got two smaller things in my world this week that are top of mind. I don't really have answers on them. I have more questions. One is we're starting to pursue analytics. We want to try and understand our system a little bit better. What is the experience of our users? How are they coming into the system? What are they doing? How long does it take them to do the things that we want them to do? All those sorts of questions you want to be able to answer about your application. And one of the things that I'm struggling with that I've always historically struggled with is the idea of historical data. So data changes over time, and often we actually want to know about those transition points. We want to know about the different states that a user or any record in the system has been in. And I'm finding myself feeling the same pain that I felt many times and starting to think again about the relevant options out there in the world. To give a slightly more pointed example of what we're dealing with, users come in, and then there are a few steps for them to actually sign up for the application. And so their user record or their application, if you will, will go through a couple of different states. So they can be basically approved directly, and now they're an active user of the system, that's one option. But they can also end up in a state where they're pending review. And then eventually, depending on the outcome of that review, whether it's manual or someone intervenes or what have you, then eventually they can transition to either being denied or being accepted. And then they'll again be an active user. And so there's a question now of how many of the users that end up in that pending state end up transitioning into active. And as I looked at the database, I was like, I do not have this information right now. I know their current state. And the logs could tell me all of this. We don't have proper log archiving right now. And I also don't have a system for, like, let me pull down gigabytes of logs and try and sift through that to understand the answer, especially for something domain level like this. But this is one specific example that represents a category of things in my mind. The stuff that I've looked at in this space otherwise is Event Sourcing. So the idea that rather than having a discrete representation of the state of your application, you store every event as an individual log, essentially of like user did X, thing happened, Y occurred. And then, at any given point, you need to know about the state of your system; you just reduce all of those events through some magical reducer that produces the current state. I also very recently read an article called Event sourcing is Hard. So I have that in my head as a counterpoint. This seems like a thing that is non-trivial to do, makes sense for a certain scale. But of course, like anything else, it has its trade-offs. Another thing that I've looked at and never really pursued mostly because it's in a different ecosystem, is Datomic, D-A-T-O-M-I-C, which I think I've mentioned before. But it's a database that actually stores data in this historical format. And so you can ask for the current value, but then you can also ask for what are all the states that this user has been in? And what are the timestamps of those changes? One small thing that we do have that I really like...so this is one example of us; I think leaning into wanting to have more information, higher fidelity information, is often we want to know something like was this ticket paid? Did someone pay for this ticket? And so paid is a BooleanProperty on this ticket record within our system. So the ticket can be held for a little while and eventually gets paid. And now, yes, it has been paid for. It is good. You can use it. But often, we want to know not just that it's paid but when it was paid. And so there's a gem that we are using on the project called timeforaboolean by former thoughtboter, Caleb Hearth. And it does a wonderful job of basically instead of storing a Boolean value in the database, you store a timestamp. But then the Boolean can be inferred. If there is a value, if there's a timestamp for that record in the database, then there are a bunch of helper methods that get introduced that say, like, paid? That's now a method that I can ask, and it will tell us that. But we can also find the paidat, paid_at value. And so we have this higher fidelity data when we need it, but we can also collapse it down to the simpler representation. Because most often, all we need to know is, have they paid for it? Cool, then they're good. They can come into the concert, that sort of thing. But yeah, this is a broader question that I don't have a great answer to. I think Postgres and Rails and just the nature of how we approach these applications pushes us in a certain direction. Another thing I'm exploring is downstream analytic systems. What if I send a bunch of events to them, and they act as a half-event sourcing type thing? But yeah, this is going to be, I think, an open question for me for a while. STEPH: Yeah, you said a lot of really good options. When you're talking about in our ecosystem, we get pushed in one direction or the other that makes me think of the projects that I've been on. Typically, what they'll reach for first is something like a Papertrail. So then, that way, they can check for the historical versions of an object and how it was changed and see who changed it. That's one way to track the logs. I like the idea that if you can outsource it and send all of those events to a logging system and then essentially ask for that data back as you need it. You made me think of a recent project as well where we needed to track the state. So it was a patient matching system. And we really needed to know when a patient match was created or disconnected and then who did that and perhaps for what reason. And to ensure that we had as much information as possible, we took that opportunity to just create a record for it. So we had a patient match record or...I forgot the name of the other one where we created where a patient did not have a match. But we were creating a record every time someone did that. Granted, probably that's not going to happen nearly as often as someone paying for an event or the situations that you're describing. This was ideally infrequently that someone was going to unmatch a patient because it meant that our system had matched people that shouldn't be matched, and then a human had intervened. But yeah, it's interesting the space that you're in. And you listed all the good things that I would have thought of. CHRIS: I think you listed Papertrail, which is one that I hadn't actually thought of yet for this particular instance. This only came up earlier today also. So this is new in my head that I'm really being pushed in this direction. But I think Papertrail could be a good solution for where we're at. But it is one of those where you often don't know the thing you want to know. And I'm terrified of losing data of like; I had the data. I knew it at one point in time, but now I can't reknow it in the future because I didn't write it down. That's one of the things that I just don't want to happen in the world. And so finding those ways of like, how can we architect a system so that we can do the normal, straightforward, boring things most of the time but then when we need to expand out the analytics dimension of the system that we're working on...and trying to thread that needle and find the ideal optimization on both sides is a tricky one. But yeah, I'll definitely take another look at Papertrail and see if that...at a minimum, I think that's a good solution for where we're at now. And then this is going to be a thought that's going to roll around in the back of my head for a while. So if I come up with anything else, perhaps a grander solution, I'll certainly bring that back to The Bike Shed. But yeah, what else is up in your world? I want to hear the story of the class variables. STEPH: Well, it is quite a journey. So I hope you're ready. Specifically, I was pairing with Joël, who was working on fixing a test that had been marked as being skipped for a while. We weren't really sure why. We figured maybe because it's flaky. But then, as Joël had restored that test, he realized it was actually failing consistently. So it was a test that was failing for a reason folks maybe didn't understand, but they decided to cancel or to skip that test. But they didn't actually want to get rid of it because it seemed like a pretty important test based on the description. So Joël saw it and got excited because it seemed very relevant to some of the work he was already doing. So then, he is now investigating why this test is failing consistently. So in this story, we have four main characters: we have a class, two modules, and a class variable. So enter the class stage left. All right, so this class defines a class variable which I have to say is not something I work with very much in Ruby. So class variables kind of felt a bit novel and diving back into like, oh yeah, these are a thing. So the class defines a class variable that's called cache and assigns this variable to an instance of a cache. So then this class includes two modules who we'll call Module A and Module B. And we'll enter them stage right. And both of these models look to see if cache is already set. And if it's not, they also set the cache class variable. So with that information, in our test, we don't want to exercise the real cache just because then if other tests are reading from that cache, which is proving to be a source of flakiness for these tests, then they are overriding each other's expectations, and it's causing some of the tests to flake. So instead, we want to use a fake cache, just like an in-memory cache. So the test and its setup is already overriding. It's setting that class variable to say, hey, I want you to be a fake cache, just be in-memory. However, while executing that test, one of the modules is checking to see if that cache is set, which is being set in our test setup. So test setup sets the value. We're running the test but then in the module, the model checks to see if it's set, and it's suddenly nil instead of using the cache that we had set. So now it's defaulting back to say, "Oh, it's unset. So let me go back and set it to the real cache," which is exactly what we're trying to avoid. So then the question became, if we're setting the class variable in our class, why is it being populated in one of the modules but it's not being populated in the other module? So one of them has it set to the in-memory cache, but the other one does not. So I'm going to gloss over some of the details because this stuff is pretty tangling. But essentially, when the test is running, and it's loading the class, and we are overriding that class variable, it's getting shared with one of the modules because as soon as one of the models does set that class variable, there's a bidirectional link that gets set between the parent class which is the module in this case, and the class itself. And as soon as that module sets the class variable, then they're going to talk to each other, and they're going to reference the same value. However, this only seems to happen for one of the parents. You can't do this for both. So if you have two parents that are trying to share a class variable with the same class, that doesn't work. So that's a particular bug that we were running into. I do have some good news because if anybody is very nervous about the situation that I'm describing, I feel you. The good news is that in Ruby 3, they actually warn when this is happening and have introduced an error. So you don't have this inheritance confusion that can come out of the fact that these parent classes are also trying to share a class variable with this child class. So in Ruby 3, if you are writing a class variable in that class but then you try to overwrite that class variable in the parent of that class or by the module that's being included, then an error is going to be raised. So it's going to warn you if you're creating this bidirectional link between those two class variables and that you shouldn't be overriding the child's ownership of that class variable. Instead, if you're going to use class variables, which, one, is not my cup of tea, but if you're going to use class variables, it should be defined in the parent class, and then it can be shared downstream in the inheritance versus trying to go upstream and then having your ancestors essentially override some of those class variables. So all of that is to say we were on a very interesting journey of understanding how class variables work, how the inheritance works, how that bidirectional link is getting established, and then how Ruby 3 comes in to warn us if something funky is happening. CHRIS: Oh, that is interesting. And I'm now going to catalog that as a piece of information that my brain will retain for roughly the amount of time that we are recording this podcast and then immediately forget. STEPH: As you should. [laughs] CHRIS: It's one of the reasons that I try to avoid inheritance. And I try to avoid class variables as much as possible because of this category of problem, a very subtle bug that you have to try and really hone in. And you have to be very smart to debug this sort of thing. I don't want to be that smart. I want to code in a way that I can be less smart on any given Thursday. That's my goal in life. I will ask one other question, though. So there's just a cache that this class and pair of modules are hanging around with, and then you want to swap it out for in-memory. This sounds remarkably like the Rails cache. Is this cache distinct special? Could it not just be backed by rails.cache, THE cache within the rails context, which can be backed by Memcached, or Redis, or in-memory when you're in tests, or the NullStore, which I think is the default in development is probably how that goes? Is there a particular reason? Is this a special cache? Is there additional behavior that this cache has beyond the normal thing? Or is it just like, at some point, someone's like, oh, I need a cache. I'm just going to use a class variable, that'll be easy, which it definitely is, but then you run into complexities. And caches are one of those hard things to get right. So it's one where I would immediately be like, whoa, whoa, I would love to not make up our own cache here. So I'm wondering, is there a distinct reason, or is it just this happened, and here we are? STEPH: So I think we are using a custom cache that we are pointing to. So it is another service. It's not a Rails cache or an abstraction that we can point to and use. It is a different cache that we are using. And I'm trying to think back to the exact code. But there is a method that essentially checks to say, hey, should I use the real cache? Should I use the in-memory cache? And that is something that we've explored to find a way to make this more global for the test suite because we really want to control this for all the tests. Because it's very easy to not realize in the test that you should avoid using that shared global cache. And so that way, the tests don't interact with each other but instead always use an individualized cache for each test to make sure that it is self-sufficient and independent. But we haven't gotten that far yet in figuring out how we can take a more global approach with this. CHRIS: Gotcha. So I don't know the details. I assume there are reasons here. But just to play this out, if we find ourselves saying we have a reason to have a distinct cache, to have a special cache over here, but it's a cache...and caches fundamentally, that word always will raise my attention. It will be like, okay, this is a place that bugs will come and aggregate. And we need a distinct one that has special behavior as an external service, or that is just something like in... There's a wonderful blog post that Mike Burns wrote at one point that was about...I think it was something like things that will make me look at your pull request in more detail. And I really loved it because it did capsulate all of these like, yeah, there are good reasons to do everything on this list. But if you do any of them, I will look at your pull requests and be like, oh, that's interesting. Why are we doing that, though? Do we have to do that? Are you sure? Are you triple sure we have to do that? And this is definitely one of those things where caches automatically catch my attention. Even if we're using the built-in cache, I'm like, do we need to? Is that a definite thing? And then all the more so when we're using a custom bespoke one. Again, I assume that there are reasons that there's something special that's going on here. Perhaps the caching behavior is distinct from just it's Redis, and we throw data. And if it falls out the backside, that's fine. Maybe you need entirely different behavior here. But it is something that I would poke at a bunch. STEPH: Yeah, you're asking a lot of good questions. I will have to go back and look at some of the code because we spent enough time in Ruby specifics that I didn't pay as much attention to the cache. Because right now, as we are working on these tests, we're trying to fix just the test without changing the application code, one, because that feels like a safer space. And if the test is flaky, we're just trying to change the test first. But some of these tests we're starting to realize I'm not sure we can fix the test without also changing some of the application code, or the way that we do have to fix the test is really an incentive to back up and say maybe now's the time that we look at some of the application code. Because another question that comes to mind is why use a class variable, and does this need to be shared by the class and the modules? And there's a part of me that suspects that maybe some of this logic was extracted to a module, but then it wasn't cleaned up in the other places. And so that's why we still have a reference. And it's essentially then being shared and set and unset and reset in those different places. So I think you ask some good questions, and I have some more questions of my own when we have time to revisit that portion of the test and application. As another example of some of the tests that I've been working on, one of the tests that I...because we have a list, we can usually tell some of the tests that are flaky. So one of the ones that I was investigating was a similar issue where there was a shared resource, and someone had tried to mock it out. So they had taken the time to say, hey, I don't actually want to use that real resource that's over there; instead, I want to just return the scanned value. But instead, they'd accidentally stubbed out a class-level method instead of the instance-level method. And so it was running, but it wasn't actually stubbing anything else since that's the method that's not getting called. So that was just an oversight for that test. So I fixed that test. But I noticed that we were using allow any instance of, so then I did take the time to go through that file and change and move away from the use of allow any instance of. And for folks that are less familiar with allow any instance of, RSpec has some really great docs that talk about how it's very helpful for dealing with legacy code. But essentially, it is a code smell that you're using; allow any instance of because you are saying that my test is or my code is so complex that I can't really mock out the specific instances that I want to and then return specific behavior. So instead, I'm having to use this more global approach to say, hey, any instance of this method, I want you to mock it out versus this very specific instance that I know that I'm working with. But we can include a link in the show notes because there's a nice write-up that talks about some of the reasons that allow any instance of is not recommended. So that's been kind of fun. There's been a little bit of joy to get to refactor away from that and actually stub out a specific instance. Part of the work, too, that I'm noticing as Joël and I are going through these tests is leaving breadcrumbs for other developers as well because they have a very large team. And they're very junior friendly, which is just incredible. I love that so much about this company. And because they do hire a lot of juniors, then it is a tough codebase. It's a fairly old codebase. So as these juniors are coming in, they're seeing a lot of these patterns. And they're propagating these old patterns that aren't necessarily the best patterns to propagate. But they're doing their best, and then they are reusing what they're seeing. So part of the work as we are revising these tests, my hope is that people will see some of these newer patterns and use those instead of following some of the older patterns. CHRIS: I can only imagine that you're writing borderline novels in your pull request descriptions and commit messages there. I do wonder, is there an index of those that you're collecting? So there's like, here's the test remediation examples list, and you're slowly adding to them. This was a weird one with a class variable. And this was a weird one that had flakiness due to waiting or asynchronous behavior. And gathering examples of those, but specifically from the codebase. I could see that being a really useful artifact because I happily traverse through git blame all the time. But I don't know that that's always a thing. And frankly, I have to work for it sometimes. So if there is that list of here are pull requests that specifically did X, Y, and Z, I think that could be super useful. STEPH: Yeah, that's a great idea. And yes, they have some shared team documentation that speaks to specifically flaky tests because they're aware that this is a problem. They are working together to address this. And they have documentation that states ways to avoid flaky tests. If you encounter a flaky test, here are some of the ways that you can triage to find out what's wrong. So as Joël and I have been finding good examples, then we've been contributing to that document. And they also have team meetings. So our plan is to attend some of those meetings and be like, "Hey, this is just some of the stuff that we've seen this week, some of the things that we improved and changed," and share the progress that we're making. Since everyone is aware that there are these developers that are working hard to improve the test suite, but then share that information with the rest of the team so they too can feel...one, they can just see the changes that are taking place. But they too can also benefit and apply those strategies themselves when they see a flaky test. Oh, but you did just remind me of a thing. So one of the tests that I was going through...I'm very intentionally going through and making the smallest change possible. So I will do the gross, ugly fix whatever it is to get something to pass, and then I will commit it. And then I'll think about okay, well, how can I make this better? So essentially, I have the fix, whether it's pretty or not. And then, after that, I start to have other commits that make it prettier. And so, I had a pull request that had four commits that told the story that I was very happy about and progressed along in a more positive direction. And I issued that, and I discovered that Gerrit, when it sees four commits, it split all of them into their own change request. And so, instead of having what I thought would be this nice story, now got split across these four change requests. And I thought, well, that's less helpful. So I ended up squashing two of them, but I still kept three of them because they stood alone, and each told a story. But that's something that I've learned about Gerrit. CHRIS: Always so interesting how our tools shape our work. STEPH: And it made me think back to the listener who asked the question about ensuring that CI runs for each commit. Well, here you go, Gerrit. [chuckles] Gerrit does it for you. It ensures that every commit gets split into its own change request. CHRIS: I mean, as you said earlier, not my cup of tea but... [laughs] STEPH: Yeah, I'm still lukewarm. I'm still discovering Gerrit and how we get along. Mid-roll Ad And now a quick break to hear from today's sponsor, Scout APM. Scout APM is leading-edge application performance monitoring that's designed to help Rails developers quickly find and fix performance issues without having to deal with the headache or overhead of enterprise platform feature bloat. With a developer-centric UI and tracing logic that ties bottlenecks to source code, you can quickly pinpoint and resolve those performance abnormalities like N+1 queries, slow database queries, memory bloat, and much more. Scout's real-time alerting and weekly digest emails let you rest easy knowing Scout's on watch and resolving performance issues before your customers ever see them. Scout has also launched its new error monitoring feature add-on for Python applications. Now you can connect your error reporting and application monitoring data on one platform. See for yourself why developers call Scout their best friend and try our error monitoring and APM free for 14 days; no credit card needed. And as an added-on bonus for Bike Shed listeners, Scout will donate $5 to the open-source project of your choice when you deploy. Learn more at scoutapm.com/bikeshed. That's scoutapm.com/bikeshed. What else is going on in your world? CHRIS: In my world, we keep adding new users to the system. We keep doing more stuff. These are all wonderful things, the direction you certainly want to be heading. But as we're doing that, I've recognized that we had a lack of process and a lack of formalization of certain things. And a lot of the noise of the work was just coming to me because I was the person that everybody knew. I can ask a question; Chris will know the answer, et cetera. And then there were things that we needed to keep an eye on. But because it was everyone's job, it was no one's job. So we've introduced the idea of a point person on the engineering team. So this is a role that will rotate each week. I think you and I have worked on a handful of projects that had something similar to this. There was a team that we worked with that had an ad hoc list, which were just little tasks that needed to be done by developers. So there was one person who would run with that. I've heard it called captain before, the sprint captain. We're not really doing sprints. So for various reasons, that title didn't work for me. But point person is what I went with here. And so the idea is rather than having product management or anyone else in the organization just individually reaching out to developers, we want to try and choke that off, have a single point of communication. And so just today, I introduced into Slack, a group, but it's a group of one person. So @pointdev is technically the handle for this person. It's a group in Slack. And each week, we'll rotate who the members of that team are. And technically, you could add multiple, but the idea is this is just one person. So we'll rotate the person. And what ends up happening is if anyone...say the product manager says, "@pointdev, what's the status on..." blah, blah, blah, that will notify the person who is the point person that week. So that's a nice feature in Slack so that we can condense it down and say rather than asking individuals, ask this alias. We're introducing one layer of abstraction in our communication tools, much like we do in our software. So I'm drafting now the list of like, here's all the stuff that I think this person...because we're trying to push all of the quote, unquote, "other work" the non-product feature development work into this person's purview for a given week. So it's monitor Sentry for any new errors as they come up, triage them, and figure out what we want to do. Ideally, and this is perhaps aspirational, I would like to keep inbox zero in Sentry. I know how you feel about that more generally and perhaps even more specifically within the world of errors, but that's my dream. We're going to see how it goes. STEPH: I don't know if people know I am the opposite of inbox zero. This is the life that I'm living. CHRIS: What about with errors, though? What about something like Sentry? STEPH: I want to say that I would be a better human with my email. But I'm going, to be honest [laughs] and say that I would probably have the same approach where I am not an inbox zero person. I've come to terms with it. I used to really strive and think I needed to change. But I have reached a point of comfort with this is who I am. There are many like us, so shout out to all y'all. CHRIS: Oh yeah, by far the more common approach, I think. So specifically with the errors, I struggle a bit with it because what ends up happening is we are implicitly ignoring the errors. And if we're doing that, I would rather just sit around and have a conversation and be like, let's just explicitly ignore them. There's a button in the UI. We can ignore them. If this is not a real error, we can add it to the list of things that we do not report on. We can ignore that error. We can ignore it for a week and add a card to Trello that has a due date that says, "Hey, we got to work on this." But let's take that implicit indifference to that particular error mode of our application and make it explicit. Let's draw that line in the sand such that when I see a new error pop up, I'm like, oh, that seems like something I should do something about. I really want high signal-to-noise when I'm seeing errors coming. And so I'm willing to work for that. But it is a trade-off, and it does take effort. And it's noisy, especially browser extensions, and whatnot, just fighting the page. Facebook showed up one day. I don't know how Facebook got in there. Someone was browsing our website from within Facebook's browser, which I didn't know was a thing, but they had their own thing. And it fires a bunch of events, and Sentry was just like, let me slurp all of those up. Those seem fun. That was noisy. So we had to turn those off, but we explicitly turned them off. STEPH: I do like the approach that you're taking where it's one person, and then it's a rotating shift because I think that makes it more reasonable for someone's who's like, hey, this is going to be noisy for a week. And then you're going to look through these emails and check all these errors, and then either silence them because you don't think that they're interesting or mute them for now. Or if you're going to convert it into a ticket, set a due date, whatever the triage approach is going to be. But that feels more achievable versus inbox zero for life is just exhausting. But I feel like if you're doing it rotating week by week, that seems like a nice approach and also easier to keep it at inbox zero because that way, you are keeping up with all the errors. Because I agree; otherwise, what's the point of tracking all the errors if you're just going to ignore them? CHRIS: Yeah, definitely the rotating, I think, is critical. I think the other thing that's been critical specifically on the error front is we've had now a handful of meetings where we triage the backlog together, the backlog of errors. So like, what all is coming into Sentry? What's going on? And we go through the process of determining is this a real thing? Should we fix this? Should we ignore it? And we do that together so that it becomes not just one person's intuition about whether or not this is important or not or what the source of it might be but a shared intuition such that now any one of us, when it's our week, can ideally represent the team in that way and be like, never mind, never tell us about this again because it's very easy to silence things in Sentry that you would actually like to know about when they become real. But right now, we have this edge case that is an ignorable version. So trying to get there that's been fun. But yeah, once again, Sentry, that's one of the things on this person's list. There are ad hoc support tickets for our operations team. So anything that needs to happen on a user's behalf that currently needs a developer to console, let's funnel all of those to this one individual, respond to any new questions. So this is where that Slack handle will be useful. Check for any stuck jobs in Sidekiq. So is there anything that's been retrying for a while? Because it probably shouldn't. Maybe one or two retries is cool, but past that, something has gone wrong. And we should either get in there and fix it or just kill that job because it's never going to succeed, which is quite often the case but go in there and keep an eye on those and then look for anything. We're starting to use due dates within Trello, which is currently our project management system. We'll see. Someday we're definitely going to grow out of that. But for now, it's good enough and checking for anything that's overdue or coming up in the next week in terms of due dates and just making sure that we're being responsive to that. And so, I really like the idea of having this be a named set of things and a singular focus for one individual. Because again, that idea of like, if it's everybody's job, it's nobody's job. Or if it's nobody's job, then it's my job, and I don't want it to exclusively be my job. [chuckles] So I'm trying to make it not exclusively my job and to share the knowledge about it and make sure that these are skills that we all have and ideas and et cetera. But also, I would be fine to answer fewer questions in Slack each day. STEPH: I have to admit, as soon as you were telling me that you had established this role, I was quietly congratulating you on helping delegate some of these responsibilities to the team. Because like you said, you are then the person that takes on all these tasks. CHRIS: There's a laziness to that. Like, it's easy for me to just answer the questions. It's harder for me to put up a wall and say, "No, no, we have a process for this." And quite possibly, what's going to happen behind the scenes is that questions are going to come in to whoever is this point person. They're not going to know the answer. They're going to reach out to me, and then that conversation is still going to happen. But even by doing that now, now that person will see that answer, will understand the thinking or the background, the context that I have. And so it's that weird thing of like, it would be so much easier for me to just answer one question. But to answer all the questions, well, I can't do that. And so I'm working to try and do more of the delegation to try and hand things off when they're in a known state and to identify this sort of stuff so that the team broadly can be stronger and better able to support everyone else in the organization. So that's the dream. We'll see how it goes. STEPH: Yeah, I love that approach. I'm also thinking how interesting this role is because I'm imagining a mix between someone who is like the front point person at like an ER. So like, things are coming in, and they're in a tragic state and need help and need to be diagnosed. But at the same time, you mentioned they're going around. They're checking Sidekiq. They're looking at some email errors. So they're also that night shift guard that's walking around with a flashlight just poking in each room. So it seems like a very stressful and low-key role all at the same time, all mixed up into one week. That person probably needs a beer at the end of the week. CHRIS: There is a version of the story in my head that is...I wouldn't say this feels like a failure mode, but I would rather this not have to exist at all. I would rather things to be calmly humming along and not require a dedicated person each week to deal with the noise. I don't think that's realistic, certainly not as early on as we are in our organization. But I do wonder, is this a crutch? Is this something that we should be paying more attention to? And I know in teams that you and I have worked with in the past that has been a recognition of like, this is a crutch. But it's a costly crutch. Like, we're taking an entire...in our case, it's not requiring the entirety of a developer's week. They're able to do this pretty easily and then still get a bunch...like, 75% of their time is still feature work. But we're just choking down who's the person that will be responding to questions when they pop up so that fewer individuals are interrupted? But I have seen organizations where this definitely filled an entire week and spilled out more than. And then there was the recognition of that and the addition of another person that comes along and tries to fix stuff along the way as opposed to just responding. And so I want to make sure this isn't a band-aid but is, in fact, a necessary layer that we then try and shore up, you know, we should have fewer errors. That feels true. Okay, cool. Let's fix the bugs in the app. And these ad hoc things that an admin needs to have done can that be a button in the UI? Can they actually self-serve in those cases? And we're slowly moving towards those. Ideally, fewer jobs get stuck in Sidekiq. And so, my hope is that this isn't a job that gets harder and harder over time. It's a job that potentially, if we're being honest, probably stays about this hard. I don't think it's ever going to be just like, nope, nobody needs to do anything. The app just runs, and it's great. And it never has bugs. But that is a question in my mind as I start to embrace this thing of like one person is dedicated for a week to this. And if right now it's only 25% of their time, okay, that's probably fine. But if suddenly it's 50% of their time or 75% or 100% of their time for that whole week, that becomes too high of a bar in my mind. And I want to keep a close eye on it and make sure it's not trending in that direction. And I will be one of the people on the rotation. So I'll get to be in the trenches. STEPH: I appreciate all the thoughtfulness that you're putting into it. And I'm thinking back on a project where we had a similar rotation because we had an issue Slack channel. And so anytime there was an issue, then it would get posted in there. And before, it was going out to everyone, or there was one particular person that was always picking it up and then trying to delegate it to others as they needed to. But then we started a similar rotation. And one of the key benefits that I found from that is it signaled to the team, hey, this person might get pulled away. They can pick another ticket or two, but we need to give them lower priority tickets because there's a chance that they're going to get pulled away to work on something else. And that's okay, and we're going to plan for it. Versus without this role in mind, then you had people all taking on high priority tickets, but then someone had to be the one that's like, well, I'm going to punt on my high priority and feel stressed about the fact that I've got this other thing to deal with. But then, I didn't actually do the work that I planned for. So I feel like you're helping introduce calmness into the week, even if it is a stressful role. But then there's the goal that this becomes less of a stressful role, and if you see it trending in the opposite direction, then that's something to investigate. But I also feel like triage and communication is such an important part of being a developer that it also feels very relevant upskilling for the whole team to go through. So there's also that benefit of where this approach also empowers the rest of the team to also experiences, build empathy, look for additional fixes, and then also build these important skills. Overall, I really applaud your thoughtfulness. And I think it's a really good idea. And it will be interesting to see which direction that this role trends if it gets easier or if it's getting harder over time. CHRIS: Well, thanks. I appreciate that. And I'll certainly report back as we develop this but hopefully, it stays about where it is. That feels right. And I think I'll probably...that's one of those things that I will monitor. And if I feel it moving in the wrong direction, then step in and try and get it back to this space because this feels like a maintainable reasonable amount. And we shouldn't be fixing every bug and adding every button to the UI. That's just actually not how it works, unfortunately, would love to. That's not true. You shouldn't have every button in the UI. That's so many buttons. But broadly, I hope we can maintain roughly this, and I think identifying it and laying it out now I'm feeling good about having that structure. So yeah, we'll see how it goes. Will report back. But again, thank you for the kind words. With that tour of a bunch of different things, should we wrap up? STEPH: Let's wrap up. CHRIS: The show notes for this episode can be found at bikeshed.fm. STEPH: This show is produced and edited by Mandy Moore. CHRIS: If you enjoyed listening, one really easy way to support the show is to leave us a quick rating or even a review on iTunes as it really helps other people find the show. STEPH: If you have any feedback for this or any of our other episodes, you can reach us at @_bikeshed or reach me on Twitter @SViccari. CHRIS: And I'm @christoomey. STEPH: Or you can reach us at hosts@bikeshed.fm via email. CHRIS: Thanks so much for listening to The Bike Shed, and we'll see you next week. All: Byeeeeeeeee!!!!! Announcer: This podcast was brought to you by thoughtbot. thoughtbot is your expert design and development partner. Let's make your product and team a success.

Tonebenders Podcast
187 - Swan Song

Tonebenders Podcast

Play Episode Listen Later Jan 7, 2022 36:49


In this episode we are joined by Bernard Gariépy Strobl (re-recording Mixer) David McCallum (supervising sound editor) & Steve Fanagan (sound designer/supervising sound editor) of the new sci-fi film "Swan Song". They tell us about how they came together as a team when none had ever met before this film. They also talk about the challenge of designing UI sounds for the near future and the unique schedule for the film's post production. Show Notes and full transcript: https://tonebenderspodcast.com/187-swan-song/ Podcast Homepage: https://tonebenderspodcast.com/

That's my JAMstack
S3E2 - Salma Alam-Naylor on shipping, learning, and rendering in the Jamstack

That's my JAMstack

Play Episode Listen Later Jan 4, 2022 27:58


Our Guest: Salma Alam-Naylor What she'd like for you to see: Unbreak.tech Her JAMstack Jams: All the amazing rendering options! Her musical Jam: Move On by Emily Vaughn Grant (pay special attention at 1:47 in the track for the double tracked bass!) Transcript Bryan Robinson 0:14 Hello Hello everyone. Welcome to another JAM PACKED Jamstack episode. This is That's My Jamstack the podcast where we ask the best question since sliced bread. What is your jam in the Jamstack? I'm your host Brian Robinson and this week, we have a very special guest. I'm pleased to introduce the winner of the Jamstack community creator award from Jamstack Conf 2021 Salma Alam-Naylor. Salma helps developers build stuff, learn things and love what they do. She does that via her Twitch streams, YouTube channel and blog. One quick update for the episode, we recorded this prior to Salma joining the Netlify team. So while we mentioned Contentful, in various parts of the episode, Sam is now on the DX team at Netlify. Bryan Robinson 1:04 Alright, Salma, well, thanks for joining us on the show today. Salma Alam-Naylor 1:06 Thank you for having me. It's a pleasure to be here. Bryan Robinson 1:08 Awesome. So tell us a little bit about yourself. What do you do for work? What do you do for fun, Salma Alam-Naylor 1:13 I am currently a developer advocate for Contentful. I've also got like kind of other stuff that you do. So you might know me on the internet as white Panther. And I help developers build stuff, learn things and love what they do. I write educational blog posts about web development. I do a lot of live streaming on Twitch, I make YouTube content. And I'm an all round Jamstack enthusiast To be honest, for fun, I mean, I kind of do that for fun as well. But if you want to know about non web dev stuff, I actually love interior design. And I'm moving in the next like two months. So hopefully, when people hear this, they would have actually finally moved house. So I can't wait to get my hand stuck in to that little project. I also like to play cerebral puzzle games with my husband on on a computer, most recently, a game called Super liminal, which is all about like perspective and maths and stuff. It's very good. Bryan Robinson 2:19 I'm gonna jump in real fast. I have a six year old and we were playing super limited together. Nothing about it. I was like, this is super fun. And like we were having good time. He that was really cool. And then it gets creepy. I didn't expect they get super creepy. And he's like, I don't want to play this game anymore. Daddy. We never have to play it again. You're fine. Salma Alam-Naylor 2:38 Yeah, it was a good game. It's a good game. I remember this one bit that when you get on like a roof, and there's the moon. And we were like on the roof thinking this you have to we have to get above the roof because of the weird glitch thing when you turn the light on and off. But it wasn't it was an Easter egg. It wasn't a thing. It was fun. And I'm also, you know, my background is in music. I did a music degree. I was a music teacher. I was a musician. So I still try to play music for fun with my family. And I do want to get back into making music. Actually, I missed that a lot. But so when I move into my new house, I'll have a proper studio purposely for the music. So I think I'm looking forward to that a lot. Bryan Robinson 3:21 That's amazing. So what's your instrument of choice or musical talent of choice, I suppose. Salma Alam-Naylor 3:27 So when I was growing up, and when I was a teacher, my main instruments were piano and flute, but and singing, but I also taught kids how to play in rock bands for a few years. So I was a bass player. I don't really do much bass now. And I did some guitar and played some drums and stuff. But making music now I really like making electronic music mainly. I was also a musical comedian for a few years. Interesting. touring the UK, singing weirdly satirical British political songs. We'd get cancelled now so you can't hear any of it. Bryan Robinson 4:14 Out of curiosity. Is there any comedy in Britain? That's not satirical political comedy? I feel like everything kind of falls into it. Salma Alam-Naylor 4:23 Yeah, it's pretty much there's a lot to satirize in the British political system. But I guess that's for another podcast. Bryan Robinson 4:31 Yeah, sure. Awesome. Yeah. Let's let's maybe not talk about about the Jamstack. He's, he said that you're a Jamstack enthusiast. So what was your entry point into this ecosystem philosophy, what have Salma Alam-Naylor 4:45 you it was actually with Jekyll, the first static site generator many, many years ago, and that was the only one that existed you know, like around 2015 2016 and I had no idea what it was doing. But I was experimenting, I had really no idea that it was part of the Jamstack. At the time, I was just building a website, I had no idea that it was a static website, and really what that meant, but I was building something with liquid templates that compiled into a website. And I was hosting it on GitLab Pages at the time, not GitHub Pages. I was because I used to get lab for work. And so I kind of naturally gravitated towards GitLab at that time. But I guess the ecosystem sucked me in. I really don't know how I went from building my first Jekyll site to where I am now. I have no idea how, how this has happened, or what made it happen. But clearly, the Jamstack has, has a good thing going right. Like, it's fantastic. Bryan Robinson 5:51 So what are you doing right before you started playing with Jekyll, you were at some sort of company doing tech stuff he's mentioned you are you are using GitLab. So what was that like? Salma Alam-Naylor 5:59 So I did a variety of different things. Before I ended up here. I was working for some startups, I was working for a global e commerce company that was using like Java, whether bespoke kind of E commerce system with JSP front ends. I was also before that I was building a new e commerce platform in a startup that was JavaScript based what we're even using PHP, we're using PHP with JavaScript front end. But it was a it was a plain JavaScript front end, it wasn't statically generated, it wasn't using a framework or anything like that. After the global e commerce company, I was actually working for another startup building a React Native app. So like my career actually had nothing to do with the Jamstack. It was all my side projects. Until my last job, I was working at an agency, product agency. And we built quite a lot of things in the team. And actually we started gravitating towards next J S for these quick. They were initially proofs of concept, because next JS was pretty young at the time. But it ended up that next JS was a really scalable front end with a lot of capabilities. So we normally have like a dotnet back end and an extra as front end kind of thing with the API layer in the middle. And that was really my intro into the enterprise levels, scalable, robust, we can build whatever we want with the Jamstack kind of thing. Bryan Robinson 7:38 Alright, so let's fast forward a little bit. That was your last thing, right? How today, are you using the Jamstack philosophies professionally, I mean, obviously, Contentful is pretty, pretty big in that world. But also personally with both your educational stuff and anything else you're doing on the side. Salma Alam-Naylor 7:52 So one of the biggest philosophies that I like to promote the Jamstack is that just do it, just build something and get it live, just build it learn some stuff while you do it, and have a good time. Like, I can try things out without having to over commit to anything on the Jamstack I if I've got an idea for a website, a lot of the time I will get the idea or buy the domain, I will go on my Twitch stream for three hours. And I will build it and release it in that three hours. And that is the joy of the Jamstack. Salma Alam-Naylor 8:05 And what I love about that as well as it's so accessible to developers, because you don't have to over commit or pay for anything at that stage of IDEA inception. And so it's so accessible, and it's so in reach for so many people, for example, dot take dotnet I don't want to like hate on dotnet. It's great. It's a fantastic enterprise solution for enterprise products. But as a developer, as a front end developer, even though the dotnet comes with front end or back end stuff, what do I do when I've built an app? Like how do I put it online? So like I can just hook up a Jamstack hosting platform to my GIT repository, do a git push and great, there it is. It's online on a on a URL, I don't have to buy a domain even it's just there. And it's it's just so beautiful. And it's it really embodies the actual kind of agile kind of continuous delivery methodology as well. Salma Alam-Naylor 9:26 Every commit is a release, every commit is an immutable release. So you can roll back, you can have a look at the history you can you have, you can just click in a UI in like Vercel or Netlify or GitLab. Just click Oh, look at that. That's what I mean and week ago, I can compare that with what I've got now. And, and it scales. You don't even have to worry about scaling. If you get like a big hit on your proof of concept or whatever. And you know, it just enables developers to move fast to try things out to experiment and test Have fun without all the nonsense that developers have to deal with, day in, day out. And it's just a joy. Salma Alam-Naylor 10:09 And I've learned so much like, I never would have thought like, when I was building my like first websites maybe 10 10-12 years ago, my first proper websites, I never would have thought that I would be utilizing a CDN at the edge. And all of these different rendering methods, depending on the data that I needed to serve, auto scaling, immutable deploys, Git integration, infrastructure, serverless functions, you know, it's like a whole ecosystem that lets you try stuff, to see if it's gonna work. And if it does work, you can go further and make it robust. Like one of one of my biggest slogans is also build first engineer later. And that I think, is a really like, core part of the Jamstack. Just get it live and see what happens. Bryan Robinson 11:00 And you can get it live in any number of ways too, right? You can if you're making a content driven thing to begin with, you don't need a CMS. But yes, it takes like a few lines of code tweaked. And your next js, your 11ty, your whatever static site generator, right, like just ingest from somewhere else. And it's good to go? Unknown Speaker 11:19 Yes. It's very exciting. It's very exciting. Like imagine. So this has happened in the all in the last like six years since like, 2015, when the Jamstack kind of first came about, like what's going to happen in the next six years, and the next six years, and the next six years, I actually did. At the Contentful, fast forward conference at the beginning of November, I actually did the keynote with Stephan Judas, about the last 10 years of web development and how Jamstack came about to solve the problems of old school monolith solutions where back end and front end were divided, where everyone was reinventing the wheel the whole time. And the Jamstack has really come to like, solve these problems, where as a front end developer, you don't need all this back end nonsense anymore. You're and and because of that, it's like enabled developers, it's increased their skills is giving them the power is empowering developers to to build stuff that they couldn't have even dreamed of before. And I think that's really, really, like wonderful for the future. Salma Alam-Naylor 12:24 Like I have a four year old. And I can't wait to show him the stuff like he could put a website live. That's just an HTML page and JavaScript file, potentially, you know, on the Jamstack, when he's like, eight years old, you know. And imagine us being able to do that when we were eight. Bryan Robinson 12:46 At like 14, I think I had my first website. And it was like Microsoft front page built like graphical UI, it was, it was quite choice. Yeah, my six year old, I built him a website in a day, he happened to have a piece of art that he brought home from school, that instead of writing his name on it, he had to write his his first first name, and last initial, because that was yet another, another kid in his class with that name. And then he wrote.com At the end, and I said, I bet that domain is open. And it was and like, I threw it together, uploaded the artwork. And then he told me, he's like, I want to like button. And I was like, I bet I could do that. But you have to do three pieces of art every week to to make it so that I'll build that for you. And then like, I was able to walk him through what I done. And he had no real understanding. But it was like, okay, I can. This is simple enough, I can show you and it's Yeah, super low bar. Salma Alam-Naylor 13:43 Yeah, I can't wait. I can't wait for that. It's so empowering. And it's so exciting to see what our children could make one day with, how it's being innovated, and the improvements and the things that are being done on the Jamstack. And Bryan Robinson 13:57 how it kind of opens up into like the the kind of natural open web platform. Yeah, walled garden is not something that you have to buy into. And it allowed, like, I used to teach a journalism class on HTML and CSS. And I was like, look, you'll you can you can do this. And if you do this, you don't have to depend on these other platforms anymore. And like, I would talk about the history of the web and how in the 90s, it was a creator focus space. And in the current state, in fact, like anything from like, 2010 on, it's very consumer based. And so it's like, there's this dichotomy of the web, and the more people that can be creators, the better. Yes, yeah. So we've talked about next JS some, obviously, you work at Contentful. We talked about the olden days of Jekyll and all that good stuff. What would you say is your current jam in the Jamstack? What's your favorite product? Or maybe it's a philosophy or framework. What makes you love the Jamstack? Salma Alam-Naylor 14:53 It's sounds really nerdy. But what I like about the Jamstack is the different types. Types of rendering that are available. This is like, this is so ridiculous, but it's like. So obviously, I work for Contentful. Right, and I'm dealing with data like data comes from a CMS. But data is not all created equal. And so there are four types of rendering depending on the data your data needs, like, it's not just about like pages and posts and stuff, like there are some bits of data that are very granular, they might need to be more up to date than the others, because obviously, mainly Jamstack is static first, right? And so but not everything can be static. But not everything needs to be client side. And so that what the Jamstack has now is like these four types of rendering. So back in the old, old web days, everything was server side rendered, right, you you your web request, hit a server that went to the backend that generated from all the logic a, an HTML document and gave it back to the client, right. So we still got server side rendering on the Jamstack, which I think right now is really great for personalization for things like E commerce, and other things. Because I especially talk a lot about using query params with get server side props with NextJs. JS, for those kind of personalized experiences, rather than just serving everything statically to the same as same to everyone. But then we've got the static, so there's, the second one is static generation. So you've got a plain site content site, nothing changes, nothing needs to update it, just serve it as quickly as you can statically do your visitors great. But now we've got some fancy stuff, there's incremental static regeneration, which is based on a cache validation strategy called stale while revalidate. And what this does, especially inside next js is you choose when the server re validates your data. And at certain intervals, and if it is out of date, it will rebuild in the background via serverless functions. And then for the next visitor, it will show it up to date. So that's like good for kind of data that it's great if it's up to date doesn't matter if some people see it if it's out of date. And then you've got distributed persistent rendering, which so if you want the Jamstack to scale, you, you might have 1000s, and 1000s, and 1000s of pages, right from your CMS, your E commerce site or wherever. Now we know that with the Jamstack, a site to go live and be deployed, it needs to be pre built and pre rendered, right, but 1000s and 1000s of pages could take hours to build. And if you want to continuously deploy and be agile and move fast and break stuff, you can't have every single bill taking hours and hours and hours. So distributed percentage rendering, what it does, it lets you choose what pages are pre rendered, and then doesn't pre render the other ones, you could pre render like your top 20 pages or wherever at build time. But then when someone goes to visit a page that hasn't been pre rendered, it gets pre rendered at request time, and then cached at the edge for future requests. So we've moved away from like building static pages and static data on the Jamstack blanket to a flexible model where you can choose when your pages rendered, depending on the type of data that you're serving your visitors and how up to date it needs to be. It sounds really weird, but this is my favorite part of the Jamstack. Bryan Robinson 18:19 So it obviously, right? Because like that's a lot. And like when you when you actually said like my favorite parts, the rendering modes like okay, all right, but no, totally. And like, here's my absolute favorite bit of that entire of that entire conversation, right? You don't have to understand any of what Salma just said, if you're listening, right? Because you can start and you can, like we talked about, like the accessibility of the Jamstack earlier, you can start and you can just upload an HTML file and you're Jamstack. But then you can bring on something like a nextjs or an 11ty or a Gatsby or what have you. And then you're doing a different kind of Jamstack. And then you can bring in, like you said, the incremental static regeneration ISR. We love acronyms. And that uses SWR another accurate acronym, and then you've got DPR. But you can learn those things slowly as you go. And like you said before it, you can build stuff and put it live and have no understanding of any of that and then come back and get a little bit of performance boost or a little bit of build boost or these little things. And you can go Salma Alam-Naylor 19:24 When you need it. You know when it's appropriate when your site needs to scale when you've now got a CMS when you've got different types of data when you convert to use this database or something like that. And it's so flexible. It's not just static sites. It's it's a whole ecosystem that is so far removed from the monolithic way. We used to do things with just everything, everything from the server at request time done, or you know, everything from the CDN or request time static done. It's like there's these combinations Have those but then some more clever stuff that makes your workflow more efficient. That means that you don't need to worry about these things. And it's just like whoever thought of these things. I wish I had thought of those things. Oh, yeah. I'd feel pretty accomplished. Bryan Robinson 20:20 Oh, yeah. And I mean, we'd be having a completely different conversation if either of us were there. But But, but in all seriousness, right, like, the fact that I built my son's website, and it has a like button, I have no clue. Like, I've been doing this a long time, I have no clue how 10 years ago, I would have done that, because I would have had to stand up a server, I would have had to learn PHP or Python, or a server side scripting language, I would have had to do all these things, I would have had to do the JavaScript on the fly on the front end, I wouldn't have done it just pure and simple, I would not have done it. And literally, it was two hours of work 2 serverless functions and low clients are JavaScript and I was done. Salma Alam-Naylor 20:56 Do you remember back in the day when front end development involved, like httpd conf files and things like that, and I had no idea what that meant server configuration, get out of my life, I just want to build some front end with JavaScript, I don't care about that stuff is in my way. And the amount of I used to work on the LAMP stack when I was first starting because I was doing PHP at work. And so like to set up a whole PHP server on your on your local machine with PHP, MyAdmin, and blah, blah, blah, like, I'm not hating on PHP is great. But as a front end developer, you don't want to deal with that. Because that's not what you are an expert in, that's not what you want to do. That's not what makes you happy. It's, you know, it doesn't make me happy, like the four different types of rendering on the Jamstack makes me happy. Bryan Robinson 21:51 Well, and I mean, you get further into that. And you have to think about the DevOps. And like I, I pride myself on being able to find all the edge cases and break everyone's DevOps, that's something that I'm incredibly good at. And it comes from, like, I learned about Vagrant, and, you know, virtual machines on my laptop. And I, I haven't installed a vagrant or virtual machine on my laptop in six years now. And it is so refreshing. Salma Alam-Naylor 22:18 Yes, I remember that used to do that was all I did at work on these big monolith systems and deploy systems. I wonder how far those systems are away from that now. But I wonder if that's still the same, but it's just, there's always, there's big pain points between Windows and Mac, as well. And the Jamstack doesn't really have that, because you're just running some Node in a terminal right to develop locally. And then you're just sending it to the CDN. It's just Bryan Robinson 22:46 that like, like between Linux that you might have your server and Mac the Mac flavor versions, then then you got like title case sensitivity. Like no, no, don't make me think about that. Please. Bryan Robinson 22:59 Let's pivot a little bit. You have a music history. And so I'm very excited now that I've learned that for the next question, which is what is your actual musical jam right now? What's your favorite musician or album or what's playing on a day to day basis for you? Salma Alam-Naylor 23:14 So I think whenever you ask a musician this question, they will always say, the classic developer line it depends. Always It depends. I have I like such a varied bag of music because I used to listen to such a varied bag of music when I was learning music and writing music. I like music from progressive metal to EDM to jazz to folk to weird sounds. A solid favorite band that I will always reach for is Architectes, which is a British metal core band. And me and my husband. I actually met my husband when I joined his band. So we've got like a lot of music in common. It was a progressive metal band long story a long time ago. But the song I have on repeat right now is more on the EDM side. It's called probably no one's ever heard of this. It's called move on by Grant and I love it right? Because another weird nerdy thing. This is a music nerdy thing now. You know how often in pop songs your head double tracked guitars like panned left and right. This song for the first time in my life, I have heard double tracked bass guitars, and they're playing slightly different things. One minute 47 into the song is a feast for your ears. It's amazing to listen to, and I can't stop listening to it because of this double bass track thing. Move on by Grant if you want to hear some nerdy stuff, musically. Bryan Robinson 24:42 Now for that you probably need stereo headphones, right? Yeah, exactly. Get the benefit of that. Yes. Wow. Okay, that's I am not disappointed by the answer in any way shape or form. I learned a lot I didn't even know that was the thing double tracked anything so excellent nerding on that Salma Alam-Naylor 25:01 Yeah, great nerding love it. Bryan Robinson 25:04 Alright, so before we go, is there anything that you would like to promote out into the Jamstack ecosystem, anything, you're doing Contentful anything. Salma Alam-Naylor 25:11 So on my Twitch streams, I stream twice a week. Currently, I always build on the Jamstack. And one of the most challenging projects I'm building is something called Unbreak dot tech, where, and sometimes it's weird to bring these stuff. These sometimes it's weird to bring these things up in these kinds of podcasts. But as a woman in tech on the internet, it's very difficult, full stop, to realize. And sometimes it generally falls on the women and the marginalized people to talk about the issues that we face. However, unbraked dot Tech offers a platform for men to talk to other men, about being a better person and treating women and marginalized people better. So I've been working on that on my stream, I am welcoming contributions from men who want to talk on the matter. And we'll see how it goes. It's a complete experiment. I have no idea. You know, again, I'm using the Jamstack to experiment and see how it goes. So it's all good. It's hosted on Netlify using like Netlify forms, it's built with NextJs. JS. And I work on that every now and then and see where it goes, you can now submit videos as well as articles to the site, and they have captioned I've got captions and all sorts of accessibility stuff going on. So that's the thing. Catch me on twitch twitch.tv/white p four, and three are the Bryan Robinson 26:45 one of the hardest screen names in the business. Salma Alam-Naylor 26:48 Yeah, I regret it holy. Bryan Robinson 26:50 Anyway, definitely check out on what was it Unbreak tech it on Unbreak dot tech unbrick break dye Tech because I have heard way too many stories, and everyone should know the stories and again, the women and the marginalized people have had to tell them enough. So men, let's step up and do a little bit more around that. Salma Alam-Naylor 27:09 I appreciate that. Bryan Robinson 27:10 Salma, thanks so much for joining us on the show today. And I hope you keep doing amazing things, especially with Unbreak dot tech, and Contentful and everything in the Jamstack. And we hope to see some really cool stuff in the future. Salma Alam-Naylor 27:21 Thank you, Bryan. Thanks for having me. Bryan Robinson 27:24 Thanks again to our guest, and thanks to everyone out there listening to each new episode. If you enjoyed the podcast, be sure to leave a review, rating, Star heart favorite, whatever it is, and your podcast app of choice. Until next time, keep doing amazing things on the web. And remember, keep things jammy Intro/outtro music by bensound.com Support That's my JAMstack by contributing to their Tip Jar: https://tips.pinecast.com/jar/thats-my-jamstack

Parlons Design
Devenir Growth designer en 2022 - Design en start-up

Parlons Design

Play Episode Listen Later Jan 4, 2022 17:56


À l'intersection du design d'expérience et de la stratégie d'entreprise, le métier de growth designer pourrait devenir l'un des profils les plus en vogue en 2022... Quelques ressources pour se former au growth design : - Les case studies de growth.design : https://growth.design/case-studies - Se former à l'A/B Test : https://blog.hubspot.com/marketing/how-to-do-a-b-testing - Se former à Google Analytics : https://analytics.google.com/analytics/academy/ 🌟 Tu aimes Parlons Design ? Tu souhaites lui apporter ton soutien ? Partage le tout de suite autour de toi, ça devrait certainement plaire à d'autres passionnés de design d'interface 😉 📰 Profite de contenus design sélectionnés à la main chaque jour avec Partageons Design : partageons.romainpenchenat.com/#follow (Dispo en flux rss, newsletter ou blog) 💬 Viens discuter et suis mes actualités : - sur LinkedIn www.linkedin.com/in/romain-penchenat/ - sur Twitter @romainp_design 🦜 Découvre mon partenaire The Cacatoès Theory : www.thecacatoestheory.com 🔊 Jingle par Studio Module : www.studio-module.com 🎧 Écoute le podcast sur ta plateforme préférée : - Apple podcast : https://itunes.apple.com/fr/podcast/parlons-design/id1286546174?l=fr - Spotify : https://open.spotify.com/show/4z5cKF4fXvhTQIC2rXO6An - Deezer : https://www.deezer.com/fr/show/1459372 - Google Podcast : https://podcasts.google.com/feed/aHR0cDovL2ZlZWRzLmZlZWRidXJuZXIuY29tL1BhcmxvbnNEZXNpZ25Qb2RjYXN0?sa=X&ved=0CAMQ4aUDahcKEwjopuPyw9XsAhUAAAAAHQAAAAAQBw - OverCast : https://overcast.fm/itunes1286546174/parlons-design - Radioline : http://fr-fr.radioline.co/podcast-parlons-design - Flux RSS : http://romainpenchenat.free.fr/podcast/rss.xml #ParlonsDesign #Podcast #Design

SEO Podcast | SEO.co Search Engine Optimization Podcast
#615: Low-Code or No-Code for Your Custom Software Development Project Episode 1

SEO Podcast | SEO.co Search Engine Optimization Podcast

Play Episode Listen Later Jan 4, 2022 8:28


Low-code and no-code development platforms allow organizations to design and deploy custom software without the need for software developers. Low-code and no-code platforms provide much of the functionality of custom applications, such as user interfaces, data capture, business logic, and workflows—typically created by software developers—in a drag and drop way that requires no technical skills. It helps businesses to quickly develop an application from scratch, modernize applications by converting them from legacy systems without completely rewriting them and improve existing systems by improving and enhancing their functionality and UI. Low-code or No-code development is a methodology where coding for a custom software project is done by a business analyst, not a software developer. Low-code is increasing in popularity due to the ease of use for non-programmers. A recent study shows that companies are outsourcing their custom software development projects to low-code or no-code application development providers.  Software is supposed to make our jobs easier, not more complicated. With CodeTwo Low-Code Web Help Desk software you can quickly build an application that meets your company's unique needs in a matter of minutes. You don´t need to be a programmer or developer. Low-code platforms are invaluable in today's cloud-based world of software development. A low-code platform allows IT teams to develop various business apps faster than ever before, without having to learn coding languages or writing code.   More info about low-code or no-code for your custom software development project: https://dev.co/low-code-no-code/ Connect with us:  https://seo.co/ // https://website.design/ // https://dev.co/ // https://ppc.co/

Design Futures
Deb Levison

Design Futures

Play Episode Listen Later Jan 3, 2022 43:15


In this first episode of 2022, Deb Levison, 2012 graduate of Ringling College of Art & Design, talks to me about the importance of getting a routine when working remotely, the design process at Maark where she is a senior digital designer, using Figma for almost all her work, and showing or not showing high fidelity prototypes to clients. We discuss the realities of moving into a design leader role and Deb gives students some soul-crushing advice. She also tells us about her journey that inlcudes getting her degree in art history and that Saturday morning Photoshop course that got her hooked on design. And it wouldn't be a conversation about Ringling without talking about the Time-Life book project. Show LinksLinkedIn ProfileMaarkFigmaBaugasmDeep Focus Playlist (Spotify)Ringling College of Art & Design The Intro MusicSynergistic Effect by morgantj (copyright 2011 Licensed under a Creative Commons Attribution (3.0) license.)

Ride the Lightning: Tesla Motors Unofficial Podcast
Episode 335: My 2022 Tesla Predictions

Ride the Lightning: Tesla Motors Unofficial Podcast

Play Episode Listen Later Jan 2, 2022 96:27


A new year means it's time for my annual new year's "S3XY CARS" predictions for each Tesla vehicle. Plus: the new UI in software version 11 is generating a lot of criticism in the Tesla community, Elon Musk talks full self-driving in a new interview, and more! If you enjoy the podcast and would like to support my efforts, please check out my Patreon at https://www.patreon.com/teslapodcast and consider a pledge. I'd be grateful. Every little bit helps! And don't forget to leave a message on the Ride the Lightning hotline anytime with a question, comment, or discussion topic for next week's show! The toll-free number to call or Skype is 1-888-989-8752. P.S. Get 15% off your first order of awesome aftermarket Tesla accessories at AbstractOcean.com by using the code RTLpodcast at checkout. And if you're ordering a Jeda Wireless Charging Pad or USB hub for Model 3/Y (coupon code RTL), please use my referral link: https://getjeda.com/ref/8/ Grab the SnapPlate for any of the four Teslas at https://everyamp.com/RTL/. Finally, pick up a 128gb or 256gb Sentry Mode/Dashcam kit at http://www.puretesla.com/rtl 

EV News Daily - Electric Car Podcast
1324: Electric Rolls Royce Spectre Seen Testing | 29 Dec 2021

EV News Daily - Electric Car Podcast

Play Episode Listen Later Dec 29, 2021 24:10


Show #1324 If you get any value from this podcast please consider supporting my work on Patreon. Plus all Patreon supporters get their own unique ad-free podcast feed. Good morning, good afternoon and good evening wherever you are in the world, welcome to EV News Daily for Wednesday 29th December. It's Martyn Lee here and I go through every EV story so you don't have to. Thank you to MYEV.com for helping make this show, they've built the first marketplace specifically for Electric Vehicles. It's a totally free marketplace that simplifies the buying and selling process, and help you learn about EVs along the way too. TESLA'S V11 UI CHANGES ARE RECEIVING STRONG CRITICAL FEEDBACK FROM DRIVERS - Reveral Tesla owners have shared strong criticisms of Software V11's user interface, particularly with how it made accessing some important functions more difficult compared to V10. - A good number of these complaints could be seen in the r/TeslaMotors subreddit, a community of over 1.48 million users. Over the past few days alone, numerous Tesla owners have gone on the subreddit to share their displeasure at the UI changes that came with V11 — to much agreement among the online group's users - Tesla owners are not happy about the fact that some functionalities such as driver profiles, seat warmers, trip information, save dashcam, and tire pressure (to name a few) now require more taps to access than before. Some Tesla owners have gone as far as to state that since some features now require an extra step to access, their vehicle could end up being less safe. - Tesla owners noting that the icons in the new update do not have the same uniform, polished look as those that were used in V10. Others noted that the position of information such as the vehicle's speed had regressed as well, as the driver's hand could end up covering the speedometer - The fact that there are icons for Tesla Arcade, Toybox, and Theater — which are inaccessible when the car is on Drive anyway — and none for tire pressure, trip information, seat heaters, and lights, was deemed strange as well. Original Source : https://www.teslarati.com/tesla-v11-ui-critical-user-feedback-reviews/ BMW INTERVIEW “MAKING CHARGING EVEN EASIER AND MORE CONVENIENT” - Pieter Nota (responsible for Customer, Brands and Sales) - Right now, charging infrastructure is failing to keep pace with sales of electrified vehicles. That is why we urgently need rapid infrastructure expansion – especially in urban, densely populated areas and over longer distances. This is also up to policymakers: Economical operation must be ensured – and, if possible, promoted – especially while infrastructure is still in the expansion phase. - Who's going to build a second charging post if the first one can't cover its costs? But, in the long run, the market has to be able to regulate itself in the interests of the customer. What we need for this are clear objectives and incentive systems. The same applies to fleet operators, to support their transition to electromobility. - We have set ourselves ambitious goals for electromobility next year: We aim to more than double sales of our pure electric vehicles compared to this year. In 2022, we will be focusing on two more approaches that will make charging even more attractive. First, we will be integrating charging even more deeply into our myBMW and myMINI app. - This means our customers will be able to find everything related to their vehicle in a single app – including access to public charging points. Second, we will continue to promote charging networks – which will make the charging process simpler. Original Source : http://www.automobilsport.com/cars-tuning--37,232567,BMW-Interview-Making-charging-even-easier-and-more-convenient,news.htm ROLLS-ROYCE SPECTRE EV SPIED UP CLOSE IN BEST SPY SHOTS YET - Rolls-Royce promised it would be developing the Spectre electric car “in plain sight,” and here's some decent proof of that in spy shot form. Outside of the initial teaser photos released by Rolls-Royce earlier this year, we haven't seen any other details of the electric Rolls. That's changed today, as one of our spy shooters captured a test Spectre both on the pavement and on a flatbed. - The most intriguing angle of view is directly from the front. We can just make out that this Rolls appears to be wearing a version of the upcoming stacked headlight look previously spied on soon-to-come BMW models like the next-gen 7 Series and refreshed X7. - One of the last intriguing items of note is the angle of the rear tire when the driver has the steering wheel at full lock. It's not an extreme angle of rear-wheel steer, but the rear wheel does appear to be turned in the opposite direction as the fronts. This car being a coupe, it's reasonable that it wouldn't need a massive amount of rear-wheel steering to be agile in a city, but it's still a Rolls-Royce, so coupe or not, it's massive. - Rolls-Royce says the production car is coming in 2023 · Original Source : https://www.autoblog.com/2021/12/27/rolls-royce-spectre-spy-shots/ CHINA SETS PLAN FOR L3 AND HIGHER-LEVEL ADVANCED AUTONOMOUS DRIVING APPLICATION - China's Central Cyberspace Affairs Commission released the informatization plan for the 14th Five-Year Plan (2021-2025)  (the Plan), including plans for V2X and autonomous driving development within the country. - an energy network is also included in the Plan. Specifically, the government aims to build an optimized and balanced energy management system, allowing real-time monitoring, online analysis, and dispatch for regional energy information. The government will push forward the mutual interaction between electric vehicles and intelligent grid, forming an intelligent and efficient charging infrastructure system with ample charging piles. Original Source : https://autonews.gasgoo.com/icv/70019430.html HERE'S A FIRST LOOK AT THE TESLA MODEL X PLAID - The Tesla Model S and the Model X share the same platform. It makes sense then that both would end up getting premium-level Plaid tri-motor speedy goodness. - the first Model X Plaid SUVs have made their way into the hands of the public. - Of course, the new car has a landscape infotainment system which is a big upgrade over the old portrait-style version. It's also got the rear-seat screen that controls media and climate controls. - It's important to note that while not discussed in the video, there are clearly some hilariously mismatched panels. Most notably, the Falcon-wing doors look like they settle too low on each side. This causes them to not line up with the front doors or the rear quarter panels. - We know that the Model S Plaid has had some major braking problems. It seems to go without saying that the much heavier Model X is likely to have similar if not worse issues reigning in its 1,020-horsepower. Original Source : https://www.autoevolution.com/news/here-s-a-first-look-at-the-tesla-model-x-plaid-hyper-suv-as-it-s-delivered-to-a-customer-177718.html RIVIAN WARNS OF DELAYS FOR EVS WITH BIGGEST BATTERY AND SMALLEST PRICE - Rivian is pushing back its most expensive, furthest-driving configurations of its electric pickup truck and SUV, warning R1S and R1T reservation-holders that they could face another year's wait if they stick with their original choice. Deliveries of the two EVs are now underway, albeit in small numbers, but Rivian has more than 70,000 preorders to work through. - As of December 15, the CEO wrote, “we had approximately 71,000 preorders for the R1T and R1S in the US and Canada.” Of that, “the large majority” opted for the Adventure Package trim, with Rivian's Large pack battery. - Rivian also has a Max pack battery, which costs $10,000 more but promises 400+ miles of range. However that configuration – though available for reservation-holders to select – wasn't expected to go into production until later in 2022. Now, Scaringe says, that timeline has been pushed back further. - Of the roughly 71,000 preorders, only around 20% are for the Max pack battery. - Rivian will be reaching out to those customers – who, the CEO acknowledges, could have put down reservations as far back as 2018 – in January, with the offer of changing their preorder Original Source : https://www.slashgear.com/rivian-warns-of-delays-for-evs-with-biggest-battery-and-smallest-price-28704348/ SEMICONDUCTOR SUPPLY AND DEMAND CRISIS INTENSIFIES - The release date of customers highly favored electric vehicles has been delayed by more than a year due to the imbalance in supply and demand from the shortage of vehicle semiconductors. Even if consumers sign a new contract on the remaining days of this year, they won't be able to acquire the car in 2022, but in 2023. There are cases where the price of a used car overtakes the price of a new car or even gives up subsidies to purchase as shortage of the supply becomes more prevale - Front-line branches are waiting 13 months for Kia EV6, 12 months for Genesis GV60, and 8 months for Ioniq5 from contract to shipment are required. The actual delivery date may change again depending on the status of subsidies by local governments. An official from the Kia branches said, "The EV6, which uses a lot of semiconductors, has been delayed for more than a year, so it is difficult to confirm when it will be shipped if you sign a contract now. We only received an official letter from the head office telling us to announce change in delivery schedule from time to time to avoid customer complaints.” - As the delay in shipments becomes a serious issue, the price of a used car are even exceeding that of a new car. The longer the delivery period lasts, the higher the used car price becomes. Original Source : https://english.etnews.com/20211228200001 HYUNDAI HOME WILL BUNDLE EV CHARGER, SOLAR, HOME BATTERY Original Source : https://www.motortrend.com/news/hyundai-home-details-ev-charger-solar-home-battery $7M IN GRANTS TO INSTALL ELECTRIC CHARGING STATIONS IN BAY AREA Original Source : https://cupertinotoday.com/2021/12/28/7m-in-grants-to-install-electric-charging-stations-in-bay-area/ TESCO TO DEPLOY FULLY ELECTRIC HEAVY GOODS TRUCKS IN 'UK FIRST' Original Source : https://www.businessgreen.com/news/4042418/tesco-deploy-electric-heavy-trucks-uk MET GROUP TO INSTALL 4-MW TESLA MEGAPACK BATTERY IN HUNGARY   Original Source : https://renewablesnow.com/news/met-group-to-install-4-mw-tesla-megapack-battery-in-hungary-767406/ QUESTION OF THE WEEK WITH EMOBILITYNORWAY.COM Returns in 2022.  Email me a suggestion for a possible question and I might pick yours!  hello@evnewsdaily.com It would mean a lot if you could take 2mins to leave a quick review on whichever platform you download the podcast. And  if you have an Amazon Echo, download our Alexa Skill, search for EV News Daily and add it as a flash briefing. Come and say hi on Facebook, LinkedIn or Twitter just search EV News Daily, have a wonderful day, I'll catch you tomorrow and remember…there's no such thing as a self-charging hybrid. PREMIUM PARTNERS PHIL ROBERTS / ELECTRIC FUTURE BRAD CROSBY PORSCHE OF THE VILLAGE CINCINNATI AUDI CINCINNATI EAST VOLVO CARS CINCINNATI EAST NATIONAL CAR CHARGING ON THE US MAINLAND AND ALOHA CHARGE IN HAWAII DEREK REILLY FROM THE EV REVIEW IRELAND YOUTUBE CHANNEL RICHARD AT RSEV.CO.UK – FOR BUYING AND SELLING EVS IN THE UK EMOBILITYNORWAY.COM/

Parlons Design
Le design digital en 2022, les 3 tendances de fond

Parlons Design

Play Episode Listen Later Dec 28, 2021 14:00


La pratique du design digital évolue régulièrement. Pour finir l'année, je vous partage ma vision sur les quelques tendances de fond qui sont en train de redessiner le paysage des designers. 🌟 Tu aimes Parlons Design ? Tu souhaites lui apporter ton soutien ? Partage le tout de suite autour de toi, ça devrait certainement plaire à d'autres passionnés de design d'interface 😉 📰 Profite de contenus design sélectionnés à la main chaque jour avec Partageons Design : partageons.romainpenchenat.com/#follow (Dispo en flux rss, newsletter ou blog) 💬 Viens discuter et suis mes actualités : - sur LinkedIn www.linkedin.com/in/romain-penchenat/ - sur Twitter @romainp_design 🦜 Découvre mon partenaire The Cacatoès Theory : www.thecacatoestheory.com 🔊 Jingle par Studio Module : www.studio-module.com 🎧 Écoute le podcast sur ta plateforme préférée : - Apple podcast : https://itunes.apple.com/fr/podcast/parlons-design/id1286546174?l=fr - Spotify : https://open.spotify.com/show/4z5cKF4fXvhTQIC2rXO6An - Deezer : https://www.deezer.com/fr/show/1459372 - Google Podcast : https://podcasts.google.com/feed/aHR0cDovL2ZlZWRzLmZlZWRidXJuZXIuY29tL1BhcmxvbnNEZXNpZ25Qb2RjYXN0?sa=X&ved=0CAMQ4aUDahcKEwjopuPyw9XsAhUAAAAAHQAAAAAQBw - OverCast : https://overcast.fm/itunes1286546174/parlons-design - Radioline : http://fr-fr.radioline.co/podcast-parlons-design - Flux RSS : http://romainpenchenat.free.fr/podcast/rss.xml #ParlonsDesign #Podcast #Design

Reversim Podcast
428 Jarvis with Sagi from Perimeter 81

Reversim Podcast

Play Episode Listen Later Dec 24, 2021


[קישור לקובץ mp3] שלום וברוכים הבאים לפודקסאט מספר 428 של רברס עם פלטפורמה. התאריך היום הוא ה-14 בדצמבר 2021 - אוטוטו אנחנו מסיימים את השנה הזאת - והיום אנחנו מתכבדים לארח באולפן הוירטואלי שלנו את שגיא מחברת Perimeter 81 - היי שגיא, מה נשמע? ברוך הבא! רק אני (רן) היום באולפן הוירטואלי, ואני מארח את שגיא - ואנחנו הולכים לדבר על נושא שנקרא Jarvis - זהו איזשהו כלי פנימי ש-Perimeter בנו “בתוך הבית שלהם” ומיד נגיע אליו.אבל לפני זה - שגיא, ספר לנו קצת עליך ועל החברה?(שגיא) אחלה . . . אז אני “גיק מחשבים”, מגיל 6 התחלתי לעבוד עם מחשבים, בגיל 9 התחלתי לעצב . . . למדתי לבד, או יחד עם אחי הגדול - ישבנו בבית, קיבלנו מההורים ספר לעיצוב והתחלנו לעשות את זה.אני בא מעולמות של Deisn ושל User Experiernce - זה ה-Passion הגדול.ב-2018 הקמתי את Perimeter 81 ביחד עם עמית ברקת, השותף שליזה המיזם השני שלנו - התחלנו ב-2013 עם מיזם של VPN-ים ל-Consumers - בעצם, נתנו פרטיות ואנונימיות למשתמשים ברחבי העולם, לעשרות אלפי משתמשיםב-2017, ראינו שתי מגמות שקורות בשוק - (1) המון משתמשים שעוברים לעבוד מכל מיני מקומות ברחבי העולם - הרבה לפני הקורונה, כל מה שנקרא “Digital Nomads”, “נוודים דיגיטליים”(2) והמגמה השנייה זה בעצם המון חברות שעוברות לעבוד בענן ול-Cloud Infrascturesוראינו שיש כאן איזושהי הזדמנות מאוד מאוד גדולה - ושם בעצם הקמנו את Perimeter 81שנותנת Secured Remote Access - גישה מאובטחת למשאבים הפנימיים של הארגונים, גם ב-On-premise וגם ב-Cloudוזה, בעצם, מההתחלה ועד היום.(רן) אני זוכר, דרך אגב, אתה בטח יותר בקיא בזה ממני - אני זוכר שגוגל הכריזו לפני משהו-כמו-חמש-שנים שלמעשה אין להם יותר VPN - כל השירותים שלהם הם “Secured בדרכים אחרות”, שלטענתם הן הרבה יותר בטוחות, כי לטענתם הם אומרים שלא קיים כבר ההבדל הזה שבין External ל-Internal, וכל העניין של VPN זו אשליה, אז “בואו לא נשלה את עצמנו - כל Service חייב את ה-Authorization ואת ה-Authentication משלו, אל תשלו את עצמכם כאילו שבתוך ב-VPN זה בסדר” . . . . [יש את זה - Classic VPN partial deprecation]אז אני לא יודע אם אתה מכיר את ההכרזה הזאת, אני חושב שהם עשו את זה לפני כמה שנים, וזה גם ככה . . . (שגיא) כן, זה התפתח - גוגל יצאו עם שירות שנקרא BeyondCorp, שהוא שירות פנימי לגוגל, שבעצם מייתר את הצורך ב-VPN-ים וב-Firewall-ים בתוך הארגון, ובעצם מאפשר להשתמש בשירותים פנימיים שהם הרבה יותר מאובטחים.בעצם, הגישה היא לעבור מ-Site-centric approach, מלהגן על האתר - מעבר להגנה על העובד עצמוכי העובד נמצא בכל מקום והוא צריך בעצם הגנה גם בגישה למשאבים הארגוניים, שיכולים להיות בכל מקום היום - כלומר, אין Perimeter אחדוהדבר השני זו בעצם גישה למשאבים חיצוניים כמו אינטרנט ואיך אתה בעצם מגן על העובד בגישה לשירותים הציבוריים.וגישה של אבטחה בתוך המכשיר עצמו.(רן) אז אתה אומר שזה לא רק להגן על ה-Service-ים שלנו, זה לא רק להגן על השרתים - צריך גם להגן על העובדים, ואם בלהגן על העובדים עסקינן, אז בודאי לא VPN וזהו, כי זה אולי מגן על השרתים - וגם זה לא תמיד - אבל על העובדים הוא בטח שלא מגן. מובן.אז תיכף נגיע לנושא של Jarvis ונדבר על מה זה - אבל לפני כן: אמרת שהיית גיק-מחשבים בגיל צעיר, אז אני חייב לשאול את השאלה - מה היה ה-CPU הראשון ש''סבל את נחת זרועך” כשהיית ילד?(שגיא) אז קיבלתי מחשב Comodor מההורים . . . .(רן) Comodor64?(שגיא) כן . . . . Comodor64, היו שם כמה משחקים מאוד נחמדיםהיינו רבים - אני ואחי - בתור למחשב, מי ישחק קודםובאמת שם התחילה כל האהבה והזיקה למחשבים ולטכנולוגיה, ומשם זה התפתח עד היום.אני גם בא מתחום של טכנולוגיה - למדתי מדעי המחשב, אבל ה-Main Passion ובעצם מה שאני עושה זה איך אני מייצר צמיחהגם אם אני מתבטא בעיצוב או שזה מתבטא במוצר עצמו, שאני מוביל אותו, השיווק בחברה . . . אז כל האלמנטים האלה.(רן) מעולה. אז כן, אני גם פחות או יותר מאותה תקופה - אני אמנם הייתי על Sinclair Spectrum , אבל הם היו אחים / אוייבים . . . וגם לי הייתה גישה ל-Comodor64 במשך כל הילדות שלי, אז לגמרי מבין את הרקע.בסדר - אז בוא נדבר על Jarvis. מה זה Jarvis, ולמה בניתם אותו?(שגיא) אז הכלי הזה הוא משהו שבעצם נבנה על בסיס כשלונות או מה שלמדנו מהחברה הראשונה שלנו . . . בחברה הראשונה - היא הצליחה, אבל לא מספיקהגענו לתחום שהוא בעצם Commodity - זה VPN for Consumer, והיה משהו שהיה מאוד חסר לנו באותה תקופה, גם כדי לקחת החלטות טקטיות והחלטות אסטרטגיות, וזה כל העניין של דאטה, ואיך שאתה צורך דאטה בחברה.הבנו שהקצב הצמיחה של החברה יכול להיות הרבה יותר מהיר אם אתה מתעל את הדברים האלה - את הנתונים - לטובתך.אתה בעצם גם מייעל את הזמן של העובדים שלך ואתה מגדיל את הפרודקטיביות של העובדים.לכן, כשהקמנו את Perimeter 81, הדבר הראשון שעשינו זה בעצם זה(א) להקים צוות דאטה, שיאסוף מהרגע הראשון את כל הנתונים, יחבר את זה ל-Data warehouse שלנווהדבר השני זה בעצם שהקמנו את Jarvis.כש-Jarvis זו בעצם הפלטפורמה הפנימית שלנו . . . .אני, אגב, חובב Marvell - ו- Tony Strak זו הדמות האהובה עלי, בעיקר מעצם העובדה שהוא לא נולד עם כוחות-על אלא מישהו שבאמצעות החוכמה שלו והשכל שלו הצליח למצוא פתרון ולהתגבר על מכשולים שעמדו בפניוו-J.A.R.V.I.S. היה העוזר האישי שלו - ה-AI assistant של Tony Strak [והעוזר האישי של אבא שלו], שעזר לו לקבל החלטות בזמן שהוא בעצם נלחם ב-Bad-guys.ופה בעצם הייתה הנקודה שהתחלנו לפתח את Jarvis.(רן) אז שאני אקרא לך “Tony” מעתה והלאה? . . . . אז בעצם, כשאתה אומר “להשתמש בדאטה”, אני מניח שאנשים מדמיינים דברים שונים כשהם שומעים “דאטה”, כי דאטה יכול להיות הביטים שעוברים על ה-VPN וזה יכול להיות מידע אישי על הלקוחות וזה יכול להיות מידע עסקי מסוג אחר . . . איזה סוג של דאטה מצאתם שהוא מפתח להצלחה, בהקשר הזה?(שגיא) אנחנו אוספים היום המון נתונים שעוזרים לנו בכל המחלקות השונות אצלנו בחברהאם זה דאטה שקשור לכל הפיננסים, שעוזר לנו גם לשקף נתונים ל-Board וגם לעצמנו בתור הנהלה וגם לעובדים ביום-יוםזה כל העניין שאנחנו מדברים על Tranperency - זה ערך שהוא מאוד מאוד חזק בחברה, גם ברמת ה-Dashboard-ים שרצים כאן וגם ברמת הנגישות שלהם.אז זה בעצם כל המטריקות של SaaS Companies אנחנו חברת SaaS בסופו של דבר, אנחנו מאפשרים לבנות Network-as-a-Service או מה שנקרא היום שירותי SASEובעצם כל המטריקות ש . . .(רן) בעברית זה נשמע הרבה יותר טוב, אני חייב להגיד - שירות SAS-E . . .(שגיא) “שירות סאסי”, כן . . . SASE זו בעצם הגדרה של Gartner, ראשי-תיבות של Secure Access Service Edgeזו בעצם קונסולידציה (Consolidation) של שירותי Network ו-Security בפלטפורמה אחת.כלומר - Perimeter 81 זה לא רק “VPN Replacement לדור החדש” - זה בעצם הרבה יותר מזהזה One-stop-shop - זו Platform שמאפשרת מגוון של מוצריםאנחנו קוראים לזה בעצם “ה-Cyber Security Experience Platform” - כי כל המהות זה בעצם לייצר סוג של חוייה, וזו נקודה שהחלטנו לעשות, גם על סמך דאטה שאספנו מלקוחותהמון פידבק שהגיע - וגם את זה אנחנו אוספים בצורה שהיא מאוד מעניינת - וגם זה מתוכלל בתוך Jarvis, ויש המון מודלים שתומכים בזה.(רן) אז אתה אומר שבחברה הקודמת הגעתם למצב שבו אתם לא מבינים מספיק טוב את הלקוח ואת ה-Use case שלו - איך הוא משתמש במוצר, איפה הוא נתקע . . . אני קצת מנחש, אבל אני אעשה קצת אקסטרפולציה (Extrapolation) ממה שאתה אומר - בסופו של דבר אתה תולה את חוסר ההצלחה, או ההצלחה-הלא-מספקת של החברה דאז, בזה שלא היה לכם מספיק דאטה, וזה אחד הדברים הראשונים שבאת לתקן ב-Perimeter 81אבל אתה גם אומר משהו בנוסף לזה - לא רק דאטה: אני רוצה שכל עובד ועובד יראה את כל הדאטה. אולי לא אמרת את זה בדיוק במילים האלה, אבל דיברת על שקיפות . . .(שגיא) נכון לגמרי . . .(רן) . . . יש הבדל בין “בוא, יש לנו דאטה ויש לנו כמה אנליסטים שחשופים אליו ועוזרים להנהלה לקבל את ההחלטות הנכונות” לבין לחשוף את הדאטה בצורה שהיא שקופה לכל עובד, שגם עובדים יוכלו, לצורך העניין, להסתכל על החלטות ההנהלה בעין ביקורתית, לאור הנתונים - ואולי להצביע על אלטרנטיבות או להטיל ספק.עד כמה העניין הזה - של שקיפות ולתת את המידע גם לאחרון העובדים - עד כמה אתה רואה את זה כמשמעותי אצלכם?(שגיא) אז אנחנו חושפים כמעט את כל הנתונים של החברה - מרמת ה-ARR ו-Collections וכמות Logo-אים וחלוקה של סגמנטציות (Segmentation) ובאמת כל מידע שיכול לעזור במחלקות.על פי זה אנחנו גם נותנים כל מיני KPIs לעובדים השוניםאני חושב שהדבר הכי גדול שזה מייצר זה שזה מייצר תחושת שייכות - וזה בעצם גורם לסוג של Engagement, גם בין העובדים וגם בתוך החברה.אחד הדברים הראשונים שעשינו היה לחבר בין Jarvis לבין ערוץ ה-Slack שלנו - ובעצם כל חברה חדשה שמצטרפת, כל לקוח חדש שאנחנו מצליחים לסגור - אז זה מכריז על זה אוטומטית ואנשים יכולים להגיב ולהריעובעצם זה מחבר בין העובדים, אז זה יצר אימפקט מאוד עצום בתוך החברה, ואני חושב שזה יצר גם סוג של ווייב כזה, Culture ו-DNA מאוד ייחודיים ל-Perimeter 81אין פה איזו מדיניות של הסתרה והפחדה ו”לחסוך מהעובדים את הנתונים” - עצם זה שאנחנו כן מראים את זה עושה סוג של אמפליפיקציה (Amplification) - זה מגביר את המודעות.וזה גורם לעובדים לבוא עם יותר רעיונות ויותר דברים שהם רוצים ליזום ולעשות - ואלו התוצאות הישירות של זה.(רן) אז תראה - אני מאוד בעד שקיפות [והרחבה למיטבי-שמע: 346 Transparency @ Monday.com], אז אני אייצג פה עמדה שהיא לא שלי, אבל בכל אופן - המקטרגים יבואו [הם תמיד באים] ויגידו “אוקיי, אבל יש פה גם כמה סכנות - מידע יכול לזלוג החוצה . . . “. לצורך העניין, עובד שסיים את ההעסקה שלו בחברה ויודע יותר מדי, או אולי עובד שלא כל כך מרוצה או אולי סתם בטעות איזשהו CSM דיבר עם לקוח וחשף מידע שהוא לא היה אמור לחשוף . . . יש פה גם הרבה מאוד סכנות בשקיפות הזאת - מעבר לזה שלך, כחלק מההנהלה של החברה, פתאום יש לך 100 מבקרים או Whatever-כמה-עובדים-שיש-בחברה, בזמן שלפני כן היו לך מקסימום אולי שלושה, או רק ה-Board . . . אז יש לא מעט התמודדויות.מה החווייה שלך מזה? אני יודע שקשה להסתכל על זה במשפט אחד, אבל בגדול - עכשיו כשאתה נמצא שם כמה שנים, איך החווייה שלך עם ההתמודדויות האלה?(שגיא) אני חושב שזה משהו שאנחנו לא כל כך טורחים להסתיר . . . למשל את כמות הלקוחות שלנו ואת הדברים שאנחנו עושים.אנחנו צומחים בקצבים מאוד-מאוד מהירים, ובעצם באמצעות המידע הזה או מה שיש לנו במאגרים, זה מה שמשמש אותנו, זה כמו סוג של תחמושת עבורנו.ברור שיש בזה איזשהו סיכון, אבל אתה יודע - בעלות-תועלת אני חושב שהתועלת הרבה יותר גבוהה מהסיכונים שזה יכול לייצר.כמובן שגם החברה צומחת מאוד מהר - הכפלנו את כמות העובדים בשנה האחרונה, אנחנו חוצים את ה-200 עובדים היום וזה מעלה שאלות ותהיות לגבי ההמשך, כי בעצם כל שלב ב-Life-cycle של החברה מעלה אתגרים חדשים.אז השאלה היא באמת איך אנחנו לוקחים את זה קדימה - Jarvis כבר ניהיה כלי שנוגע בכל כך הרבה דבריםאז איך אנחנו בעצם מייצרים סגמנטציה (Segmentation) במקומות מסויימים, ומכילים, נגיד, מודל של Permissions על איזורים שם, של “מי יכול לעשות מה”.(רן) אז יש פה בעצם . . . דרך אגב, אני רוצה להכנס עוד מעט למה זה Jarvis-עצמו, אבל נשאר עוד רגע ב-Meta [מילה שמורה? . . . ] - אז יש פה שיקול של “אוקיי, החברה גדלה אז (1) האם באמת ה-Trust-boundary נשאר כמו שהוא היה עם [כשהיו] 10 עובדים עם חברה של 200 או של 1,000 עובדים? האם באמת זה נכון לבטוח בכולם? ו-(2) יש פה גם עניין של פרודקטיביות - יכול להיות שיש כאן עניין של Information-Overload: לא בהכרח כל מהנדס צריך היות חשוף לכל אינפורמציה שנחשף אליה איש Suppport או אולי זה פשוט לא מעניין אותם . . . אז בוא נעזור להם ונציף להם [רק] את האינפורמציה שמעניינת”.אז שני ה-Issues האלה - נקרא לזה (1) העניין של ה-Trust-boundary ו-(2) זה הפרודוקטיביות - אז דיברת על מודל של Permissions, מה עוד יכול לעזור שם?(שגיא) אז אנחנו באמת מדגישים את זה בצוות BI, שטורח לקחת את המידע ולעבד אותו ובעצם לזקק את נתונים שרלוונטיים לכל מחלקהכלומר, ה-Customer Success אצלנו - יש להם Dashboard-ים שרלוונטיים רק ל-Customer Success: כמה Ticket-ים פתוחים כרגע? מה המודל NPS שלנו, הציון NPS? מה הם זמני התגובה שלהם? מי בעצם נמצא On-Duty? - אלו בעצם ה-Dashboard-ים שיש להם.מצד שני, למחלקת Finance שלנו יש Dashboard-ים, שחלקם חשופים וחלקם לא חשופים, כי באמת יש נתונים שלא צריכים להיות אצל שאר העובדים, אבל שגם עוזרים להם להבין את כל המטריקות (Metrics) של ה-LTV/CAC, ה-Win-ratio - כל מה שאנחנו צריכים לדעת על “הגבולות גיזרה” ועל “איך שהספינה הזאת שטה”האם היא שטה בצורה תקינה או האם יש איזושהי בעיה שזה מציף - וזה עולה באמצעות הדאטה.אנחנו יכולים לזהות בעיות בצורה מאוד-מאוד קלה.(רן) בסדר, אז בוא נדבר קצת ונצלול פנימה למה זה Jarvis: אם אני מבין נכון, זה כלי שיש בו הרבה מאוד נתונים על הלקוחות, על הפיתוח של החברה - נניח, על איזו תוכנית נמצא כל לקוח, כמה הוא משלם, כמה הוא באמת משתמש, כמה רישיונות יש לו או נתונים אחרים שאתם מחזיקים - ונשאלת השאלה “רגע! אבל יש איזה מיליון כלים שעושים את זה!” נכון? יש Salesforce ויש Zendesk ל-Support ויש הרבה מאוד כלים אחרים, שעושים דברים די דומים, ונשאלת השאלה למה לא פשוט להשתמש באחד כזה? למה לבנות אחד אצלכם בבית?(שגיא) אז (א) זה לא בא להחליף כלי מדף כמו Salesforce ו-Zendesk או Freshdesk - אנחנו בעצם משתמשים בכולם וב-stack שלנו יש גם את Looker שמאפשר לעשות Slice & Dice ממש ב-high-level על הנתונים עצמם - זה באמת ה-Quick-wins שלנו, שאנחנו רוצים להנגיש מידע.הייתה לי איזושהי נקודה בזמן, ששאלתי את אחת מה-Acount Managers שלנו, שהייתה לה בעיה עם לקוח והיא רצתה לשלוף מידע, אז שאלתי אותה “תגידי, כמה זמן לוקח לך לפתור את הבעיה הזאת?” והיא אמרה לי “לקח לי בערך 3-4 שעות”כי היא הלכה למערכת הראשונה ושלפה משם מידע - ואז הצליבה את זה במערכת השנייה ועם המערכת השלישית והמערכת הרביעית והחמישית . . . ובאמת - היא לא ראתה סיפור שלם, שממש מספר את כל הסיפור של הלקוח, מכל הקצוות שלו.ופה זה היה סוג של A-ha! moment - שאמרנו שצריך בעצם משהו שהוא יותר מתוחכם, שמאפשר יותר דברים, יותר קסטומיזציה (Customization) ויותר מתאים למוצר שלנו, שיתן את ה-Insight-ים האלה בצורה מיידית.אנחנו מטפלים באמת בכמות מטורפת של לקוחות, אנחנו רוצים להגביר את ה-Efficiency - אני מאמין ממש ב”Work smart - not work hard” - וכל מה שאנחנו עושים זה בעצם לייעל את העבודה כאן ב-Perimeter.(רן) אז אתה אומר שהדאטה קיים - וכנראה שכמעט לכל חברה יש את הדאטה הזה - אבל להנגיש אותו? זה כבר סיפור אחר, ומערכות שאתה יכול לקנות מהמדף עושות רק חצי עבודה . . . הן אולי טובות בשלבים מוקדמים, אבל אז אתה מגלה שמישהו בחברה עובד 4 שעות כדי להוציא איזשהו פריט-אינפורמציה שהיה אפשר להוציא בשאילתת SQL קצת יותר מתוכמת - בשנייה. אז ברור שיש פה . . . אתה מייצר “תקרות זכוכית” לעובדים שלך: 4 שעות? אז הוא יכול, נגיד, לעשות שתי משימות כאלה ביום, תיאורטית - ומעבר לזה כנראה שהרבה מהעובדים אפילו לא ינסו, כי הם ידעו שזה הולך לצרוך להם חצי מהיום, אז הם אפילו לא ינסו להסתכל על הנתונים ואולי יפסידו את ה-Context שהם צריכים על מנת לקבל את ההחלטה הנכונה.אז אוקיי - אבל זה דורש לא מעט מאמץ . . . זאת אומרת, צריך לפתח את זה, צריך מפתחים, Database-ים, UI, איפיון, באגים, Security, כל הסיפור הזה . . . אז זה גם . . . . כמה זה דורש מכם, כרגע?(שגיא) אז יש באמת צוות שהוא Dedicated לעניין.הכל התחיל גם כשראיתי מה קורה אצל Monday [מה באמת?] ואצל ערן ורועי - ערן היה מפקד שלי בצוות בצבא והיינו יושבים איתם הרבה בהתחלה וראיתי את ה-BigBrain ואת מה שהם עשו [שוב, אם דילגתם קודם - 346 Transparency @ Monday.com]ראיתי כמה שזה עוזר, ברמת החברה, ויש לי גם כמה חברים שעובדים שם . . .ואמרתי “וואו, יש כאן משהו שהוא באמת Game-changer, וצריך לקחת את זה למקום אחר אצלנו”.באמת, מהשלב הזה, התחלנו לבנות את הצוות שמטפל ב-Jarvisזה התחיל בהתחלה עם איש דאטה ושני מפתחים של Front ו-Back - ועכשיו זה צוות שהוא טיפה יותר גדול, שיש לו גם Product Manager שמובילה את התהליך כולואת כל האפיונים, את כל ה-Roadmap - וזה משהו שהוא ממש מוצר שלם בתוך החברה.מה שיפה לראות זה בעצם את ה-Engagement-over-time - עד כמה אנשים תלויים ב-Jarvis וצריכים את זה ומבקשים עוד ועוד כלים ועוד ועוד תוספות.זה ממש פרויקט שבעיני הוא אסטרטגי לצמיחה של החברה.(רן) אז קודם כל, נגיד [שוב] שהקלטנו כבר בעבר פרק על BigBrain עם רן [שהיה אז] מ-Monday, אז מוזמנים ללכת ולחפש ולהקשיב לו - ושם באמת רן תיאר את המערכת הזאת, שעושה כנראה דברים דומים ל-Jarvis, רק עושה את זה בחברת Monday.אז כמה אנשים היום עובדים על זה? מי מנהל את זה? אתה, באופן אישי, מנהל את זה? איך נראה צוות המוצר של Jarvis, נכון לעכשיו, היום?(שגיא) אני יותר ברמת החזון ולאן זה באמת צריך להתפתח ותהקדם, אבל יש בעצם ב-Day-to-Day את טל אצלנו, טל דנגור, שהיא בעצם אחראית - היא ה-Prduct Manager - היא אחראית על בניית ה-Roadmap וכל האיפיונים, ובעצם עובדת עם צוות מפתחים של ארבעה מפתחים.יש גם אנשי Design שתומכים בזה, יש אנשי Data שתומכים בזהאז שוב - Full-time יש בסביבות החמישה אנשים - ו-on top on that יש עוד אנשים שעוזרים מכל מיני כיוונים של כל מיני מחלקות שונותוזה מתחבר עם עוד פרויקטים אסטרטגיים שאנחנו עושים בחברה - כי היום אני יכול לחשוב על Jarvis כעל סביבה שאנחנו ממש מפתחים בה, כמו ארגז כלים - אנחנו מפתחים פק”לים חדשים או כלים חדשים, שאותם אנחנו יכולים לחשוף אחר כך בפלטפורמה, במוצר של Perimeter 81.אנחנו גם בנינו, בנוסף לזה, Design system as a Framework -שבעצם מחבר, יוצר גשר, בין הפלטרפורמה לבין Jarvisוכל מה שאני עושה ב-Jarvis אני יכול, בעצם, להשתמש בו בפלטפורמה שלנו.אז זה בעצם עושה אמפליפיקציה (Amplification) לזה.(רן) אתה אומר שלצורך העניין, אם יצרת איזשהו Control, שהשתמשת בו בהתחלה פנימית ב-Jarvis, ואז הגיע מנהל מוצר של המוצר החיצוני ואמר “וואי! אני רוצה כזה!” - אז זו לא בעיה, זאת אומרת שזה אותו ה-Code- base או שזה לא בעיה להעביר בין אחד לשני.(שגיא) בדיוק(רן) וצוות הפיתוח הוא חלק מה-R&D? זאת אומרת - איך זה בנוי ארגונית?(שגיא) אז היום הוא יושב באמת ב-R&D, אבל בפועל הוא בעצם . . . טל, ה-Product, מכווינה אותם במשימות, בספרינטים - איך עושים? מה עושים? . . . .(רן) זאת אומרת שזה צוות פיתוח לכל דבר - מפתחי Backend ו-Frontend או Full-stack או מה שלא יהיה שם - אבל זה צוות פיתוח, זה לא אנשי אינטגרציה (Integration), זה לא שהם ביום-יום יושבים ועושים אינטגרציה בין Salesforce לאחרים - אולי הם עושים גם את זה לפעמים, אבל רוב הזמן העבודה זו עבודת פיתוח תוכנה, פשוט כמו שכל אחד עושה.(שגיא) כן, לגמרי - ויש גם המון אנשים . . . זה תלוי בפרויקטים.בהתחלה הזכרנו את העניין של תחקור של Account-ים שיש לנו, אבל זה כבר ניהיה הרבה מעבר לזה - זה דורש גם עבודה של Data scientist, שמוסיף על זה מודלים של פרדיקציה (Prediction) . . . אם זה, נגיד, להבין מה הסיכוי של לקוח לנטוש, מבוסס על Event-ים מסויימים - אז זה דברים שאנחנו מוסיפיםאו אם צריך עבודה DevOps-ית מסויימת, כדי לייצר כלים נוספים בתוך Jarvis, שיעזרו לפיתוח או ל-Customer Success בעבודה השוטפת שלהםאז יש המון אנשים שמצטרפים לזה, לפרויקטים מסויימים.(רן) עכשיו נשאלת השאלה היזמית הקלאסית - אוקיי, אז אצלכם עובדים על זה משהו כמו חמישה או שישה אנשים, מתוך חברה של 200 איש, ב-Monday עובדים על BigBrain לא יודע כמה X אנשים - וכנראה שבעוד חברות . . . .אז נשאלת השאלה: למה שלא נייצר מוצר כזה, שנותן את הכלי הזה לחברות אחרות, ונמכור אותו As-is? השאלה האם זה אפשרי, כלומר - האם זה 90% Custom-made ל-Perimeter ורק 10% דאפשר לעשות ממנו Generalization, או שבכל אופן יש פה איזשהו בסיס איתן, ככה, למוצר יותר גנרי?(שגיא) אז פנו אלי כמה פעמים עם השאלה הזאת . . . אני חושב שבמהות שלו, Jarvis הוא סוג-של-תפור על Perimeter 81, על מה שאנחנו עושים מבחינת הפלטפורמה, מבחינת הפיצ'רים, מבחינת ההתנהגות . . . .כלומר - קשה לחשוף אותו החוצה ללקוחות חיצוניים ולהפוך אותו לכלי מדף.אני יכול לומר ש-30% מהיכולות שלו הן כן משהו שהיית יכול, כאילו . . . לחשוף אותו ככלי חיצוני - אבל יש בו הרבה מעבר.הרבה שהוא בנוי על Perimeter 81.(רן) אוקיי, בוא רגע נחזור לימי ההתחלה של החברה - הייתם בטח כמה יזמים, אולי גייסתם קצת כסף וכמה עובדים - ופתאום, לצורך העניין, בא שגיא ואומר “אני רוצה לבנות כלי!” - ובא המנכ”ל ואומר “רגע, רגע - אבל יש לנו פה מוצר, שנייה, אנחנו סטארטאפ, יש לנו מעט מאוד Resource-ים . . . . בואו לא נבזבז את זה על כלי פנימי, בואו נשקיע את כל ה-Resource-ים שלנו באיפה שהכסף נמצא . . . .”.אז איך נראו הימים הראשונים של Jarvis, ואילו אתגרים היו בלהביא את כולם Onbaord לשם?(שגיא) אז הרבה פעמים בהתחלה, כשיש לך משהו שהוא לא קיים, קשה לראות את התועלת ואת ה-End-game - מה בעצם הוא יתן לך בסוף הדרך [מעבר ל-”I.. Am... Iron Man", כמובן].אני חושב שבמקרה הזה, על סמך הרבה דברים שעשינו בעבר, ההתעקשות שלי הייתה מאוד מאוד נחרצת - וזה דרש באמת שיחות מאוד עמוקות עם השותף שלי, ולקח זמן עד שהגענו להחלטה הזאת, שהולכים על זה ולקבל את ברכת הדרך.כי באמת - זה דורש משאבים, זה דורש זמן, זה טיפה מסיט מהפוקוס ולא מבינים למה צריך להסיט מהפוקוס.אבל אני ועמית ביחד באותה הסירה כבר למעלה מעשור, אז אנחנו יודעים כל אחד את הטריגרים של השניובסופו של דבר באמת הגענו לעמק השווה ולהבנהאבל כן - היו הרבה Friction-ים ממש בהתחלה, כדי להגיע לדבר הזה - ואני מאוד מאוד שמח שהייתה את ההתעקשות ושעשינו את זה, כי היום זה באמת מוכיח את עצמו ומראה את ה-Value הגדול בתוך הארגון.(רן) מצויין - ואילו אתגרים אתה רואה היום? זאת אומרת - עובדים חדשים? פיתוחים חדשים? אתגרים טכנולוגיים? אתגרים אנושיים? . . . אילו אתגרים אתה רואה כרגע מסביב ל-Jarvis, נכון להיום?(שגיא) אז היום יש לנו המון כלים כשאנחנו רוצים לעזור לצוותים השונים - לצוותי הפיתוח, לצוותי ה-Customer Success, ב-Marketing זה תחום שלא נכנסנו אליו עדיין ב-Jarvis והוא יכול לתרום הרבה . . . אבל זה דורש המון Engagement מהעובדיםלמשל - ה-R&D הבינו את הפוטנציאל ומבקשים המון דברים שיעזרו להם בלנהל, נגיד, את התשתית, לנהל את הרשת . . . המון פעולות שהיו פעולות שחוזרות על עצמן ולוקחות המון זמן - פתאום Jarvis יכול לעשות את זהכי בלחיצת כפתור יש לך משהו שפועל ברקע ומבצע את זה.אז אלו דברים שמתווספים ונכנסים ל-Roadmap שלנוב-CustoermSuccess יש המון דברים שקשורים ל-Relationships עם הלקוח, אז זה בעצם משהו שאנחנו מפתחים ב-Jarvis וחושפים אותו אח”כ בפלטפורמה - ויש לו Impact עצום על מה שאנחנו עושים.אנחנו ממש עכשיו בנינו את ה-Roadmap לשנה הבאה ואת מה שאנחנו הולכים לעשות ואיך אנחנו יכולים בעצם להכניס עוד ועוד ועוד מודלים ועוד אפשרות לתחקור ולקסטם (Customize) את Jarvisאם ה מבחינת ה-Alert-ים שהוא יכול לתת, מבחינת ה-Insights שהוא יכול לתת . . . ממש לזקק את המידע, כמה שיותר.(רן) כיוון שזה קוד - האם חלק מהמפתחים, שלא עובדים ב-Jarvis, תורמים לשם? זאת אומרת - מייצרים Plug-ins, מתקנים באגים, תורמים פיצ'רים?(שגיא) אז בדיוק עכשיו אנחנו עובדים על פרויקט נוסף, שזה בעצם לייצר את ה-Design systemה-Design system הוא סוג של Framework, גם ברמת ה-Design team שלנו.יש לנו סטודיו של שמונה מעצבים בחברה, שזה גם חלק משמעותי - וגם אנחנו רוצים לייעל את העבודה של הצוותי Front שלנו, אז ה-Design System הוא סוג של Framework שהוא בעצם משותף, Repository של “מרמת האטומים והמולקולות”, לייצר את כל ה-Component-ות השונות בין אם זה כפתור, טבלה או מסךובעצם מייצרים את ה-Repository הזה, שנמצא גם ב-Jarvis וגם בפלטפורמה - אז צוותים שעובדים בפלטפורמה על דברים שונים ומוצרים שונים יכולים להעביר את זה ל-Jarvis - והפוך.(רן) אוקיי, ואיך נראה ה-Stack הטכנולוגי? אני מתאר לעצמי שמצד אחד אתם חברה שמייצרת איזשהו שירות של אבטחה, Style-VPN, לא בדיוק זה אבל משהו דומה - אני מניח שזו התעסקות קצת יותר ב-Low-level; מצד שני - Jarvis, כנראה יש Stack שונה לחלוטין . . . זאת אומרת, הוא מתעסק בדאטה וב-UI ובדברים כאלה . . .(א) תקן אותי אם אני טועה, יכול להיות שאני מדבר על משהו שלא קיים - אבל בכל אופן: איך נראה ה-Stack הטכנולוגי, והאם קיימים פערים - לצורך העניין פערים טכנולוגיים - בין מפתחי Jarvis למפתחים אחרים בחברה?(שגיא) אז באמת ה-Stack הוא אותו Stack - התחלנו לפתח בעצם מאותה נקודת פתיחה.ה-Stack עצמו הוא מודרני - אני לא מכיר את הBits & Bytes, אני חושב שהם עושים את זה על בסיס React, את הפיתוח עצמו.הדאטה עצמו נשלף מה-Data Warehouse שלנו , אני פחות מעורה ב . . .(רן) וזה דומה ל-Stack הטכנולוגי של שאר החברה? (שגיא) כן, לכל דבר.זה בעצם מקל על המעברים.(רן) בסדר, אז תראה- קודם כל זה מעניין, אני חושב שיש כאן כמה דברים מעניינים: אחד זה הסיפור התרבותי, זאת אומרת של “בואו נפתח Infrastructure פנימי!” - ולא Infrastructure במובן הקלאסי שהמפתחים חושבים עליו, של Monitor-ים, Deployments ו-Log-ים אלא ה-Infrastrucutre העסקי, שמשקיעים בו הרבה מאוד מאמץ, ובאמת אתה אומר ש”עשינו את זה מתוך הניסיון שלנו, זה לא שבפעם הראשונה עשינו את זה נכון . . . טעינו, ומהטעויות האלה למדנו והנה, זה התיקון שלנו” - ובינתיים אתה אומר שזה מוכיח את עצמו אז אני מקווה שזה באמת ימשיך ככה . . . .ומעבר לזה - יש פה גם שאלה של ניהול של צוותי פיתוח מאוד מאוד מגוונים ויכולת של עבודה מוצלחת בין כולם.ואני חושב שהסיפור הכי מעניין זה השקיפות בתוך הארגון, זאת אומרת - התרבות הזו של השקיפות, של “בוא ניתן לכולם לראות את כל הקרביים של החברה”, מתוך הנחה שברגע שיהיו להם את הנתונים, הם יקבלו החלטות יותר נכונות, זאת אומרת שיש פה Trust מאוד משמעותי בעובדים.(שגיא) לגמרי.(רן) בסדר, אז אנחנו, ככה, מתקרבים לקראת הסוף - יש עוד משהו שהיית רוצה להוסיף, על החברה עצמה או על Jarvis?(שגיא) לא, אני חושב שזה באמת מוצר שכיף לפתח אותו, כיף לעשות אותו וכיף לתרוםהיום כל עובד יכול להגיע ל-Jarvis, להכנס - גם אם זה להסתכל ב-High level על הלקוחות ולעשות שם Slice & Dice - או ממש לעשות Drill-down ולראות את הסיפור, את המסע של הלקוח.אנחנו חברת SaaS, אנחנו עושים מודל של Land & Expandאנחנו רואים בעצם איך הלקוחות מתפתחים אצלנו, בין אם זה ברמת ה-Feature-ים שהם משתמשים בהם, שיחות שהם עשו עם ה-Customer Success, שיחות שאנחנו דוגמים אותן . . . אז זה בעצם המון מידע שמגיע מהמון מקורות - אם זה Salesforce, מהפלטפורמה עצמה, Usage שלהם, כל המטריקות האלה, דברים שאנחנו בעצם מודדים ב-Day-to-Day ובסוג-של-Real-time.אז זה באמת Game changer ובאמת עוזר לנו לעשות את הקפיצה הזאת, כי אנחנו חברה שהתקציב פרסום שלנו הוא תקציב דו-ספרתי של מיליוני דולרים, שנתי - ואתה חייב להראות את ה-ROI החיובי על כל דולר שאנחנו משקיעים.לכן, בעצם, כל הדאטה וכל מה שאנחנו אוספים - הכל בעצם מתרגם לתוצאות וללהיות ממש Data-driven ו-Results-driven ולהסתכל על הדברים הטובים ועל הפחות טובים בעיניים, ולדעת איך לטפל בזה.וגם אם נתקעים בקיר אצלנו - תמיד נמצא את הדרך לעקוף אותו ואת הדרך היצירתית הזאת.(רן) בסדר גמור - תודה.אז אני מניח שאתם - כמו ארגונים אחרים - גם מגייסים עובדים . . . גם ל-Jarvis וגם למקומות אחרים בחברה. איפה אתם נמצאים, בישראל?(שגיא) יש לנו משרדים במגדלי חג'ג', ואנחנו בעוד שנה עוברים לבית התנועה הקיבוצית . . .לקחנו בניין שלם שהוא Sand-alone, שבאמת יותר מייצג את החברה ואת הרוח שלנו.מאוד מאוד צנוע מבחוץ אבל מבפנים זה משהו מאוד מעניין.(רן) חתיכת היסטוריה . . . .(שגיא) המון היסטוריה, כן - בניין ממש מרשים.הולכים לעשות שם המון שימור של יצירות אמנות . . . אנחנו הולכים לשמר בעצם את הסיפור, אתה יודע - מישן לחדש.אני מאוד אוהב אדריכלות, אני בא גם מהרקע, מהתחום, התעסקתי המון בזה.אז זה עוד איזה פרויקט חווייתי בשבילי.יש לנו 45 משרות פתוחות בתל אביב, ניו-יורק ולוס-אנג'לס - אז באמת החברה צומחת בקצב מאוד מאוד מהיר.(רן) רק למי שלא היה בבית הזה - איפה הוא נמצא? באיזה רחוב?(שגיא) בלאונרדו דה-וינצ'י, ממש ליד קפלן(רן) אוקיי - אז מרחק-הליכה מהרכבת . . . .(שגיא) מרחק-הליכה מהרכבת, כן.(רן) בסדר - אז תודה רבה, שגיא! תודה לך על הזמן ועל זה שסיפרת לנו על Jarvis.(שגיא) היה לי כיף מאוד, תודה רבה.(רן) להתראות האזנה נעימה ותודה רבה לעופר פורר על התמלול!הנה כמה תמונות מסך של ג׳רביס:

Orbital
How Oppo Find N improves over Galaxy Z Fold 3

Orbital

Play Episode Listen Later Dec 24, 2021 30:49


A new foldable is in the house, though sadly it won't be in stores anytime soon. Gadgets 360 deputy reviews editor Roydon Cerejo and senior reviewer Aditya Shenoy join host Akhil Arora to talk about the Oppo Find N. We discuss how the Find N compares to the foldable leader, the Samsung Galaxy Z Fold 3. The hinge sits flush and offers multiple angles, the battery is bigger, and the display is shorter but wider (less annoying black bars in video). Read: Oppo Find N first impressions But it lacks an IP rating, ample software optimisation, and under-display camera (though that is good). Some of that is because the Find N is only launching in China. That said, it does have gestures and intuitive tricks like the Fold 3. Along the way, we delve into its many cameras, and speculate why Oppo is not bringing the Find N to India. Follow Gadgets 360 on Facebook, Twitter, Instagram, and YouTube. Write to us at podcast@gadgets360.com Chapters Intro (00:00) vs Galaxy Z Fold 3 (00:24) Hinge and heavy (07:06) UI and UX (12:40) Premium and solid (17:02) The cameras (20:55) Why it's not in India (24:22) Outro (30:32) Photo credits: Roydon Cerejo/Gadgets 360

SaaS District
Designing SaaS Products That Deliver Better User Value and Drive Growth with Peter Loving # 160

SaaS District

Play Episode Listen Later Dec 22, 2021 47:41


Peter Loving is a software designer, coach and consultant who works with SaaS companies to build better products, making UI & UX improvements that drive growth & wow users. He's the founder of UserActive, an agency that designs meaningful tech products. They are inspired by a mission to help tech founders build products that enrich the lives of users, doing this by applying critical thinking, creative talent and product strategy to solve real business challenges. During this episode we cover: 00:00 - https://balsamiq.com (Balsamiq) Rapid, Effective and Fun Wireframing Software 00:46 - Intro 02:32 - Creating a Value-Based Product Dashboard 08:26 - The Relation Between UI/UX & Product Design 12:29 - Tech & SaaS Improvements When Building Designs 17:05 - Increasing Retention & Reducing Churn With Better Product Design 19:37 - UserActive Top Analytics Tools 22:24 - Changes & Important Skills For Future UX designers 25:25 - Peter's Top 3 Favourite SaaS Companies Designs/UI 30:15 - Background, Past Ventures & Building UserActive 35:51 - Advice Peter Would Give to His 25 Years Old-Self 37:36 - Peter's Greatest Challenges as Being CEO at UserActive 40:52 - Instrumental Resources For Peter's Success 43:51 - What Does Success Mean To Peter Today 45:44 - Get in Touch With Peter Mentions: https://support.airtable.com/hc/en-us (Airtable) https://mixpanel.com/home/ (MixPanel) https://about.facebook.com/meta/ (Meta) https://www.productboard.com (Productboard) https://www.teamwork.com/careers/a2.42c/ (Teamwork) https://www.facebook.com/groups/saasfoundersnetwork/ (SaaS Founders - Build & Scale (Facebook Group)) Books: https://www.amazon.com.br/dp/B0064VPS24/ref=cm_sw_em_r_mt_dp_PC18PAKQ09FJY3F2D5PQ (The Pumpkin Plan by Mike Michalowicz) https://www.amazon.com.br/dp/0593084411/ref=cm_sw_em_r_mt_dp_107VW1F2BKDKGX9S0QKS (Fix This Next by Mike Michalowicz) Get in Touch With Peter: https://twitter.com/lovingpeter (Peter's Twitter) Peter's Email Tag Us & Follow: https://www.facebook.com/SaaSDistrictPodcast/ (Facebook) https://www.linkedin.com/company/horizen-capital (LinkedIn) https://www.instagram.com/saasdistrict/ (Instagram) More About Akeel: https://twitter.com/AkeelJabber (Twitter) https://linkedin.com/in/akeel-jabbar (LinkedIn) https://horizencapital.com/saas-podcast (More Podcast Sessions)

Quick Charge
Quick Charge Podcast: December 21, 2021

Quick Charge

Play Episode Listen Later Dec 22, 2021 6:42


Listen to a recap of the top stories of the day from Electrek. Quick Charge is available now on Apple Podcasts, Spotify, TuneIn and our RSS feed for Overcast and other podcast players. New episodes of Quick Charge are recorded Monday through Thursday and again on Saturday. Subscribe to our podcast in Apple Podcast or your favorite podcast player to guarantee new episodes are delivered as soon as they're available. Stories we discuss in this episode (with links): Tesla releases big holiday update with TikTok app, UI changes, and more Tesla Director of Quality leaves for JB Straubel's Redwood Materials Tesla Model Y achieves highest possible IIHS safety rating Tesla secures another order of electric semi trucks Tesla is rumored to be behind giant deal to bring LFP battery cell production to the US Tesla Model Ys spotted at Gigafactory Berlin, but production approval still uncertain Goodyear introduces ElectricDrive GT EV-specific replacement tire for Model Y Nikola to pay $125 million in settlement agreement with SEC Ford demonstrates the F-150 Lightning charging other EVs at L2 speeds https://youtu.be/5NGzDXaIw68 Subscribe to the Electrek Daily Channel on Youtube so you never miss a day of news Follow Mikey: Twitter @Mikey_Electric Listen & Subscribe: Apple Podcasts Spotify TuneIn Share your thoughts! Drop us a line at tips@electrek.co. You can also rate us in Apple Podcasts or recommend us in Overcast to help more people discover the show!

Frontend First
Suspense and the React 18 Keynote

Frontend First

Play Episode Listen Later Dec 21, 2021 61:38


Sam and Ryan talk about how the React 18 Keynote told the story of Suspense. They discuss how Suspense resolves the tension between encapsulated data-fetching components on the one hand, and coordinated loading UI on the other. They also talk about Sam's Tailwind course on Egghead and Ryan's experience upgrading to Tailwind 3.Topics include:0:00 - Intro1:14 - Sam's Tailwind Course on Egghead3:44 - Upgrading to Tailwind 36:57 - React Conf + SuspenseLinks:Craft Scalable, Custom-Made Interfaces with Tailwind CSSTailwind CSS v3.0React 18 Keynote

Parlons Design
Illustrator sur iPad, l'outil du designer créatif ?

Parlons Design

Play Episode Listen Later Dec 21, 2021 13:41


L'iPad est un superbe outil pour tous les créatifs numériques... Illustrator serait-il l'app must have pour en profiter ? Je vous partage mon avis sur l'adaptation du fameux logiciel créatif d'Adobe pour iPad. 🌟 Tu aimes Parlons Design ? Tu souhaites lui apporter ton soutien ? Partage le tout de suite autour de toi, ça devrait certainement plaire à d'autres passionnés de design d'interface 😉 📰 Profite de contenus design sélectionnés à la main chaque jour avec Partageons Design : partageons.romainpenchenat.com/#follow (Dispo en flux rss, newsletter ou blog) 💬 Viens discuter et suis mes actualités : - sur LinkedIn www.linkedin.com/in/romain-penchenat/ - sur Twitter @romainp_design 🦜 Découvre mon partenaire The Cacatoès Theory : www.thecacatoestheory.com 🔊 Jingle par Studio Module : www.studio-module.com 🎧 Écoute le podcast sur ta plateforme préférée : - Apple podcast : https://itunes.apple.com/fr/podcast/parlons-design/id1286546174?l=fr - Spotify : https://open.spotify.com/show/4z5cKF4fXvhTQIC2rXO6An - Deezer : https://www.deezer.com/fr/show/1459372 - Google Podcast : https://podcasts.google.com/feed/aHR0cDovL2ZlZWRzLmZlZWRidXJuZXIuY29tL1BhcmxvbnNEZXNpZ25Qb2RjYXN0?sa=X&ved=0CAMQ4aUDahcKEwjopuPyw9XsAhUAAAAAHQAAAAAQBw - OverCast : https://overcast.fm/itunes1286546174/parlons-design - Radioline : http://fr-fr.radioline.co/podcast-parlons-design - Flux RSS : http://romainpenchenat.free.fr/podcast/rss.xml #ParlonsDesign #Podcast #Design

Talk Python To Me - Python conversations for passionate developers

Do you enjoy the "final 2 questions" I always ask at the end of the show? I think it's a great way to track the currents of the Python community. This episode focuses in on one of those questions: "What notable PyPI package have you come across recently? Not necessarily the most popular one but something that delighted you and people should know about?" Our guest, Antonio Andrade put together a GitHub repository cataloging guests' response to this question over the past couple of years. So I invited him to come share the packages covered there. We touch on over 40 packages during this episode so I'm sure you'll learn a few new gems to incorporate into your workflow. Links from the show Antonio on Twitter: @AntonioAndrade Notable PyPI Package Repo: github.com/xandrade/talkpython.fm-notable-packages Antonio's recommended packages from this episode: Sumy: Extract summary from HTML pages or plain texts: github.com gTTS (Google Text-to-Speech): github.com Packages discussed during the episode 1. FastAPI - A-W-E-S-O-M-E web framework for building APIs: fastapi.tiangolo.com 2. Pythonic - Graphical automation tool: github.com 3. umap-learn - Uniform Manifold Approximation and Projection: readthedocs.io 4. Tortoise ORM - Easy async ORM for python, built with relations in mind: tortoise.github.io 5. Beanie - Asynchronous Python ODM for MongoDB: github.com 6. Hathi - SQL host scanner and dictionary attack tool: github.com 7. Plotext - Plots data directly on terminal: github.com 8. Dynaconf - Configuration Management for Python: dynaconf.com 9. Objexplore - Interactive Python Object Explorer: github.com 10. AWS Cloud Development Kit (AWS CDK): docs.aws.amazon.com 11. Luigi - Workflow mgmt + task scheduling + dependency resolution: github.com 12. Seaborn - Statistical Data Visualization: pydata.org 13. CuPy - NumPy & SciPy for GPU: cupy.dev 14. Stevedore - Manage dynamic plugins for Python applications: docs.openstack.org 15. Pydantic - Data validation and settings management: github.com 16. pipx - Install and Run Python Applications in Isolated Environments: pypa.github.io 17. openpyxl - A Python library to read/write Excel 2010 xlsx/xlsm files: readthedocs.io 18. HttpPy - More comfortable requests with python: github.com 19. rich - Render rich text, tables, progress bars, syntax highlighting, markdown and more to the terminal: readthedocs.io 20. PyO3 - Using Python from Rust: pyo3.rs 21. fastai - Making neural nets uncool again: fast.ai 22. Numba - Accelerate Python Functions by compiling Python code using LLVM: numba.pydata.org 23. NetworkML - Device Functional Role ID via Machine Learning and Network Traffic Analysis: github.com 24. Flask-SQLAlchemy - Adds SQLAlchemy support to your Flask application: palletsprojects.com 25. AutoInvent - Libraries for generating GraphQL API and UI from data: autoinvent.dev 26. trio - A friendly Python library for async concurrency and I/O: readthedocs.io 27. Flake8-docstrings - Extension for flake8 which uses pydocstyle to check docstrings: github.com 28. Hotwire-django - Integrate Hotwire in your Django app: github.com 29. Starlette - The little ASGI library that shines: github.com 30. tenacity - Retry code until it succeeds: readthedocs.io 31. pySerial - Python Serial Port Extension: github.com 32. Click - Composable command line interface toolkit: palletsprojects.com 33. Pytest - Simple powerful testing with Python: docs.pytest.org 34. testcontainers-python - Test almost anything that can run in a Docker container: github.com 35. cibuildwheel - Build Python wheels on CI with minimal configuration: readthedocs.io 36. async-rediscache - An easy to use asynchronous Redis cache: github.com 37. seinfeld - Query a Seinfeld quote database: github.com 38. notebook - A web-based notebook environment for interactive computing: readthedocs.io 39. dagster - A data orchestrator for machine learning, analytics, and ETL: dagster.io 40. bleach - An easy safelist-based HTML-sanitizing tool: github.com 41. flynt - string formatting converter: github.com   Watch this episode on YouTube: youtube.com Episode transcripts: talkpython.fm --- Stay in touch with us --- Subscribe on YouTube: youtube.com Follow Talk Python on Twitter: @talkpython Follow Michael on Twitter: @mkennedy Sponsors Coiled TopTal AssemblyAI Talk Python Training

The Bike Shed
320: Remember The Fun: 2021 Recap

The Bike Shed

Play Episode Listen Later Dec 21, 2021 34:02


Steph and Chris recap their favorite things of 2019 and 2020 and share their 2021 list. Happy Holidays, y'all! Steph: * Feature flags and calm deploys * Creating observable systems * Debugging * Working in seasons * Don't forget the fun “The longer I'm in the software game, the more I want things to be calm” - Steph Chris: * Pushing logic back to the server * Svelte (https://svelte.dev/) * Remote work (but maybe hybrid!) * Vim * Joining a startup as CTO This episode is brought to you by ScoutAPM (https://scoutapm.com/bikeshed). Give Scout a try for free today and Scout will donate $5 to the open source project of your choice when you deploy. Listen to episodes from 2020 and 2019

All About Android (MP3)
AAA 555: The Phones Along the Way - Android 12L, Oppo Find N, AirTags app, 911 call failure, AutoZen

All About Android (MP3)

Play Episode Listen Later Dec 15, 2021 89:19


Google releases Android 12L Beta 1 for Pixel phones. Android 12L Beta 1: App Pairs replace 'Split screen' on Pixel phones. Android 12L Beta 1: Google brings a new UI and animation to Internet toggle, screen recording. Android 12L suggests Pixel 6 Pro may still get Face Unlock support, but not the $599 Pixel 6. Google Brings Android 12 Features to Low-End Android Go. Google says Pixel repair privacy breach wasn't from employees, new security instructions coming. The Moto Edge X30 is the first phone to launch with Qualcomm's new Snapdragon 8 Gen 1 chip. Oppo teases its first foldable phone only to have it leaked right after. EvLeaks: OPPO Find N press images. TCL stops selling Google TV lineup over software & performance issues, updates coming soon. Apple launches AirTags and Find My detector app for Android, in an effort to boost privacy. How a bug in Android and Microsoft Teams could have caused this user's 911 call to fail. Here's a way to find out if 911 calls on your Android phone might fail. Google is bringing Android games to Windows in 2022. AutoZen is a great alternative to Android Auto for phone screens. How can my Pixel 6 automatically switch from 5G to 4G when I get to work? Birdays is a great app for remembering birthdays. Read our show notes here: https://bit.ly/3ytXK9W Hosts: Jason Howell, Ron Richards, and Florence Ion Subscribe to All About Android at https://twit.tv/shows/all-about-android. Get episodes ad-free with Club TWiT at https://twit.tv/clubtwit Sponsors: betterhelp.com/android audible.com/allaboutandroid or text allaboutandroid to 500-500

All About Android (Video HI)
AAA 555: The Phones Along the Way - Android 12L, Oppo Find N, AirTags app, 911 call failure, AutoZen

All About Android (Video HI)

Play Episode Listen Later Dec 15, 2021 89:44


Google releases Android 12L Beta 1 for Pixel phones. Android 12L Beta 1: App Pairs replace 'Split screen' on Pixel phones. Android 12L Beta 1: Google brings a new UI and animation to Internet toggle, screen recording. Android 12L suggests Pixel 6 Pro may still get Face Unlock support, but not the $599 Pixel 6. Google Brings Android 12 Features to Low-End Android Go. Google says Pixel repair privacy breach wasn't from employees, new security instructions coming. The Moto Edge X30 is the first phone to launch with Qualcomm's new Snapdragon 8 Gen 1 chip. Oppo teases its first foldable phone only to have it leaked right after. EvLeaks: OPPO Find N press images. TCL stops selling Google TV lineup over software & performance issues, updates coming soon. Apple launches AirTags and Find My detector app for Android, in an effort to boost privacy. How a bug in Android and Microsoft Teams could have caused this user's 911 call to fail. Here's a way to find out if 911 calls on your Android phone might fail. Google is bringing Android games to Windows in 2022. AutoZen is a great alternative to Android Auto for phone screens. How can my Pixel 6 automatically switch from 5G to 4G when I get to work? Birdays is a great app for remembering birthdays. Read our show notes here: https://bit.ly/3ytXK9W Hosts: Jason Howell, Ron Richards, and Florence Ion Subscribe to All About Android at https://twit.tv/shows/all-about-android. Get episodes ad-free with Club TWiT at https://twit.tv/clubtwit Sponsors: betterhelp.com/android audible.com/allaboutandroid or text allaboutandroid to 500-500

All TWiT.tv Shows (Video LO)
All About Android 555: The Phones Along the Way

All TWiT.tv Shows (Video LO)

Play Episode Listen Later Dec 15, 2021 89:44


Google releases Android 12L Beta 1 for Pixel phones. Android 12L Beta 1: App Pairs replace 'Split screen' on Pixel phones. Android 12L Beta 1: Google brings a new UI and animation to Internet toggle, screen recording. Android 12L suggests Pixel 6 Pro may still get Face Unlock support, but not the $599 Pixel 6. Google Brings Android 12 Features to Low-End Android Go. Google says Pixel repair privacy breach wasn't from employees, new security instructions coming. The Moto Edge X30 is the first phone to launch with Qualcomm's new Snapdragon 8 Gen 1 chip. Oppo teases its first foldable phone only to have it leaked right after. EvLeaks: OPPO Find N press images. TCL stops selling Google TV lineup over software & performance issues, updates coming soon. Apple launches AirTags and Find My detector app for Android, in an effort to boost privacy. How a bug in Android and Microsoft Teams could have caused this user's 911 call to fail. Here's a way to find out if 911 calls on your Android phone might fail. Google is bringing Android games to Windows in 2022. AutoZen is a great alternative to Android Auto for phone screens. How can my Pixel 6 automatically switch from 5G to 4G when I get to work? Birdays is a great app for remembering birthdays. Read our show notes here: https://bit.ly/3ytXK9W Hosts: Jason Howell, Ron Richards, and Florence Ion Subscribe to All About Android at https://twit.tv/shows/all-about-android. Get episodes ad-free with Club TWiT at https://twit.tv/clubtwit Sponsors: betterhelp.com/android audible.com/allaboutandroid or text allaboutandroid to 500-500

All TWiT.tv Shows (MP3)
All About Android 555: The Phones Along the Way

All TWiT.tv Shows (MP3)

Play Episode Listen Later Dec 15, 2021 89:19


Google releases Android 12L Beta 1 for Pixel phones. Android 12L Beta 1: App Pairs replace 'Split screen' on Pixel phones. Android 12L Beta 1: Google brings a new UI and animation to Internet toggle, screen recording. Android 12L suggests Pixel 6 Pro may still get Face Unlock support, but not the $599 Pixel 6. Google Brings Android 12 Features to Low-End Android Go. Google says Pixel repair privacy breach wasn't from employees, new security instructions coming. The Moto Edge X30 is the first phone to launch with Qualcomm's new Snapdragon 8 Gen 1 chip. Oppo teases its first foldable phone only to have it leaked right after. EvLeaks: OPPO Find N press images. TCL stops selling Google TV lineup over software & performance issues, updates coming soon. Apple launches AirTags and Find My detector app for Android, in an effort to boost privacy. How a bug in Android and Microsoft Teams could have caused this user's 911 call to fail. Here's a way to find out if 911 calls on your Android phone might fail. Google is bringing Android games to Windows in 2022. AutoZen is a great alternative to Android Auto for phone screens. How can my Pixel 6 automatically switch from 5G to 4G when I get to work? Birdays is a great app for remembering birthdays. Read our show notes here: https://bit.ly/3ytXK9W Hosts: Jason Howell, Ron Richards, and Florence Ion Subscribe to All About Android at https://twit.tv/shows/all-about-android. Get episodes ad-free with Club TWiT at https://twit.tv/clubtwit Sponsors: betterhelp.com/android audible.com/allaboutandroid or text allaboutandroid to 500-500

Total Jason (Video)
All About Android 555: The Phones Along the Way

Total Jason (Video)

Play Episode Listen Later Dec 15, 2021 89:44


Google releases Android 12L Beta 1 for Pixel phones. Android 12L Beta 1: App Pairs replace 'Split screen' on Pixel phones. Android 12L Beta 1: Google brings a new UI and animation to Internet toggle, screen recording. Android 12L suggests Pixel 6 Pro may still get Face Unlock support, but not the $599 Pixel 6. Google Brings Android 12 Features to Low-End Android Go. Google says Pixel repair privacy breach wasn't from employees, new security instructions coming. The Moto Edge X30 is the first phone to launch with Qualcomm's new Snapdragon 8 Gen 1 chip. Oppo teases its first foldable phone only to have it leaked right after. EvLeaks: OPPO Find N press images. TCL stops selling Google TV lineup over software & performance issues, updates coming soon. Apple launches AirTags and Find My detector app for Android, in an effort to boost privacy. How a bug in Android and Microsoft Teams could have caused this user's 911 call to fail. Here's a way to find out if 911 calls on your Android phone might fail. Google is bringing Android games to Windows in 2022. AutoZen is a great alternative to Android Auto for phone screens. How can my Pixel 6 automatically switch from 5G to 4G when I get to work? Birdays is a great app for remembering birthdays. Read our show notes here: https://bit.ly/3ytXK9W Hosts: Jason Howell, Ron Richards, and Florence Ion Subscribe to All About Android at https://twit.tv/shows/all-about-android. Get episodes ad-free with Club TWiT at https://twit.tv/clubtwit Sponsors: betterhelp.com/android audible.com/allaboutandroid or text allaboutandroid to 500-500

MacVoices Video
MacVoices #21236: Terri Morgan and Chris Demiris of LumaTouch Bring Home 'iPad App of the Year'

MacVoices Video

Play Episode Listen Later Dec 15, 2021 39:52


Terri Morgan and Chris Demiris of Luma Touch recently won Apple's prestigious “iPad App of the Year” award for iPad video editing app LumaFusion. They talk about what the award means to them, how they found out, and why they credit Apple for providing the tools to build an amazing app. Terri and Chris also talk about how the pandemic has affected LumaTouch, and why they are happy to be able to provide an app that, among many other things, provides a tool to honor those lost. [embed]http://traffic.libsyn.com/maclevelten/MV21236.mp3[/embed] This edition of MacVoices is supported by Coinbase. For a limited time, new users can get $10 in free Bitcoin when you sign up today at Coinbase.com/ macvoices. Show Notes: Guests: Chris Demiris is Co-Founder and Principal Engineer at Luma Touch. He is an expert at building new technologies into complete products, leading engineering teams to create quality results and integrating technologies to create complete, award-winning apps. Focused on video editing and video effects apps for iOS. Chris' specialties include iOS native media and UI development, OpenGL, DirectX, 3D graphics for video processing, video effects, digital rights management, and  3D editing tool creation. Terri Morgan is Co-Founder and Principle Designer at Luma Touch. She brings over 30 years of experience from the video industry to her passion for user experience and design. In 1988 Terri helped usher in the era of non-linear editing as a video editor at Alpha Cine Labs in Seattle. In 1995 she joined Lightworks in London, and became a Product Specialist, creating a powerful, multi-track editing system. In 2000, she founded a video editing and consulting business providing design and testing for Fast Multimedia and Pinnacle Systems. In 2007, Terri joined Avid as a Principal Product Designer where she led the product management and design of Pinnacle Studio for iPad and was honored with the Avid Achievement Award. Terri has received multiple awards for her editing work, including 3 Telly awards. She earned her BA in Visual Communications at The Evergreen State College, and her Professional Certificate in Human Centered Design and Engineering at the University of Washington. Support:      Become a MacVoices Patron on Patreon     http://patreon.com/macvoices      Enjoy this episode? Make a one-time donation with PayPal Connect:      Web:     http://macvoices.com      Twitter:     http://www.twitter.com/chuckjoiner     http://www.twitter.com/macvoices      Facebook:     http://www.facebook.com/chuck.joiner      MacVoices Page on Facebook:     http://www.facebook.com/macvoices/      MacVoices Group on Facebook:     http://www.facebook.com/groups/macvoice      LinkedIn:     https://www.linkedin.com/in/chuckjoiner/      Instagram:     https://www.instagram.com/chuckjoiner/ Subscribe:      Audio in iTunes     Video in iTunes      Subscribe manually via iTunes or any podcatcher:      Audio: http://www.macvoices.com/rss/macvoicesrss      Video: http://www.macvoices.com/rss/macvoicesvideorss

MacVoices Audio
MacVoices #21236: Terri Morgan and Chris Demiris of LumaTouch Bring Home 'iPad App of the Year'

MacVoices Audio

Play Episode Listen Later Dec 14, 2021 39:53


Terri Morgan and Chris Demiris of Luma Touch recently won the Apple's prestigious “iPad App of the Year” award for iPad video editing app LumaFusion. They talk about what the award means to them, how they found out, and why they credit Apple for providing the tools to build an amazing app. Terri and Chris also talk about how the pandemic has affected LumaTouch, and why they are happy to be able to provide an app that, among many other things, provides a tool to honor those lost. This edition of MacVoices is supported by Coinbase. For a limited time, new users can get $10 in free Bitcoin when you sign up today at Coinbase.com/ macvoices. Show Notes: Guests: Chris Demiris is Co-Founder and Principal Engineer at Luma Touch. He is an expert at building new technologies into complete products, leading engineering teams to create quality results and integrating technologies to create complete, award-winning apps. Focused on video editing and video effects apps for iOS. Chris' specialties include iOS native media and UI development, OpenGL, DirectX, 3D graphics for video processing, video effects, digital rights management, and  3D editing tool creation. Terri Morgan is Co-Founder and Principle Designer at Luma Touch. She brings over 30 years of experience from the video industry to her passion for user experience and design. In 1988 Terri helped usher in the era of non-linear editing as a video editor at Alpha Cine Labs in Seattle. In 1995 she joined Lightworks in London, and became a Product Specialist, creating a powerful, multi-track editing system. In 2000, she founded a video editing and consulting business providing design and testing for Fast Multimedia and Pinnacle Systems. In 2007, Terri joined Avid as a Principal Product Designer where she led the product management and design of Pinnacle Studio for iPad and was honored with the Avid Achievement Award. Terri has received multiple awards for her editing work, including 3 Telly awards. She earned her BA in Visual Communications at The Evergreen State College, and her Professional Certificate in Human Centered Design and Engineering at the University of Washington. Support:      Become a MacVoices Patron on Patreon     http://patreon.com/macvoices      Enjoy this episode? Make a one-time donation with PayPal Connect:      Web:     http://macvoices.com      Twitter:     http://www.twitter.com/chuckjoiner     http://www.twitter.com/macvoices      Facebook:     http://www.facebook.com/chuck.joiner      MacVoices Page on Facebook:     http://www.facebook.com/macvoices/      MacVoices Group on Facebook:     http://www.facebook.com/groups/macvoice      LinkedIn:     https://www.linkedin.com/in/chuckjoiner/      Instagram:     https://www.instagram.com/chuckjoiner/ Subscribe:      Audio in iTunes     Video in iTunes      Subscribe manually via iTunes or any podcatcher:      Audio: http://www.macvoices.com/rss/macvoicesrss      Video: http://www.macvoices.com/rss/macvoicesvideorss

The Bike Shed
319: Wins & Losses

The Bike Shed

Play Episode Listen Later Dec 14, 2021 35:20


Steph started a new project and shares details about the new tools she's using, including working on a remote dev environment. Chris shares a journey with Lograge and Rails flash messages as he strives to capture user-facing errors. They also discuss "silencing" flaky tests, using Graphviz to visualize data dependencies, and porting Devise views to use Inertia and Svelte. It's also interesting how different their paths have been this year! This episode is brought to you by ScoutAPM (https://scoutapm.com/bikeshed). Give Scout a try for free today and Scout will donate $5 to the open source project of your choice when you deploy. Joel Quenneville (https://twitter.com/joelquen) GitHub - roidrage/lograge: An attempt to tame Rails' default policy to log everything (https://github.com/roidrage/lograge) Graphviz (https://graphviz.org/) Become a Sponsor (https://thoughtbot.com/sponsorship) of The Bike Shed! Transcript: CHRIS: Tech talk nonsense and songs, that's what people come to The Bike Shed for, variations on the Jurassic Park theme song, you know, normal stuff. Hello and welcome to another episode of The Bike Shed, a weekly podcast from your friends at thoughtbot about developing great software. I'm Chris Toomey. STEPH: And I'm Steph Viccari. CHRIS: And together, we're here to share a bit of what we've learned along the way. So, Steph, what's new in your world? STEPH: Hey, Chris. Let's see. So I've started a new project. So frankly, there's a ton of new stuff in my world. And I've been on the project for about a week and a half now. I started over the holiday, and it's been going really well. Still in that whole early stage with getting to know the application, the codebase, the processes, the team, all the dynamics. It's a large company. So I'm working with a small group of individuals, but there are about over 100 developers that work at this company. And they do have a lot of documentation, which has been very helpful. But there's a lot to learn in terms of setup and processes, specifically. So they have provided a laptop that I'm using to access their codebase. So I'm using their laptop. And then, I am also using a dev machine, a remote dev machine, that they have set up for me. So I need to be on their VPN and SSH into that dev machine. So that's novel as well. CHRIS: Ooh, I'm very intrigued by that bit, not that they gave you a laptop bit but the dev machine. This is in the cloud sort of thing? What is this? I'm very intrigued. STEPH: I don't know if I have concrete answers for you. But yes, for me to be able to access their codebase, I have to go into the dev machine. And then that's where then I can do my normal development work. CHRIS: So is this like an EC2 instance or something like that that you're SSH-ing into, and then you can run processes on it? Or is it closer to the GitHub dev containers thing that they just released? Or are you running with your local Vim? Is it a remote Vim? Are you using Vim? Is it VS Code? I have so many questions. STEPH: [laughs] I think it's more like the first version, although I don't know the backbone of it. I don't know specifically if it's an EC2 instance or exactly how it's being hosted and how I have access to it. But I did have to set everything up on it. So they started the dev machine up for me. Their DevOps team started an environment where then I could access, and then I did need to cultivate it to my own habits. So I had to install several things. I had to install Brew and Vim and also the tmux and all those configurations that I'd really like to have. They do have a really nice Confluence document that walks you through how to set up a connection between VS Code and the remote environment. So then that way, you can really just hang out in VS Code all day. And initially, I was like, okay, I could do this. And immediately, I was like, no, I love Vim. I'm going back to it even if I have to spend the 20, 30 minutes setting it up. I'm so comfortable with Vim and tmux that I stuck to my roots, and I didn't branch out into VS Code. But I think VS Code is one of the more popular tools that they're using. So that way, it feels more local versus having to work in a remote machine. I think I answered some of your questions. I don't think I answered all of them. CHRIS: Yes. I think you did answer all the questions. But just for clarification, the Vim and tmux and whatnot setup is that you're running SSH, and then on the remote machine, you are using Vim and tmux? Or is it a local Vim that is doing…I think Vim has some remote editing capabilities but not anywhere near what VS Code can do. STEPH: It's the first setup. So I am SSH-ed in. And then I have Vim and tmux running on that remote machine. CHRIS: Gotcha. Novel. STEPH: Yeah, it's a thing. It's working. So that's good. And it feels cozy. I feel like I'm at home. I feel like I can be productive. So that's great as well. Some of the other tools that I'm also new to, so they use Zeus, which is used to then speed up the booting of your application. And you can also use it for speeding up test runs. So very similar to Spring, which I think we've had some discussions about Spring and who loves it and who doesn't. [laughs] CHRIS: I don't know. I'm not...[chuckles] I feel like I remember Zeus. But Zeus is like three iterations ago of this preloader thing. I'm intrigued by that. I thought Spring had fully supplanted it in the Rails ecosystem but maybe not. STEPH: So this company has been around for a very long time. So there are a number of tools that I think they're using because that was the tool to use the day when they got started. And then it just hasn't been a need to move on to one of the newer tools to use Spring. So at least that's my current explanation for why we're using Zeus. And also, Zeus works most of the time. I'm frankly still getting comfortable with it. [laughs] I still have gripes about Spring too. CHRIS: 60% of the time, they work most of the time. STEPH: [laughs] So, Zeus is another new tool that I'm adding to my tool belt during this engagement. Another new tool that I'm using is Gerrit. And so they use Gerrit…it is used for managing their Git repositories. It is used for code reviews. And being as accustomed and familiar with GitHub as I am, that one has been a little tricky to then navigate and change the whole UI that I'm used to when it comes to pushing up code, reviewing code, asking for feedback on changes. And at one point, I was reviewing a change request for someone else. And there's a button on there where I was adding comments, but they were in draft mode. And I'm trying to figure out how to get them out of draft mode so that they're actually submitted, and the other person could see it. And I saw a submit button. I was like, cool. So I hit the submit button. And then it said something in red text about ready to be merged into main. [laughs] I was like, oh, no, I mean, maybe, but that's not what I meant to do. So I had to reach out to that person and be like, "Hey, I'm new to Gerrit. I don't know what I did. I hit a button. I hope everything's fine. Here's my review. Best of luck. [laughs] I think everything is fine. Nothing dramatic came out of it. But I had my own little dramatic moment. CHRIS: Wow, that is a bunch of new stuff. It's interesting. On the one hand, I totally understand projects get started, and there's a certain set of tools that are current at that point, and so then you're using them. And then, over time, it takes a very active effort to try and keep up with the new current, that new-new as we call it. But the trade-off there is really interesting because, at any given time, it never feels like the right investment to pursue the new thing to just upgrade for upgrading sake. But then the counterpoint is the cost to someone like you coming onto the project. And it's like, it's a bunch of new stuff. It's kind of old stuff. It's new for me, but it is old, and less documented, and less familiar. And it's also certainly less compatible with other things that are going on, almost certainly. And so, how to stay on top of those updates is always the thing that's really intriguing to me. I say as someone who started a project recently, and I have not thought about upgrading anything at this point. And we have bundler-audit I want to say is the one thing that we have in there. So if there's a CVE for a gem, then security-wise, we will be upgrading those. But otherwise, I haven't thought about upgrading our Ruby version or anything. And I think we're on 2.6 or something like that, which is a couple back at this point. And so it's something that's in the back of my mind. I feel like I should have a formal answer to this. Like, company-wide, how do we think about the process of upgrading? And Dependabot and things like that answers some of it, but that doesn't tell me when to upgrade Ruby, I don't think. It could. That would be annoying. I don't want that. But it's one of those many things that depends and is subtle. And you have to decide where you put the trade-offs and whatnot. So just an interesting thing. And to observe you now going into this project building and being like, there's a bunch of new stuff. STEPH: I think it really takes passion or pain. Those are the two things that then prompt us to upgrade. Either it's pain, and you need to change it to get rid of that, or it's passion. So you're really excited about the next version of Ruby or the next version of Rails. And I think that's fine. I think that's fine that those are often our drivers. But yeah, that is interesting. I hadn't really thought about that in terms of there's often no real strict process around when we upgrade except those are then the natural human catalyst. CHRIS: I think you're right that those are the catalysts. But I think quite often those cannot be sufficient to push us to do the work. And so what do you do in the absence of that? It's not really painful. And I'm not really passionate about it. But I probably should do it is the 80% of the time middle space that we live in. And so yeah, I don't have an answer to it. I'm more observing the question. But like so many other things, I feel like often we just exist in that awkward middle and got to find a way through, so how like life. STEPH: I was having a conversation with someone earlier a bit about these life cycles that we live in. Specifically, we were talking about consulting and how changing from project to project is so daunting. Because you go from I'm accustomed to this project, I'm accustomed to the team. And then all of a sudden you jump into this new project and with all these new things it can be really interesting. But then there's also this feeling of like, wait, I used to be smart, and I knew everything that was going on. And the team knew me, and I knew all the team processes, and I felt good. And now I'm in this totally new space, and I have to relearn, and I have to reprove myself and relearn all the company politics. And there's always that initial jumping from a sure space over to a very new space that always makes me then question and be like, yeah, I can do this, right? I can do this. And then I have to keep letting that voice build until about two weeks in. And I'm like, oh okay, I'm back in a good spot. I said two weeks; it's probably more like four. But there's still that grace period of a new project where you're leveling up on all the things and learning the new team. And as daunting as it is; apparently, it's what I like. Apparently, I like that roller coaster ride that comes from jumping from one project to the next. So on that note of a bit of novel insight into myself, what's new in your world? CHRIS: What is new in my world? Let's see. I think I've got two updates, two anecdotes to share. One, I lost the battle, one I won the battle. So we'll go with the lost battle first because that seems fun. So we have Lograge on this application, which Lograge, for anyone that's not familiar, is a library that helps with producing more structured and more complete log lines from a Rails application. You can tell it to do JSON log lines, which is useful for many of the tools that will receive your logs. And then with it, you can say grab me the controller name and the params but sanitized and this and that. And so, you aggregate a bunch more data than would traditionally be in the logs. In general, I've just found it to be a much better foundation. I find the logs to be more readable, and more informative, more useful, all those lovely things. But slowly, I've been looking at what's the other stuff that I want to have in here? What else would be nice to know? So one example is we use Inertia on this project. And Inertia has a particular way in which errors get mapped back to the front end. And it's an interesting little trick that involves the session, but that's sort of an aside. Basically, this is something that the user will see that I would love to know about. So how many users are hitting their head against the wall? Because typically, whenever these errors happen, that means this is a flash message or something like that we're going to show to the user. So we were able to add that into our log lines. Now we can see those. We can aggregate on them. We can do counts. We can do alerting and monitoring, all those kinds of fun things. So cool. That was great. That worked well. I then specifically…I mentioned the flash a second ago, but that's actually not…the Inertia messages will not show up in the flash. They end up in forms inline on certain inputs or whatnot. But we do also use the flash message pretty regularly as a way to communicate to the user success or failure or what have you. And I really wanted to get those into the logs. And I tried very hard, and I failed. I gave up. I threw in the towel. I raised the white flag. So the nature of the flash, which is something that knew in the back of my mind but I had never really experienced as pointedly as this, is the flash is a magic value within the Rails ecosystem that can be written to and then once read clears itself. That's the nature of how the flash is supposed to work. And it persists across requests. So it's doing some fun stuff there, which I assume is tunneling through the session or maybe putting it into a cookie. I'm not actually sure. But there's some way that you post to an endpoint, and then you get redirected to the show page. And on the show page, we actually display that flash value. But the flash is set on the controller endpoint that is handling the POST request. So this value spans across two request-response life cycles, which is interesting. And so the manner in which that works is Rails is managing that on our behalf. We write to it on the one side. And then, when we do the subsequent requests, if there's a value in the flash, we show it to the user, which is why occasionally you'll see those weird things where that flash message shouldn't show up. But it's like a sticky value that was left in the system that didn't get cleared via one thing or another. But I really wanted to put those into the logs. Like, what are we saying to the user is the thing I want to know. This is that question of like, what's my system doing at runtime? I understand what it's doing. I can read the code and understand what should happen. But what actually happened? Are users seeing this flash message way more than they should? That's a question I want to be able to answer. And I have lost the battle. I cannot find a way to read the flash value, put it into my loglines, but then also have it persist through. The first attempt I did, I was able to get it into my loglines, but then it didn't show to the user, which is a bad outcome. Because now I've read the value, Rails clears it, cool, that's fine. There is a flash.keep method. And that I thought would do the thing I wanted, which is like, oh, I want to read this value. I want to tap this value, I want to observe it, I want to peek at it. And I thought this keep method would do the thing that I wanted. It did not. It just caused the flash to be persistent. So now, anywhere I went had the same flash message for forever, which was not the behavior that I was looking for. I then tried, like, all right, just for exploration purposes, what if I reach inside and read the instance variables of the flash objects? Also did not work. Everything I tried did not work. And it had these fun failure modes that just made me very sad. Thankfully, we had feature specs that told me about this failure mode because I would not have known about it otherwise. This was not obvious to me on first implementation. But yeah, I lost, and I feel sad. And then I did the thing that we do, which is I searched Google, and there's nothing. I cannot find…This is one of those cases where like, I can't be the first person who wants to know what's in the flash. I can't be breaking new ground here. And yet I couldn't find anything on the internet. So that's where I'm at. STEPH: That's interesting. Yeah, I'm trying to think…I think I'm one of those people. I don't think I've ever tried to peek into the flash and see what's there ahead of time. And it makes me wonder if it's partially…so we can't peek into the flash. You've exhausted several examples or tries there. When you're setting the value of the flash, it makes me wonder if there's an order of operations that you have to pursue. So before you set the flash, you know what messages that you're going to share. So you send that off to the logs, but then also share that to the flash. So instead of writing the message directly to the flash and then having to check the flash, if you just stored that value elsewhere and shared it to the logs first. Is that a reasonable approach? CHRIS: It definitely could work. But that was in the space of this is getting weird enough. I thought about things like that, but I didn't want to do anything weird. And part of the benefit that I get from using Lograge is rather than having multiple lines for each request…so a request came in and rendered this partial and did this thing. It gets constructed such that there's a single logline, which is one big JSON object that contains all of the data about that request. And I really liked that structure because then everything's correlated like, oh, did we 404, or did we 302? And what was the message that we said to the user? And what were the params? It's all there in one line. I found that to be really useful. So I wanted to do that. I could just separately log it. But then I'm also worried of there is a statefulness there. Because again, the flash is written on one side and read on the…it's like a Hail Mary to ourselves between requests. Look at me with a sports reference. And so, I didn't want to try anything out of the ordinary. I really just wanted to find a way to just like; I just want to read this value but not like Heisenberg uncertainty principle observing changes in the system. I found myself in that space, and I was like, can't there be a way that I can just flash.peek? And I just want to take a quick look. I don't want to mess with anything. You do your normal thing, flash. Just let me know. And I do not have an answer for it yet. And for now, this is one of those nice to have, not an absolute requirement. So I wasn't yet in the position of okay, fine, let's do some out-of-the-box ideas here. So I'm still in the in the box phase, I would say, but who knows? Maybe down the road, I'll be like; I would really love to know what the flash message was for that request because this user is seeing stuff that we do not understand. And that information would tell us the answer. So we're not there yet. But I was surprised by how thoroughly I was defeated by Rails and the flash message on this adventure. STEPH: I am equally surprised. I wouldn't have thought that particular achievement would have or is proving to be that hard or, frankly, not doable. So yeah, I'm intrigued to see if anybody has thoughts on it or if you do find a different solution because Lograge is one that I haven't used. But I would be surprised if other people haven't had a similar request of like; I want to be able to store what's in the flash message. Because like you said, that seems super helpful. CHRIS: Well, certainly, if I do figure anything out, then I will share that with the world. But yes, part of this is putting it out there into the universe. And if the universe happens to send me back an answer, I will happily accept that. But yeah, again, I had two stories, and that was the one where I lost. I'm going to send it back over to you because I'm interested in anything else that's up in your world. And later, I'll tell the story of a victory. Mid-roll Ad And now a quick break to hear from today's sponsor, Scout APM. Scout APM is leading-edge application performance monitoring that's designed to help Rails developers quickly find and fix performance issues without having to deal with the headache or overhead of enterprise platform feature bloat. With a developer-centric UI and tracing logic that ties bottlenecks to source code, you can quickly pinpoint and resolve those performance abnormalities like N+1 queries, slow database queries, memory bloat, and much more. Scout's real-time alerting and weekly digest emails let you rest easy knowing Scout's on watch and resolving performance issues before your customers ever see them. Scout has also launched its new error monitoring feature add-on for Python applications. Now you can connect your error reporting and application monitoring data on one platform. See for yourself why developers call Scout their best friend and try our error monitoring and APM free for 14 days; no credit card needed. And as an added-on bonus for Bike Shed listeners, Scout will donate $5 to the open-source project of your choice when you deploy. Learn more at scoutapm.com/bikeshed. That's scoutapm.com/bikeshed. STEPH: I have a victory that I can share as well, and I'm excited to hear about yours. So to share a bit more context about the project that I'm on, we are focused very heavily on improving their test suite, not only the time that it takes to run the test suite but predominantly addressing a lot of the flaky tests that they have. Because that is a huge pain point for the team and often leads to the team having to rerun tests. And so, there are a couple of areas that we're very excited to make some contributions. The first part is that we are just looking at those flaky tests to figure out what is going on and how can we address these? And one of the nice things, one of the tools that they're using TeamCity is the tooling that they're using to run their automated test suite. And TeamCity will let you mute tests, so then that way, if you do encounter a flaky test, you can mute it. So then, at least it's not impacting other people. I say this with some asterisks that go along with it because, for people who can't see, Chris is making a very interesting face. I think you have thoughts on this. And the other thing that they will show is a flip rate for the flaky tests, which is really nice, too, because then you can see which tests are flaky the most. So then that helps us prioritize which ones we want to look into. All right, I'm going to pause so you can respond to that comment I made about muting tests. CHRIS: I'm intrigued. I talked in a recent episode about adding RSpec::Retry. So the idea of flakiness being a thing that exists and trying to decide how much engineering effort to apply to fixing it. But the idea of muting it and especially muting it in the UI, not in the test suite or not having that be something that's committed, there's something about that that caught my attention, and thus apparently, my eyebrows raised. You saw that. [laughs] But I don't actually know how I feel about it. This is such a complicated, murky area that I wish I had a stronger set of beliefs around. It was interesting when we talked about the RSpec::Retry thing. I think you rightly pushed back on me, and you were like, that's interesting, maybe don't do that. And I was like, that's a fair point. [laughs] And so now hearing you're in the quagmire of flaky tests, and yeah, it's an interesting space. STEPH: Well, I think my hard belief is that muting tests is a thing that we shouldn't do. It's going to lead to more problems, and you're not really addressing the issue that you have. It is a temporary solution to a much bigger problem that you have. And so it is a tool that you can use to then buy you some more time. And so that is the space that this team is in where they have used this particular tool to buy them more time and to be able to keep shipping changes while realizing that they do still need to address these underlying issues. So it is a tricky space to be in where essentially, you've gotten to the point that you do have these muted tests. It is a way to help you keep going forward, but you are going to have to come back to it at some point. And so that's the space that I'm in right now joining the team is that we have been brought in to help some of their engineers specifically address this issue while ideally letting the rest of the team continue to focus on shipping changes while we address the test. Although I really think there's going to be two angles that we've talked about in how we're going to help this particular codebase. One of them is that we are going to address a flaky test. But the other one is empowering people that they feel like they have the time and the knowledge that they can address a flaky test and also not contribute more flaky tests to the codebase. But I appreciate that you called me on that a bit because we've had those conversations around when we should actually address something versus muted, all the interesting trade-offs that come along with that conversation. So this particular flaky test that we addressed earlier this week is specific to hard coding primary IDs. The short version is that it's bad, don't do it. The longer version is that they were having a test that was failing intermittently because it would pass the first two runs, but then it would start to fail for all future runs. And the reason it would pass for the first two runs is because when they were setting the ID for a record that the test setup is creating, they were looking for existing records and saying, "Hey, what's your latest ID?" And then I'm going to guess the next ID. I'm going to add one to that to figure out what the next ID should be. Some additional context, when the tests boot up, there's some data that's being created before the test run. So then that's why they're checking to see, okay, what records already exist? And then let's add one to that. The reason that fails sometimes is because then once the tests have run, the Postgres IDs aren't being reset, so they're using a truncate approach. So then, when the test runs once or twice, that works. But then, at some point, there's a collision between those IDs where they tried to guess the next ID, but then Postgres is also on that same ID, and it ends up failing. There are also some callbacks. There's some trickery afoot. It took a little while [chuckles] to work through these tests to understand why they're failing. But the short version is that we thought we had to restructure the data in a way that no longer required us to guess what the next primary key should be for a record. We could actually use Factory Bot to generate that record, and then ask Postgres, okay, what ID did you assign? And we're going to pass that in. And that part was really challenging when you're in a new codebase, and you are learning the domain knowledge and exactly how data should be structured. So that was one challenge of it. The other part was that a lot of the data relies on each other. So then figuring out the right hierarchy in which we could create the data. So we didn't have a circular reference at some point. It took some time. And Joël Quenneville, who's on the project with me, used a tool that I found very helpful. It's called Dataviz. He went through and documented the let statements, the data that's being created, and then it generated a nice tree structure that shows you okay; these are your dependencies. This is the test setup that you're using. And then from there, just by changing a few lines in that particular file that used to generate that Dataviz tree, he would move it around. And we could simulate what we were already mentally trying to construct in our head. So as programmers, we're already thinking, okay, I know this record needs that data. And that data needs that data before I can build this. But this actually turned it into a concrete visualization where we could see it. And I was really struggling. And he was like, "Hey, I got it into a visual form that we can look at. And there's a circular reference. That's why this keeps happening and why we're not making progress." So then, using that, we were able to then reformat some of the dependencies, look at the graph, see that we didn't have that circular reference anymore. And then we could implement that in code. And it really helped me to be able to walk through that visual aspect because then I could say, okay, this is all the stuff that I'm trying to mentally hold on to, but instead, I can just look at this and know it's going to work. I don't have a circular reference. It also helped concretely show why the previous efforts were failing and why we kept running into some issues. So I'm really interested now in Dataviz because I found it very helpful in this particular case. And I'm very intrigued to see if I can apply this to more tests that I'm trying to fix and to see if I can start out with here's the current structure. Here's where I'm trying to go. And then essentially build that graph first before I start changing the code around. I would love to have that optimization. And I feel like it would speed up the process. CHRIS: It was funny as you started to say that I had observed some tweets going out into the world recently. And I was like, this is Joël. This is definitely Joël talking about these things. As an aside, for anyone who doesn't follow Joël Quenneville on Twitter, @joelquen, I would highly recommend it. We can include a link to Joël's Twitter in the show notes. Joël is one of the clearest thinkers and communicators about programming that I have ever worked with. And in particular, what you're describing of the data visualization is something that I think he does incredibly well. Often he'll make blog posts, but they'll include just simple little visualizations, little images, or diagrams, or flowcharts that just so concretely encapsulate an idea and express it so much better than text ever could. And so, in so many ways, I look to Joël's writing, both on Twitter, in the blog, in many places. And I just appreciate so much what he puts out there and the manner in which he does it. So I was by no means surprised when you said, "Oh, and I'm working with Joël on this project." I was like, yes, I bet you are. That sounds true, and in particular, some of the conversations about flaky tests and determinism and all of that. So yeah, the visualization stuff is also particularly interesting in taking a system that it's very hard to hold all of this in our heads. But that visualization, the tree and/or graph thing at play, having that in a picture and being like, oh, look, there's a cycle now. There we go. Can't have those. That's not okay. That's a really interesting solution that's just very cool to hear about and presumably led to a good outcome where you were able to break that cycle. And now you're happy and deterministic in your tests. STEPH: Yeah, it's one of those approaches where I wonder if it was helpful afterwards and how can I make it helpful beforehand? Because it felt like a confirmation of the pain in the process that we had been through. And I'm eager to see if now I can apply it ahead of time and save myself some of that pain. That's where I get really excited. But yes, it was a successful outcome. And we have fixed that particular flaky test. But I'm very excited to hear about your victory from the week. CHRIS: It's a shared victory. It was a team victory, just to be clear. But we are working in a system that is using Inertia. Inertia.js is a project that I've talked about a number of times on the show. I'm a huge fan of it. It is the core architecture of how we're building our application. But as a very brief revisiting of what it is, on the server-side, we have Rails, and Rails is acting in a pretty traditional way. We do not have an API. And on the front end, we have Svelte, which is a JavaScript view layer framework. Inertia sits between them and binds the traditional Rails MVC architecture and the Svelte front end. So again, there's no API in the traditional sense of this is a REST endpoint, and we hit it, and we get some data, and then the front end holds on to that in a store. None of that is going on. Inertia does a wonderful job of marrying these two concepts and allowing us to use familiar programming techniques on the server-side but then also have a more future-friendly front end. Animations and transitions and things like that are now totally possible while not throwing away the entirety of our programming model that we've had in Rails server-side applications. That's all well and good. Almost all of the UI in our application is rendered via Inertia and Svelte. That's great. We love it. The one caveat is Devise. So we have Devise on this project, and Devise comes with a lot of views built-in. And we have both an admin and a user model. So we have sign in and sign up, and confirm registration, and forgot password and all of these different views and flows and things that Devise just gives you out of the box. And being an early-stage startup, it was not a good time to revisit any of that or to try and build it from scratch or any of that. We just wanted to build on the good known trusted foundation that Devise gives us. But the trade-off there is that now all of our Devise logic lives in this uncanny valley. It's the only stuff that is in ERB views. Our styling, thankfully, we're using Tailwind, and so we are able to have some consistency between the styling. But recently, we redesigned the flash messages on the client-side in our Svelte pages. But on the server-side, they are a little on the Devise-side because Devise is the only pages that are being rendered truly server-side. They look a little different. And this is a pain that we felt, that inconsistency or that mismatch between the Devise views. And then the rest of the application is a pain that we felt but one that we consistently were like, I don't think it's worth the effort to try and change this. Finally, this week, we've been doing a lot of work on our user onboarding funnel. So the initial signup flow going through it's a progressive form screen where you go in between different pages. And a majority of it is implemented in the Inertia and Svelte side of things. And it's very nice and very fun to work with. But the signup form, the user signup form, is in Devise, and it's a traditional Rails server-rendered post, and then all the normal stuff happens. We finally decided to bite the bullet this week and see how painful it would be to port that over to Inertia and Svelte. And spoiler, it was awesome. It was very straightforward, and coming out of it, immediately, the page was largely the same. The server-side code was largely the same. But now we had things like when you submit this form, if there's a validation error, we don't clear out your passwords because we're staying on that page on the client-side. We're taking advantage of the way Inertia's error flow works. That's a subtlety of how Inertia works. That's probably more detail than we want to get into here, but it's an awesome thing that works and is great. And so immediately, this page just got better. We got inline errors for each of the fields. We were able to very easily add a library called Mailcheck, which I've talked about on an episode a while back. But this is a thing where if you have a typo in your email address, we can say, "Hey, you have a typo in your email address. And if you click this link where we suggest the alternative, we'll just replace it inline." That would have been really awkward to wire up in our Devise view. It would have been some jQuery-esque script tag at the bottom of the view page that doesn't stop…We don't have jQuery actually at this point. We wouldn't have jQuery. And we could certainly, but it would only be for that view. And it would be weird and different in a fundamentally different programming model. It was trivial to do in the Inertia and Svelte world once we had made that port over. This was always my hope. This was the dream that I had in mind. And it speaks to the architecture of Inertia. And Inertia is a really great abstraction that is very minimally leaky. I won't say it has zero leaks because no abstraction does. But this was my hope is I think the server-side should mostly stay the same. And I think the client-side, we just take an ERB template, turn it into a Svelte template, and we're good to go. And that has largely been the case. But suddenly, this page is so much more. There are subtle animations as things come in. And there are just lots of nice features that were trivial to add now and that fit with the rest of the programming model that we have throughout it. So that was awesome. STEPH: That is awesome. I love these styles of updates where there's like, oh, I had a loss this week. But I also had this really great win because that feels just so representative of a typical week. So I love this back and forth. CHRIS: It's also that sequence is how the week went. So the loss happened earlier in the week, and then the win happened later in the week, which is how I would prefer it because now I'm going into the weekend with a win. Like, cool, I'll take it. Had it gone in the other direction, I would have been like, oh man, Rails beat me. But I guess it's the weekend now. I'll forget about it for a little while. STEPH: Yeah, that definitely helps to end on a positive note. CHRIS: But yeah, I don't think too much more to say about that beyond it was both really nice to get the added functionality to get the better, more user-friendly behavior in this view that naturally falls out of this programming model. But also to have that reinforcement of my belief in Inertia as a good architecture. Not only did we get some really nice stuff out of doing this port, but it was also pretty straightforward because Inertia sits so comfortably between the pieces. And that's a story that I really like. I want more of that in my programming world, where to change this thing requires changing everything in our app. Oh no, this is sad. No, this was a great example of we were able to very minimally change things and get a much better experience out of it. So once again, I am very pro Inertia.js STEPH: It's interesting to me how different our paths have been this year where I have been working on applications that are brought on thoughtbot to then help out with some of the concerns that they have, either their application is going down, or they have a test suite that they need to improve, or there's a lot of triage that's involved. And so it makes me very excited to hear that, when you are building stuff, and it's going really well and how awesome that is. Because then I feel like most of my world has definitely been more in the triage space, which is a very interesting and fun space to be. But it brings me a lot of joy to hear about wins from let's build new stuff and hearing it be built from the ground up and how well that's going. CHRIS: Well, I'm definitely happy to provide that. But also, I want to be realistic and be like, I'm just writing next year's legacy code right now, let's be honest. I'm very happy with where we're at in this moment. But I also know how early I am in the project that I'm working on. And I'm burdened with the knowledge that I'm certain one decision that I'm making of the many that are being made I will deeply regret a year from now. I just know that that's true, and I can't let it slow me down. I got to just keep making decisions and do stuff. But I know that there's going to be one. I know that a year from now, I'm going to be like, why did we choose that option? But it's sort of the game. STEPH: [singing] We'll just know that there's something strange and your code won't change. Who are you gonna call? thoughtboters! CHRIS: Well, yes. I will definitely be calling you when I find myself in the uncertain times of legacy code of my own creation. So I look forward to that, frankly. But that's a problem for a year; I don't know, maybe two years from now. Who knows? But for now, what do you think? Let's wrap up. STEPH: Let's wrap up. The show notes for this episode can be found at bikeshed.fm. CHRIS: This show is produced and edited by Mandy Moore. STEPH: If you enjoyed listening, one really easy way to support the show is to leave us a quick rating or a review in iTunes as it really helps other people find the show. CHRIS: If you have any feedback for this or any of our other episodes, you can reach us at @_bikeshed on Twitter, and I'm @christoomey. STEPH: And I'm @SViccari. CHRIS: Or you can email us at hosts@bikeshed.fm STEPH: Thanks so much for listening to The Bike Shed, and we'll see you next week. All: Byeeeeeeeeee!!! Announcer: This podcast was brought to you by thoughtbot. thoughtbot is your expert design and development partner. Let's make your product and team a success.

Software Developer's Journey
#181 Madison Kanna from college dropout to successful self-taught UI-Engineer

Software Developer's Journey

Play Episode Listen Later Dec 14, 2021 41:21


Madison took us from her dropping college and learning about development to the BookClub she is running. We talked about learning on your own, figuring things out, applying, and getting job interviews. We talked about internships and free mentoring. We talked about making plans and revising them. Finally, we talked about her podcast, as well as the CodeBookClub itself.Here are the links from the show:https://www.twitter.com/Madisonkannahttps://www.madisonkanna.comhttps://www.madisonkanna.com/codebookclub The New Way to Work: https://www.youtube.com/watch?v=e5qUR3tpEdACreditsCover Campfire Rounds by Blue Dot Sessions is licensed CC BY-NC-ND 4.0.Your host is Timothée (Tim) Bourguignon, more about him at timbourguignon.fr.Gift the podcast a rating on one of the significant platforms https://devjourney.info/subscribeSupport the podcast, support us on Patreon: https://bit.ly/devjpatreonSupport the show (https://www.patreon.com/timbourguignon)

Adafruit Industries
EYE ON NPI - Crouzet Millenium Slim Ultra-Small Logic Controller

Adafruit Industries

Play Episode Listen Later Dec 10, 2021 11:15


This week's EYE ON NPI is like a Vulcan: no, it doesn't have pointy ears, but it is totally logical! It's the Crouzet Millenium Slim Ultra-Small Logic Controller. (https://www.digikey.com/en/product-highlight/c/crouzet-usa/millenium-slim-ultra-small-logic-controller) It's the darn-cutest looking logic controller we've seen, with wireless BLE programming support for 4 inputs and 4 outputs. Each controller is very small compared to large PLCs, with 4 inputs and 4 outputs. There's a version with 500mA transistor sourcing outputs which can do PWM output, and two relay versions - one AC powered and one DC powered. Each input can also be PWM input and some can be tachometer or analog inputs. There's no LCD or TFT display - instead you can use a phone with iOS or Android to connect to the BLE interface to analyze/debug the output, and provide buttons for input if a UI is desired. (https://www.crouzet.com/products/automation-controllers/software/crouzet-virtual-display/) The nicest part of this product is the programming interface software. (https://www.crouzet.com/products/automation-controllers/software/) The software only runs on Windows that we could tell, but it's a simple drag-n-drop flow-based programming kit that lets the operator come up with simple logical operations that can be combined to create advanced control flows. This is a bit different than microcontroller programming: all the logic executes at the same time, so perhaps it's a little like a cross between block-based coding and FPGA/CPLD coding. There are some simple commands like Boolean logic, or simple counters - to more advanced ones like PID controllers, timers, or Schmidt triggers. Even though this is like a 'baby' PLC, it seems like the programs can be simulated/shared from smaller to larger controllers. The BLE connectivity is handled with a BlueGiga dongle (https://www.silabs.com/wireless/bluetooth/bluegiga-low-energy-legacy-modules/device.bled112)- this is a device that presents itself as a serial COM port and then takes commands over UART data to connect and transfer BLE data. This might seem a bit odd given that Win 10 has native wireless support - but probably a good idea since native BLE connectivity is really tough on desktop. There's also a better chance that the programmer could run in an emulator because the driver is generic. We think the Millenium Slim Ultra-Small Logic Controller could be an excellent first-time-PLC for someone starting out with PLC, or anyone with a small automation project where a big controller is overkill. Best of all, both the BLE dongle (https://www.digikey.com/short/ct5hqv07) and PLC (https://www.digikey.com/short/2jfv2p4d) are in stock right at Digi-Key for immediate purchase. So whether you are an expert automator, or a beginner mechatronist - purchase today and you can get it in your hands tomorrow morning! See on Digi-Key at https://www.digikey.com/short/2jfv2p4d

Syntax - Tasty Web Development Treats
JavaScript and Hardware × Cars, Factories, Heavy Industry, Robots, and the Internet of Things

Syntax - Tasty Web Development Treats

Play Episode Listen Later Dec 8, 2021 64:04


In this episode of Syntax, Scott and Wes talk with Anth Rogan about JavaScript and hardware - from cars, to factories, and the internet. Bryntum - Sponsor Bryntum's suite of web components help developers quickly add powerful project and resource scheduling capabilities to their React, Angular, Vue or vanilla JS apps. The SDKs include extensive API docs and plenty of examples. Try them online at bryntum.com/examples/gantt or bryntum.com/examples/scheduler-pro. Visit Bryntum.com/syntax for a 45-day free trial. Logrocket - Sponsor LogRocket lets you replay what users do on your site, helping you reproduce bugs and fix issues faster. It's an exception tracker, a session re-player and a performance monitor. Get 14 days free at logrocket.com/syntax. Linode - Sponsor Whether you're working on a personal project or managing enterprise infrastructure, you deserve simple, affordable, and accessible cloud computing solutions that allow you to take your project to the next level. Simplify your cloud infrastructure with Linode's Linux virtual machines and develop, deploy, and scale your modern applications faster and easier. Get started on Linode today with a $100 in free credit for listeners of Syntax. You can find all the details at linode.com/syntax. Linode has 11 global data centers and provides 24/7/365 human support with no tiers or hand-offs regardless of your plan size. In addition to shared and dedicated compute instances, you can use your $100 in credit on S3-compatible object storage, Managed Kubernetes, and more. Visit linode.com/syntax and click on the “Create Free Account” button to get started. Show Notes 01:02 Guest introductions Anth Rogan on LinkedIn 05:44 What kinds of things did you work on at Nissan? 09:02 Why are car head units based in the past? 11:35 What are cars running for UI? 14:04 What are PLC's? 17:02 What kinds of regulations exist for automotive software? 22:28 Sponsor: LogRocket 23:03 Deeper look at PLC's 26:56 What's Node-RED? Node-RED 29:37 JavaScript is popular in industry? What else is used? 31:06 Sponsor: Brymtum Products 32:57 How do you learn about this tech? PLC Subreddit 35:24 What were you doing with Nissan head units? OBD2 Scanner 37:15 Web bluetooth API research 39:13 What's MQTT? MQTT 41:29 Sponsor: Linode 42:14 Using IoT and machine learning to find issues 46:53 New opportunities in industry tech coming 52:40 Cottage IoT dreams 56:27 Relaxing in Minecraft 57:42 Sick Picks - Anth 58:38 Sick Pick - Scott 59:49 Sick Pick - Wes 02:12 Shameless plugs ××× SIIIIICK ××× PIIIICKS ××× Scott: Spotless for macOS Wes: Wago Lever Nuts Anth: Daily.dev Shameless Plugs Scott: Astro Course - Sign up for the year and save 50%! Wes: All Courses - Black Friday sale! 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

A Culpa é do Cavani
Jornada 218 – Mbembada

A Culpa é do Cavani

Play Episode Listen Later Dec 7, 2021 60:04


Passeio cheio de classe no belo tapete de Portimão, apesar do tráfego de autocarros. Até deu para uma Mbembadazita e tudo. Entretanto, longe dali: É o Leça, carago! Num tájabêr ali o Matias a trinco, carago? Ai não, espera, é o Penafiel. Não tinha reparado no Folha colado à lateral. Ui, foda-se, mas está do lado de fora! Aaaaaaahhh, é a B!

The Bike Shed
318: Successful Skills with Edward Loveall

The Bike Shed

Play Episode Listen Later Dec 7, 2021 44:05


Fellow thoughtboter Edward Loveall joins Steph to cohost and talk about alternative frontends and his own that he created: scribe.rip: an alternative frontend to Medium, learning about what it's like to be a manager/non-IC, and helps answer a listener question re: how do you think about empathy in your work? This episode is brought to you by ScoutAPM (https://scoutapm.com/bikeshed). Give Scout a try for free today and Scout will donate $5 to the open source project of your choice when you deploy. Empathy Online: Edward Loveall (https://thoughtbot.com/blog/empathy-online) Scribe (https://scribe.rip/) GitHub - mendel5/alternative-front-ends: Overview of alternative open source front-ends for popular internet platforms (e.g. YouTube, Twitter, etc.) (https://github.com/mendel5/alternative-front-ends) Become a Sponsor (https://thoughtbot.com/sponsorship) of The Bike Shed! Transcript: STEPH: Hello and welcome to another episode of The Bike Shed, a weekly podcast from your friends at thoughtbot about developing great software. I'm Steph Viccari. And this week, Chris is taking a quick break. But while he's away, we have a guest on today's show. Today's guest is fellow thoughtboter, and wonderful friend, and British accent enthusiast Edward Loveall. EDWARD: Oh, hello, Steph. It is lovely to meet...No; this is not my real accent. Anyway, hi, friends. [chuckles] STEPH: [laughs] Hello, British Edward. I am so excited to be chatting with you today. Are you going to maintain that accent throughout the whole episode? EDWARD: No. There's no way I could do that. I need a lot more professional actor training to be able to maintain quality of that level, I think. STEPH: That's fair. I won't hold you to that standard. I was reflecting on preparation for this chat. I've been thinking about all the fun that we've had together, the time that we have worked together at thoughtbot, all the remote coffee walks that we have gone on together as we've talked through consulting challenges or coding challenges. And I realized that we have never worked on a project together, which is wild to me. EDWARD: Huh. Yeah, I think you're right. That is wild. Because I've been here three and a half years, and you've been here even longer than me. So in three and a half years of overlap, we've never done that. STEPH: And yet we've still always found ways to hang out. EDWARD: We make it a priority, you know. STEPH: I think we need to...we might have to bribe somebody for us to get on a project together. EDWARD: I'm pretty sure we know the person to bribe. STEPH: We do. EDWARD: We can go talk to our boss and make that happen. One thing we've both done in our career here at thoughtbot, too, is we have gone from individual contributor to being a manager, which is a cool transition. STEPH: That's a really good point. That is fun that we have embarked on that journey together. I was very much encouraged to become a team lead, and that was very helpful. Because I'm the type of person where I'm not sure I would have put myself up for that role. I'm very thankful that others encouraged me to do so because I really love it. There are certainly challenges with being a team lead. But overall, I have very much enjoyed the role. Just to provide some context for being a team lead a thoughtbot, because I feel like those management roles tend to differ from company to company as to the level of responsibilities that you have. So for us in particular, it's really focused on leading a team of developers, usually two to three developers, and conducting regular one-on-ones to ensure that they are fulfilled and are successful in their projects and their growth at thoughtbot. And then helping them become senior developers if they're not already and essentially coaching them through difficult development and consulting scenarios. EDWARD: Yeah, there is still an expectation that you are an individual contributor in some form on client projects. It is not just a management position. STEPH: Yeah, that's a good point. For me, that context switching is often what makes it challenging but yet also helps me still feel that I can coach somebody and that I can have one-on-ones because I am still in the trenches. I'm still contributing to client projects. And so, it really helps me still stay in touch with the work that's being done and the struggles that people will face. Let me say again I am positive I wouldn't have pursued this path if I lost my IC status. I really like that part of the role. That's really a split. How about you? EDWARD: Yeah, and I still do. We've been experimenting. So thoughtbot generally does four days a week on many projects. So we do four days a week with our client, and then we do one day a week as investment. And team leads, at least on the team that we are on, have been experimenting with just doing three days a week on a client, one day dedicated towards team lead, and then one day for investment. I like that split so far. We're still seeing how it goes, still pretty early on in that experiment. But I've enjoyed continuing to be in the trenches, as it were, and working sometimes with the people that report to me so that we can really grow in the same way. There's a lot of context shared there. And that's been really wonderful. STEPH: Yeah, I have some specific questions I'd love to ask you about that shift in schedule. Because in some of our meetings, there has been discussion about that ability to context switch between I'm only billing three days now instead of my typical four. And I now have more time to focus on team lead priorities, but then that also means I lose a day with client work. And so there's that battle going back and forth between focusing on client work and also focusing on team lead work. So I'm going to leave that as just a teaser because I want to come back to that. But I'd really love to circle back to earlier in the year when you were thinking about becoming a team lead and correct me if I'm wrong, but I think you were pretty hesitant about it. And you were still deciding if it was something you wanted to do. Do you recall what helped you make up your mind as to which path you wanted to take and why you chose this one? EDWARD: Yeah, that's a great question. I did also get some encouragement, a pretty light encouragement from a previous co-worker. And that was helpful, but I turned it down initially. Someone asked, "Hey, are you interested in this?" And I said, "Nope, definitely not." And, I don't know, a year-ish later, I then ended up applying. And I think what happened in the intervening year was that I started to naturally do some of the work of a team lead primarily, checking in with people and talking with them, pairing with them on things more regularly. So I felt as if I was already doing some of the work, not exactly running a one-on-one, not getting people promoted necessarily. But I cared about the people I was working with and wanted to see them grow and be happy and thrive. That realization helped me think, oh yeah, I'm just kind of doing this. And I should maybe apply for this role. STEPH: Wow, that resonates so much. I've heard that from other folks, too, as they have progressed into team lead or other management roles is it was often they already felt like they had started doing some of the work, or there was some natural inclination to start taking over those activities. And so then it felt right to then actually acquire that title and take on those responsibilities officially. Well, how's it been going? You had almost a year now. So you had some of those hesitations at the beginning. How's it been? What do you think of being a team lead? EDWARD: Yeah, I'm really enjoying it. It is a challenge like you said. But that's every job, right? Every job should be a bit of a stretch. So I did come into it with some natural inclinations of wanting to talk to people and check in with them. But there are all these other pieces that I wasn't good at. One thing that has been really challenging is instead of completing things myself, being that individual contributor, is trying to coach and sponsor people to do something that I would do. And I think the hardest part about that is they may not be as far along in their career as you are. And so it is hard to watch someone struggle in the way that you used to struggle without saying, "Oh, here, let me just do that for you.” And I think what I started to realize is that the efforts that I'm putting in I can really be a force multiplier and end up effecting more change than what I could do by myself. Like, if you think about it, I have four reports right now, and they're all really smart and talented people. But let's just say they were half as good as I was. That is definitely not true but just go with the numbers here for a second. If I could teach them to do what I do, even if they were half as fast as me, because there are four of them, they can get two times the work done. The math adds up in a way where if I can unblock those people, help them just get to the next one little step, do whatever it is that they need, they're going to do way more than I could by myself. And really wrapping your head around that and the advantages there is so hard but so rewarding once you figure it out and get it going. STEPH: Do you feel like anybody told you that up front going into taking on some more management responsibilities? Or is that something you learned as you went? EDWARD: I definitely learned that as I went. I got some great advice from Josh Clayton, who we work with, and he's been a manager for a long time. And that's a lot of how he thinks about it. And he encouraged me to do things like pairing with everybody on the team or running little workshops to teach, to fill in knowledge gaps for people asking questions, instead of giving answers, to help them find their own answer. And that's all been really, really helpful. STEPH: Yeah, that's one of the things that I have valued very much about our culture. I've seen some other companies struggle with is that when someone does get elevated into a management role that they still need support. They still need to be coached. And they also need room to make mistakes and grow. And at thoughtbot, I feel that we have been very supported and where there's someone that I can still get mentoring and coaching from. And I can learn to be a manager on the job versus I'm not just put in a position where I'm going to fail or just put there without the expectation that I still need to grow as a manager and as a person as well. So that has helped me out tremendously as well. You highlighted the idea of pairing more with others and then asking more questions around providing answers. And as you're learning those skills or as you've acquired those skills for being a team lead at thoughtbot, have you found those skills also transition well to client work? EDWARD: Yeah, they do. There's a lot of overlap, especially around gaining trust with somebody. I'm gaining trust in one-on-ones, but I'm also gaining trust with my client or helping my client understand something. This gets a little more into the client-side of it. But a lot of times in client work, I'm looking to bridge a gap. I understand something because of my consulting experience, and they want my knowledge and consulting experience. But it's hard to just go in and say, "Do X or do Y." And in the same way, with somebody who's reporting to me or who we're having a one-on-one, it's not usually very helpful to just say, "Do this, do that." You want to help them understand the why and bridge that knowledge gap to get to where you want them to be and where you think they should be. Those really do go hand in hand, and I have used a lot of the same skills. Giving feedback also has been a huge thing to share. It's really, really hard to give critical feedback to somebody. It's very easy for them to shut down and not take the feedback, which is the opposite of what you're trying to do. And the same can be with clients. Like, they've gotten to where they've gotten to because of whatever they've done in the past, and trying to show them why what some of the things they're doing is maybe not ideal is really tricky without triggering that flight or fight response. So yeah, there are lots and lots of crossover to answer your question. [chuckles] STEPH: I get so excited when clients that have brought on thoughtboters recognize that we are there temporarily, that we bring an outsider perspective. And they will set up essentially reoccurring; maybe it's weekly, maybe it's monthly to say, "Hey, give us feedback. Let us know what are you seeing? What do you think about the team? What do you think about our processes? What would you like to change?" And I don't mean just in a retro setting that you're having with the team, but it may be meeting with leadership of that company to give them that feedback directly. And that's awesome. It's rare because, I mean, that takes confidence on their part to be able to say, "Hey, give us all of your feedback, constructive, positive, whatever it may be." But I feel like they get so much value out of doing that where they really get to leverage the fact that they have brought in these external members. And they get to hear from them as to how things are going and insights that they may be missing or not hearing from their people otherwise. EDWARD: Agreed. STEPH: Circling back to the manager IC path for a moment, I have a question for you because I often find myself asking this question to me or sometimes other people asking this question. But how do I know which path to follow? How should I explore do I want to be a manager? Do I want to continue and invest in my individual contributor skills and really lean into that path? Have you found any resources that have really helped you or ways that you coach others through that scenario? EDWARD: I probably don't have a very interesting answer just because I'm going to mostly repeat what I think I said. But I think it's still so relevant and valid, which is, do you find yourself doing some of the work that a manager does? And it doesn't necessarily have to be the thing that I did, which was reaching out to people and checking up on them and seeing how they're doing. It could be that you really, really like running big team meetings or something like that. You just get a kick out of doing that kind of work. Or maybe you really enjoy working less on yourself and more on the group around you. That could also point to more of a technical leader. It doesn't have to be a person leader. So I think I would look for where you find yourself wanting to effect change and figuring out if that fits into a manager role or not. And I've had people tell me they definitely do not want to be a manager, and they know that for sure and people that are on the fence. And I think that's another useful thing is to ask your manager what they do as the job and see if that's interesting. See if any of those things spark joy for you, as it were. STEPH: I love the approach of just flat out asking your manager or someone that you see where perhaps you would like their role and saying, "Hey, what's your day like? What do you do? And can I be part of more of your day just to see if I would be interested in this type of work? Essentially, can I shadow some of the meetings that you're in?" I really like that idea. And I think in the past, I would have been more hesitant about this approach. And it certainly depends on your company's culture. But there's a part of me that's like, just try it out. Like, if someone is encouraging you to go for a management role or to go for maybe it's a stronger individual contributor role, maybe it's being a principal engineer or something else, but if there's someone that's already there encouraging you or if it's just yourself and you are your own cheerleader, then go for it. Try it out. See if you like it. Take some notes. See if what you thought the job was going to be like actually matches reality. Because then, at the end of the day, you can always decide to change your path. And if you are at a company that supports that type of experimentation, then you can step back to your current role if you decide that you don't like it. Or you might find that there's a really nice mix in there. But I feel like, with time, I'm getting a bit more bold with strategies in terms of just trying things out, even when it comes for technical challenges as well. Like if there's something that you're really nervous about or there's some big technical problem or something that the team is working on, and you're really skittish and nervous about it, just go ahead and say, "I'll do it, or I'd love to work with somebody on it," and then try it out and take some notes, see how it goes. EDWARD: You could be really sneaky too. You can say to a colleague, "Hey. You want to get lunch?" And like you turn that into a secret one-on-one. Or you offer to run the retro board during retro, or you step up for doing a bunch of pull requests that week or something like that. You can try these little test things without even having to let somebody know or committing to anything publicly or even privately. Just really internally to yourself, you can try to take some of those steps. STEPH: I like the sneaky success ladder. People won't talk about that one as much. [laughs] That's how I definitely found out that I didn't want to do sales. There was someone that I was talking to that was interested in working with thoughtbot, and Josh Clayton was very supportive of like, "Do you want to come along and be part of the conversation?" I was like, "Yeah, sure." And so I went along, and it was fun. But I definitely walked away like, yep, I don't want to be part of sales. I really like everything else minus this part. [laughs] EDWARD: Yeah, it's good to know. It's good to know. STEPH: Circling back just a bit to something you said earlier, you had mentioned that as you were becoming a team lead, you realized that helping others be successful at their job was really then what led to you feeling successful as well and that you could be a force multiplier. And you'd mentioned that a lot of that work comes down to bridging knowledge gaps. And I'm really curious because this is something that we're always working on at thoughtbot. We are looking to identify what skills people would really like to learn. How can we help people learn those skills? And I'd love to know more. How do you go about this? How are you helping people bridge those knowledge gaps? EDWARD: Yeah, so that is a doozy of a question. I have a couple of different answers. First is something I talked about before, building trust. And there's a bunch of different ways to do that. And I see trust as the foundation of almost everything in consulting. If you don't have that trust, it's really hard to deliver feedback like we talked about. It's hard to bridge that knowledge gap. Because effectively, nobody knows who you are, and what you're doing, what's going on, why you are coming to talk to them. It's really strange. And we can come back to how to build trust. But once you've built that trust, I approach bridging that knowledge gap in a couple of different ways. One is asking questions instead of giving answers. The goal behind this is I want them to think about their goals. And that will often help lead them to some answer to bridge that gap that we have. I have some idea. They have another idea. If I can ask the right open-ended question, they will walk themselves across and get to where I want. Now, that doesn't always work. Another strategy I've found is outlining a bunch of different possible solutions and their pros and cons. That has done two things. One, it helps them understand where I'm coming from, what my goals are in relation to what they're trying to do. And another one is that actually tends to gain a lot of trust. In the meantime, you're showing your expertise. You're showing that you're really considering all their problems. Because almost every solution has trade-offs, there's very rarely a silver bullet. And so it's really helpful to say, "Well, here's the pros, here's the cons. Here's where I think you should go, but you know your business better than I do. And I've outlined all the things here. So whichever way you want to go forward on this, let's do that. And let me help you get there." Joël and I, a colleague that we both cherish dearly, we did that on a project recently, and it was really, really successful. We put a lot of work in and helped them get to a really difficult architecture decision. And it could have gone one of, I think, four different ways. And we were sort of vying for one. They were vying for another. And we found a couple more in the middle, and I believe we went more towards the middle. And we were both pretty happy with how that turned out. STEPH: I really, really like how that approach gives someone so much autonomy, and they're part of that decision. So you're not just saying, "Hey, you need to do this," and then just following through with it. But instead, it's saying, "I think I've heard everything. I think I understand the different problems that we're facing. Here are my suggestions, but you still have more context. What do you think, or which option would you like to pursue? I really like that option." EDWARD: Yeah, because you're always writing this line as a consultant of like, they did bring you in for your skills and expertise and theory. But you really want to level them up so that they can make the right choices because that ultimately is...like, their success is your success as a consultant. That's the job in a lot of ways. And so yeah, giving them the tools they need to make the right decision is so often the job. And I think that can get lost in the shuffle of, oh no, we have to meet these sprint goals. Or I got to get this ticket done or this bug fixed or something. And stepping back to get them to a better place is another goal that you can get to down the line. It's not to say shipping tickets is bad [laughs] or getting the sprint goals is bad. It's just another facet. Have you had any aha moments in consulting? STEPH: Oh my gosh, I have had so many aha moments. I think most of them, for good or for worse, are here on The Bike Shed, or at least they've been shared here on The Bike Shed. [laughs] EDWARD: Yeah, you should write a book of them all. STEPH: Could we just grab the...I'm lazy. Can we grab the transcripts? We'll just turn that into a book. EDWARD: [laughs] Yeah, just put it all together, call it The Bike Shed Diaries. STEPH: Yeah. Oh, I like it. Okay, all right, that'll be next week's task. We'll publish The Bike Shed Diaries. [laughter] Specifically, in terms of bridging aha moments for helping someone bridge knowledge gaps or even for myself is I will often focus on what skills do you need today to make your job easier? What challenges are you facing? And also, what skills would you like to have six months from now? So that way, you are meeting the needs and the requirements that you really need today to fulfill your job. But then also six months out, we're still looking towards the future. Maybe that's also more job requirements related, or maybe it's just for personal growth, or the areas that you're really excited about. You really want to contribute to an Elixir, open-source project, or something more specific that contributes to your fulfillment. So when it comes to knowledge gaps, those are often the questions that I'm asking are, what do you need this week to make your job easier and to make your life easier? And then where would you like to be in terms of what skills would you like to have six months from now or what concepts? It may even be too lofty to say what skills because that could be huge to say that I want a whole new skill to be able to work in a language. So maybe it's something that's more specific of like, I'd really like to understand forms a bit better six months from now, or I'd really like to feel a little more confident with SQL, or maybe you'd like to take a look at Arel, things like that. And then set those targets and then check in to say, "How's it going? How do you plan to learn these skills? Would you like help learning these skills? What are some resources?" Because I am not always the person that can help someone acquire that knowledge. So in that role, I'm often a facilitator where I will say, "Cool, you want this. You're interested in this particular skill. I don't know that skill. But I do know someone else who's really good at this. So let's get you all connected, and then you can work together on this." EDWARD: And to dovetail a little bit with that manager individual contributor piece we were talking about before, that's another piece we didn't really talk about, which sounds like sponsoring. It's not just you doing the thing for your report or even coaching them necessarily. It's how can I get my report into a situation where they can exercise that skill or connect them with somebody who can help them with that thing? I'm still working on that one, honestly. That's a really, really difficult one. That's not something that comes naturally. STEPH: When you say that's the part that's still challenging for you, is it the connecting of one person to someone else to learn a skill? I'm curious to hear more about which part of that is challenging for you. EDWARD: I think I don't always think of sponsorship as a tool that I can lean on. It just doesn't come to mind as naturally. I think the very natural thing to do is mentor first, which is like, here's what you should do. It's kind of giving somebody a fish. Coaching then is more like teaching them how to fish. And then I don't know if we're going to extend this analogy farther. Sponsoring is like you're going to open up your own fishing teaching school or something. [laughs] And that just doesn't always occur to me. I don't necessarily think like, oh yeah, like my friend over here could totally teach you about this technical skill that you're trying to learn or set you up to speak at a conference or something like that. It's a much different level of being a manager that I'm just not used to yet. I'm getting better at it. But it doesn't come naturally. STEPH: Yeah, that's a very powerful form of managing someone as well because then you are helping that person go beyond their current bubble of who is their manager in their team and then helping them shine in other circles. And that's incredible and also something that I am always working on getting better at. EDWARD: Let's get better at it together. STEPH: We can do it. Also, when you mentioned opening a fishing school, I definitely pictured fish in a school in front of a chalkboard and someone's writing on that board and little fish in their school seats learning. EDWARD: [laughs] A little Finding Nemo action. STEPH: You got it. [laughs] You know your fishing school. You got to learn to stay away from those hooks. Mid-roll Ad And now a quick break to hear from today's sponsor, Scout APM. Scout APM is leading-edge application performance monitoring that's designed to help Rails developers quickly find and fix performance issues without having to deal with the headache or overhead of enterprise platform feature bloat. With a developer-centric UI and tracing logic that ties bottlenecks to source code, you can quickly pinpoint and resolve those performance abnormalities like N+1 queries, slow database queries, memory bloat, and much more. Scout's real-time alerting and weekly digest emails let you rest easy knowing Scout's on watch and resolving performance issues before your customers ever see them. Scout has also launched its new error monitoring feature add-on for Python applications. Now you can connect your error reporting and application monitoring data on one platform. See for yourself why developers call Scout their best friend and try our error monitoring and APM free for 14 days; no credit card needed. And as an added-on bonus for Bike Shed listeners, Scout will donate $5 to the open-source project of your choice when you deploy. Learn more at scoutapm.com/bikeshed. That's scoutapm.com/bikeshed. STEPH: So pivoting just a bit on a slightly more technical note, you've been working on a side project called scribe.rip R-I-P. And I've heard a bit about it, but I would love to hear more. Could you tell me more about that project that you're working on? EDWARD: Yeah, sure. So Scribe is what I would call an alternative frontend. And specifically, it is an alternative frontend for medium.com. The goal of the project is to give people a tool to read the Medium articles, not on medium.com, which might sound like a strange goal. [laughs] I'm happy to go into a little bit of a lie there. But that is the tool. And yeah, the domain is scribe.rip, mostly because that was a cheap domain. [laughs] So I got it and put my project there. STEPH: I like that phrasing that you're using, alternative frontends because I think when you had first mentioned that, when I'd heard that in other conversations, I was like, oh, what is that? And I didn't know what it meant. But now, when you put it into some context, that makes all sense. I am intrigued. Why would someone be interested in using an alternative frontend versus, say like, there's an article on Medium; I'll just read it there. What might inspire me to want to use Scribe instead? EDWARD: Definitely. There's a bunch of different reasons. The alternative frontends cover a pretty broad ground. But I'd say the most common reasons that someone might want to use one are privacy if they're worried about the main service, whatever that might be. Let's say Medium, in this case, is doing something with their user data that they'd rather they not do, potentially a better experience on that service. If you don't like the way Medium's articles look, you might want to see them in a different way. It can also be a way to vote with your actions, saying that this is the kind of web that I want to see if you don't like in general what a platform is doing. And if you think a platform is potentially even harmful, it can be a way to say I don't want to support that platform, but sometimes I find myself needing to interact with it in some way. The alternative frontends can be a tool for that. On the very cynical angle, you can also go to you don't want to see ads. And sometimes, these are ad-supported platforms. Alternative frontends can get rid of those ads. And so that's another way too. I'm conflicted more about that one. We can dive into that. But those are the most common reasons I've seen that people want to use alternative frontends. And to be clear, Scribe is not the only alternative frontend out there. There are frontends for YouTube, for Twitter, for Instagram, for Reddit. There's a huge list of a bunch of them, but those are some popular ones. STEPH: Oh, that's really cool. I've never used any of those before. Will be sure to include some links in the show notes so people can check those out. And you listed some really interesting reasons for why folks might want to use an alternative frontend. I'm curious, to make this possible, though, does it mean that the service that is hosting that content do they have an open API into which then you can pull that content? How is an alternative frontend possible? EDWARD: It is possible through APIs almost always. In some form or another, the APIs aren't necessarily open. One interesting side effect to many of the JavaScript rendered apps is that they often talk to some API in the background. And that can often be used to get the content in a more computer-friendly way. And so, with Medium, in particular, they don't really have an open API. So I ended up trying to figure out their API in the background that they're using to fetch articles and was able to get the content and display it in a different way. STEPH: So everything you're describing sounds really interesting. I feel like I do have to ask the question, is it okay that these alternative frontends are taking content and are essentially rendering content but then not using the original service in which the content was published? How do you feel about that aspect? EDWARD: Yeah, it's a really interesting question. There's a bit of a moral argument here, and I think everybody has to make that call for themselves. I think every platform if it gets large enough, is going to have people that don't want it to exist for some reason. I think, in some ways, providing alternative frontends is a bit of a release valve for that platform. Not to say that the alternative frontend explicitly helps that platform, but I imagine it gives people literally an alternative to then use instead and can make a peaceful, neutral ground in a way. So instead of being forced to use only the official platform, you can now use it at least in a limited fashion outside of that, which may alleviate whatever concerns you have and therefore keep everybody happy. And I think honestly, in the long run and in practice, most platforms will not particularly notice the impact of these alternative frontends. Overall, we're talking very, very small potatoes. YouTube is not going after Invidious, the alternative frontend for YouTube, because it's probably a drop in the bucket. Nitter is not getting cease and desist from Twitter. Instagram is not sending a cease and desist to Bibliogram. These are some of these alternative frontends. And I think that's just because it's okay. They don't mind. It's so small. And it's giving people what they want in a way that is not harmful enough for it to really matter in the long run for them. STEPH: Interesting. Because yeah, as you'd mentioned earlier, I think most people are going to continue to use that main service because that's what they see advertised. And it's more well-known, and it's frankly easier to go to. But then for folks who do want a little bit more control over their experience and they still want to access someone's content. So it is interesting. You still want to ensure that the person who created that content always gets recognition and ownership of the content that they have. And in this case, that very much still applies. If I wrote an article on, say, Medium, but then I'm using Scribe to be able to read that content, it's still known who wrote the article. But this way, you are perhaps opting out of something else that service is doing, maybe if they have some type of tracking or something that you're not comfortable with. But you still want to be able to appreciate that person's content, even though they're perhaps only able to publish on Medium for right now. Or they're still looking for more ways to publish their content for folks who would like alternative ways to consume their information. Yeah, it's an interesting spot. EDWARD: Right. And some ways that I think Scribe can provide a slightly better experience are trying to highlight the author more than the platform. The only time it says Scribe on the website is on the homepage. If you go into an actual article, I don't put branding or anything like that. Because I think I really want people to have their work speak for the author, not for the platform, and that's really important to me personally. And that might not be important to you, and that's okay. Maybe you use scribe because it supports dark mode or something like that, and that's totally fine too. I don't mind at all. There are many aspects on which an alternative frontend can provide for people that the official platform doesn't. In some ways, it's augmenting their features, but in some ways, it's just giving people a bit more choice. And I think that's important. STEPH: I have found since you'd mentioned the side project, that I've started using it more to read content. And I have found it helpful because it really silences all the noise because a lot of services want you to see ads, and they do want you to click on more articles that are related to the thing that you're reading. And so, I do appreciate the simplicity that it brings to the content. So then I can really just focus on that one article that someone has written. Overall, it seems like a really neat project. EDWARD: Yeah, thanks. I'm glad you enjoyed it. STEPH: Pivoting just a bit, I would love to go on a slight adventure and answer a listener question with you. What do you think? EDWARD: Yeah, let's do it. STEPH: All right. So this listener question focuses on empathy in your work, and this person writes in, "I'm curious how you all think about and notice empathy from yourselves and others around you. Empathy is so helpful and critical for making and maintaining healthy, productive relationships. I've noticed that the way you frame your client engagements, empathy sounds to be at the heart of them. For myself, I've noticed I'm better at it in certain contexts and certain times and with specific personalities, more so than others. More concretely, how do you stay empathetic with your clients and with cross-functional teams like product or design or even yourself? Can you teach or increase your empathy? And if so, what have you found successful in these situations? So, Edward, this seems really on topic for some of the things that we were discussing earlier. So I'm going to hand it over to you first and get some of your thoughts. EDWARD: This is a really great question. There's a lot to unpack. And one question they asked was, can you teach or increase your empathy, and if so, what have you found successful in what situations? I have found that being vulnerable both publicly and being empathetic publicly is a really useful tool. A lot of teams don't communicate very publicly; it's a lot of stuff in private messages. Being vulnerable publicly in a big team channel can really open the door to letting other people be vulnerable and see what other people are doing, understand what people are feeling. And that's really at the heart of empathy is understanding someone else's point of view. I've also found that starting small, like, just do it with your close co-worker. Maybe try to effect just change with them. And then once you've gotten them on board, broaden it to two other people, and then two more people, and then two more people, because it's really hard to take that leap of faith and be vulnerable by yourself. So I totally get that. And also trying to take this on really early in someone's career or someone's tenure at a job. Offer to help new people to your team. Work with them, so they just start off with a very empathetic experience. And that can grow into a more empathetic team as a whole. Encourage team members to update documentation on their first day because they're learning so much in those first few days. Once they've learned it, the only reason they want to document it is because they have empathy for that next person. And so, just like setting that baseline and that boundary, I think is super helpful. What do you think? STEPH: Yeah, I think those are some great examples. I really love that one way to acquire more empathy is to go on a journey with someone else. So if you have someone new that's joining the team, be their onboarding buddy. Go through that journey with them so you can understand what they're going through, what challenges they are facing. And that will boost the knowledge that you have and will likely also boost then the empathy that you have for people that are new to the team or for future onboarding buddies if you realize that there are some processes that really need to be smoothed out. I also think it's worth highlighting that I don't think empathy is a single skill. I think it's a number of things. It can be the ability to feel someone else's emotions, so you can understand what someone else is feeling at that moment. It could be reasoning about another person's perspective, or it could be just, frankly, wanting to help. So I think there are a number of ways that we can demonstrate empathy to someone else. And it's going to depend on the situation as to which one of those skills is going to be helpful. For how you stay empathetic with clients, that one is a really interesting one just because the way we work with clients; we do get to go on that journey with them. We are with them in making decisions around priority and technical decisions and what pain points they are feeling. So I think going, as you described earlier, going on that journey with someone is what helps us stay empathetic with our clients. And I think that's true for cross-functional teams. So if you are working with someone that's maybe on customer support or on the design team, it could be grabbing lunch with them and saying, "Hey, what's your day like? What challenges are you facing?" Maybe it's your company has rotations where you actually are part of the customer service team for a day. So you get to respond to tickets and have more of an understanding. I'm realizing there's a theme here. I feel like a lot of it comes down to stepping into someone else's shoes and seeing the world from their perspective and not just seeing it but experiencing the world from their perspective. EDWARD: Yeah. And another way to do that...because that can also take a lot of time. It's a hard ask potentially to say, "I'm going to go be a customer service rep for a day," if your job is also, I'm going to be a programmer and ship features or fix bugs. That's hard to do. And I think there are ways to do that, to experience what someone else is experiencing by trying to take on not necessarily the role of the other person but just trying to support the other person in their role. So, for example, we see teams become really siloed where the product is solely responsible for writing tickets, development is solely responsible for understanding what makes the code work or fixing a bug, and design is only responsible for user interactions. I found it really, really helpful to try to approach design and say, "What's the goal here with this user interaction?" I don't know. I'm not a designer. And so, how can I ask them and again bridge my own knowledge gap? Because that can really help you get to that point and help them understand maybe what you're going for and say, "I wasn't going implement it like that because I thought X, Y, and Z." And they go like, "Oh, I see what you're saying." And then now you're making those barriers…or maybe when you're working with products, they're like, "I see what you're trying to do here. But in my experience, I've seen websites like this. How do you feel about that?" And it's not to say that you're just trying to steamroll over them. It's that you're trying to share your experience and get on the same page and trying to get them on your page so that you're all making the decision together, not just handing it back and forth across the wall. STEPH: Yeah, and that was really well said where I think the more that you do collaborate with others and the more that you make decisions with others, the more context you're going to have for why someone else is making a decision, what challenges they're facing. And so again, it comes down to having more information about what that person is going through to then help you be able to be empathetic because I don't think this is a skill you can just turn on. If you don't know anything about somebody, you don't know anything about what they're going through. Being empathetic is going to be incredibly hard. And in this question, they mentioned that they're better at it in some contexts, at certain times with certain personalities. And I think that makes sense because anyone that's more like you, I think you're going to find it easier to be more empathetic. And anyone that has had similar situations, ones that you can relate to, you're going to naturally be more empathetic to. Also, timing is important. Maybe it's the end of the day, and you have already used up your empathy bucket, and you have nothing left to give. And that's just something to be aware of. You may have reached that threshold. And with practice, maybe that bucket will get bigger, and you will have more empathy to give throughout the day. But just be aware when you've also hit that threshold, and maybe you don't have any more to give in that moment. But I do think it's very much a skill that you build with a lot of practice. EDWARD: Yeah, it's absolutely a muscle. You're totally right. You are trying to do it, and the first time you do, it will be very hard. You will be very drained. And you need to recognize that that's okay. You can step away and come back the next day, and it will get a little better. But that's a wonderful point. STEPH: There is a really nice example that you have captured in a thoughtbot blog post that will be sure to link to in the show notes that highlights how difficult it can be to communicate the tone of voice and even how impactful that can be for someone who is reading that message that you have sent, and they don't understand that tone of voice. EDWARD: Yeah, that post was very focused on trying to bring in emotion to a more or less emotionless conversation, which is often text. It's very hard to understand when someone is being sarcastic or angry or bubbly or whatever. Just even silly things like adding emojis can really help in that process of bringing in more emotion and getting that tone across. And I'd say finally to this person who asked the question that the fact that you're thinking about it is already an empathetic thing. Just the fact that you want to get better at this shows that you're already empathetic, and that's really great to hear. STEPH: Yeah, I think that's a really great observation, and I think that's a perfect note for us to end on. So thank you so much to the person that shared this question with us. It is a very interesting question. And I applaud you for being so thoughtful about how to be empathetic with everyone around you. Edward, thank you again for being a guest on the show. For those that are interested in following more of your work or checking out your alternative frontend, where can they find out more about the life of Edward Loveall? EDWARD: You can find the alternative frontend called Scribe; it's scribe.rip. You can find me at edwardloveall.com. And I have links to various social media or email if you want to email me or whatever. And yeah, it's been a pleasure. Thanks for having me, Steph. STEPH: Thanks so much. On that note, shall we wrap up? EDWARD: Let's wrap up. Ta-ta, Stephanie. CHRIS: The show notes for this episode can be found at bikeshed.fm. STEPH: This show is produced and edited by Mandy Moore. CHRIS: 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, as it really helps other folks find the show. STEPH: If you have any feedback for this or any of our other episodes, you can reach us at @_bikeshed or reach me on Twitter @SViccari. CHRIS: And I'm @christoomey STEPH: Or you can reach us at hosts@bikeshed.fm via email. CHRIS: Thanks so much for listening to The Bike Shed, and we'll see you next week. All: Byeeeeeeeeeeee! Announcer: This podcast was brought to you by thoughtbot. thoughtbot is your expert design and development partner. Let's make your product and team a success.

Backup Central's Restore it All
Rclone creator Nick Craig-Wood Explains This Powerfool Tool

Backup Central's Restore it All

Play Episode Listen Later Dec 6, 2021 46:38


This week, we talk to Nick Craigwood, the creator and principal developer of rclone, a very popular open-source tool for copying data to and from cloud providers. Rclone is downloaded roughly 250,000 times each month, and has over 30,000 stars on GitHub. There are six core developers, and a great community of users and other developers at rclone.org. We talk a little bit about Nick's development philosophy, which is that he doesn't mind adding features - as long as they don't break backwards compatibility. Then we talk about how rclone works, and what it's like to sync a filesystem to an object store – including support for multi-part uploads and downloads. We also talk about rclone's encryption support, while Nick was “relaxing” on holiday. We then talked about how rclone can be used to minimize the risk of backing up to any one cloud provider, preventing things like what happened during the OVH fire earlier in 2021. We also discuss some strategies, such as backing up directly to two different clouds, versus backing up to one, then syncing to another – and how CloudFlare's R2 might figure into things. Finally, we talk about Nick's plans for rclone's future, such as making their web UI better to increase usability for many more people – while not sacrificing the command line. Join us for a fascinating episode, the first one where we're talking to the creator of the tool in question. Don't forget the drawing for a free e-book version of Modern Data Protection. All you have to do to be eligible is sign up for my newsletter at https://www.backupcentral.com/subscribe-to-our-newsletter/

IGN.com - Daily Fix (Video)
Santa Claus Is Coming to Battlefield 2042, and Some Players Aren't Happy About It - IGN Daily Fix

IGN.com - Daily Fix (Video)

Play Episode Listen Later Dec 3, 2021


On today's IGN The Fix: Games, Battlefield 2042's latest update has, possibly inadvertently, revealed some upcoming skins for the game - and many players don't seem pleased that 'Father Winter' is coming to town. Battlefield 2042's Update #3 adds weekly missions, improvements to menu UI, and over 150 gameplay fixes - but it also seems to include a range of new cosmetics. As shown in the tweet below, some of the Specialist skins included are a little outside of Battlefield's more serious norm, including a Father Winter skin for Boris that sees him sporting a Santa-like cloak and a white beard. Halo Infinite players are learning how to put aside their differences and communicate in one of the world's most sacred languages - teabag dancing. In a clip posted by Reddit user Local_Floridian , the player can be seen trading weapons with an enemy player during a match. There's a new wristwatch based on Cyberpunk 2077 that you can preorder right now. CD Projeckt Red is partnering up with Blonie Watches to release the T-2077, a limited edition wristwatch born out of the dystopian setting of Cyberpunk 2077. Narz has all that in your Daily Fix!

IGN.com - Daily Fix (Video)
Santa Claus Is Coming to Battlefield 2042, and Some Players Aren't Happy About It - IGN Daily Fix

IGN.com - Daily Fix (Video)

Play Episode Listen Later Dec 3, 2021


On today's IGN The Fix: Games, Battlefield 2042's latest update has, possibly inadvertently, revealed some upcoming skins for the game - and many players don't seem pleased that 'Father Winter' is coming to town. Battlefield 2042's Update #3 adds weekly missions, improvements to menu UI, and over 150 gameplay fixes - but it also seems to include a range of new cosmetics. As shown in the tweet below, some of the Specialist skins included are a little outside of Battlefield's more serious norm, including a Father Winter skin for Boris that sees him sporting a Santa-like cloak and a white beard. Halo Infinite players are learning how to put aside their differences and communicate in one of the world's most sacred languages - teabag dancing. In a clip posted by Reddit user Local_Floridian , the player can be seen trading weapons with an enemy player during a match. There's a new wristwatch based on Cyberpunk 2077 that you can preorder right now. CD Projeckt Red is partnering up with Blonie Watches to release the T-2077, a limited edition wristwatch born out of the dystopian setting of Cyberpunk 2077. Narz has all that in your Daily Fix!

CodePen Radio
344: With Aaron Iker

CodePen Radio

Play Episode Listen Later Dec 1, 2021


Today I get the pleasure of talking with Aaron Iker. Aaron builds incredibly delightful bits and bobs of UI that give you the feeling of hey, I bet I could actually use this! And that’s exactly what Aaron wants you to do. He takes care to make sure the code is easy for you to […]

Screaming in the Cloud
Keeping the Chaos Searchable with Thomas Hazel

Screaming in the Cloud

Play Episode Listen Later Nov 30, 2021 44:43


About ThomasThomas Hazel is Founder, CTO, and Chief Scientist of ChaosSearch. He is a serial entrepreneur at the forefront of communication, virtualization, and database technology and the inventor of ChaosSearch's patented IP. Thomas has also patented several other technologies in the areas of distributed algorithms, virtualization and database science. He holds a Bachelor of Science in Computer Science from University of New Hampshire, Hall of Fame Alumni Inductee, and founded both student & professional chapters of the Association for Computing Machinery (ACM).Links:ChaosSearch: https://www.chaossearch.io 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: This episode is sponsored in part by my friends at ThinkstCanary. Most companies find out way too late that they've been breached. ThinksCanary changes this and I love how they do it. Deploy canaries and canary tokens in minutes and then forget about them. What's great is the attackers tip their hand by touching them, giving you one alert, when it matters. I use it myself and I only remember this when I get the weekly update with a “we're still here, so you're aware” from them. It's glorious! There is zero admin overhead  to this, there are effectively no false positives unless I do something foolish. Canaries are deployed and loved on all seven continents. You can check out what people are saying at canary.love. And, their Kub config canary token is new and completely free as well. You can do an awful lot without paying them a dime, which is one of the things I love about them. It is useful stuff and not an, “ohh, I wish I had money.” It is speculator! Take a look; that's canary.love because it's genuinely rare to find a security product that people talk about in terms of love. It really is a unique thing to see. Canary.love. Thank you to ThinkstCanary for their support of my ridiculous, ridiculous non-sense.   Corey: This episode is sponsored in part by our friends at Vultr. Spelled V-U-L-T-R because they're all about helping save money, including on things like, you know, vowels. So, what they do is they are a cloud provider that provides surprisingly high performance cloud compute at a price that—while sure they claim its better than AWS pricing—and when they say that they mean it is less money. Sure, I don't dispute that but what I find interesting is that it's predictable. They tell you in advance on a monthly basis what it's going to going to cost. They have a bunch of advanced networking features. They have nineteen global locations and scale things elastically. Not to be confused with openly, because apparently elastic and open can mean the same thing sometimes. They have had over a million users. Deployments take less that sixty seconds across twelve pre-selected operating systems. Or, if you're one of those nutters like me, you can bring your own ISO and install basically any operating system you want. Starting with pricing as low as $2.50 a month for Vultr cloud compute they have plans for developers and businesses of all sizes, except maybe Amazon, who stubbornly insists on having something to scale all on their own. Try Vultr today for free by visiting: vultr.com/screaming, and you'll receive a $100 in credit. Thats v-u-l-t-r.com slash screaming.Corey: Welcome to Screaming in the Cloud. I'm Corey Quinn. This promoted episode is brought to us by our friends at ChaosSearch.We've been working with them for a long time; they've sponsored a bunch of our nonsense, and it turns out that we've been talking about them to our clients since long before they were a sponsor because it actually does what it says on the tin. Here to talk to us about that in a few minutes is Thomas Hazel, ChaosSearch's CTO and founder. First, Thomas, nice to talk to you again, and as always, thanks for humoring me.Thomas: [laugh]. Hi, Corey. Always great to talk to you. And I enjoy these conversations that sometimes go up and down, left and right, but I look forward to all the fun we're going to have.Corey: So, my understanding of ChaosSearch is probably a few years old because it turns out, I don't spend a whole lot of time meticulously studying your company's roadmap in the same way that you presumably do. When last we checked in with what the service did-slash-does, you are effectively solving the problem of data movement and querying that data. The idea behind data warehouses is generally something that's shoved onto us by cloud providers where, “Hey, this data is going to be valuable to you someday.” Data science teams are big proponents of this because when you're storing that much data, their salaries look relatively reasonable by comparison. And the ChaosSearch vision was, instead of copying all this data out of an object store and storing it on expensive disks, and replicating it, et cetera, what if we queried it in place in a somewhat intelligent manner?So, you take the data and you store it, in this case, in S3 or equivalent, and then just query it there, rather than having to move it around all over the place, which of course, then incurs data transfer fees, you're storing it multiple times, and it's never in quite the format that you want it. That was the breakthrough revelation, you were Elasticsearch—now OpenSearch—API compatible, which was great. And that was, sort of, a state of the art a year or two ago. Is that generally correct?Thomas: No, you nailed our mission statement. No, you're exactly right. You know, the value of cloud object stores, S3, the elasticity, the durability, all these wonderful things, the problem was you couldn't get any value out of it, and you had to move it out to these siloed solutions, as you indicated. So, you know, our mission was exactly that, transformed customers' cloud storage into an analytical database, a multi-model analytical database, where our first use case was search and log analytics, replacing the ELK stack and also replacing the data pipeline, the schema management, et cetera. We automate the entire step, raw data to insights.Corey: It's funny we're having this conversation today. Earlier, today, I was trying to get rid of a relatively paltry 200 gigs or so of small files on an EFS volume—you know, Amazon's version of NFS; it's like an NFS volume except you're paying Amazon for the privilege—great. And it turns out that it's a whole bunch of operations across a network on a whole bunch of tiny files, so I had to spin up other instances that were not getting backed by spot terminations, and just firing up a whole bunch of threads. So, now the load average on that box is approaching 300, but it's plowing through, getting rid of that data finally.And I'm looking at this saying this is a quarter of a terabyte. Data warehouses are in the petabyte range. Oh, I begin to see aspects of the problem. Even searching that kind of data using traditional tooling starts to break down, which is sort of the revelation that Google had 20-some-odd years ago, and other folks have since solved for, but this is the first time I've had significant data that wasn't just easily searched with a grep. For those of you in the Unix world who understand what that means, condolences. We're having a support group meeting at the bar.Thomas: Yeah. And you know, I always thought, what if you could make cloud object storage like S3 high performance and really transform it into a database? And so that warehouse capability, that's great. We like that. However to manage it, to scale it, to configure it, to get the data into that, was the problem.That was the promise of a data lake, right? This simple in, and then this arbitrary schema on read generic out. The problem next came, it became swampy, it was really hard, and that promise was not delivered. And so what we're trying to do is get all the benefits of the data lake: simple in, so many services naturally stream to cloud storage. Shoot, I would say every one of our customers are putting their data in cloud storage because their data pipeline to their warehousing solution or Elasticsearch may go down and they're worried they'll lose the data.So, what we say is what if you just said activate that data lake and get that ELK use case, get that BI use case without that data movement, as you indicated, without that ETL-ing, without that data pipeline that you're worried is going to fall over. So, that vision has been Chaos. Now, we haven't talked in, you know, a few years, but this idea that we're growing beyond what we are just going after logs, we're going into new use cases, new opportunities, and I'm looking forward to discussing with you.Corey: It's a great answer that—though I have to call out that I am right there with you as far as inappropriately using things as databases. I know that someone is going to come back and say, “Oh, S3 is a database. You're dancing around it. Isn't that what Athena is?” Which is named, of course, after the Greek Goddess of spending money on AWS? And that is a fair question, but to my understanding, there's a schema story behind that does not apply to what you're doing.Thomas: Yeah, and that is so crucial is that we like the relational access. The time-cost complexity to get it into that, as you mentioned, scaled access, I mean, it could take weeks, months to test it, to configure it, to provision it, and imagine if you got it wrong; you got to redo it again. And so our unique service removes all that data pipeline schema management. And because of our innovation because of our service, you do all schema definition, on the fly, virtually, what we call views on your index data, that you can publish an elastic index pattern for that consumption, or a relational table for that consumption. And that's kind of leading the witness into things that we're coming out with this quarter into 2022.Corey: I have to deal with a little bit of, I guess, a shame here because yeah, I'm doing exactly what you just described. I'm using Athena to wind up querying our customers' Cost and Usage Reports, and we spend a couple hundred bucks a month on AWS Glue to wind up massaging those into the way that they expect it to be. And it's great. Ish. We hook it up to Tableau and can make those queries from it, and all right, it's great.It just, burrr goes the money printer, and we somehow get access and insight to a lot of valuable data. But even that is knowing exactly what the format is going to look like. Ish. I mean, Cost and Usage Reports from Amazon are sort of aspirational when it comes to schema sometimes, but here we are. And that's been all well and good.But now the idea of log files, even looking at the base case of sending logs from an application, great. Nginx, or Apache, or [unintelligible 00:07:24], or any of the various web servers out there all tend to use different logging formats just to describe the same exact things, start spreading that across custom in-house applications and getting signal from that is almost impossible. “Oh,” people say, “So, we'll use a structured data format.” Now, you're putting log and structuring requirements on application developers who don't care in the first place, and now you have a mess on your hands.Thomas: And it really is a mess. And that challenge is, it's so problematic. And schemas changing. You know, we have customers and one reasons why they go with us is their log data is changing; they didn't expect it. Well, in your data pipeline, and your Athena database, that breaks. That brings the system down.And so our system uniquely detects that and manages that for you and then you can pick and choose how you want to export in these views dynamically. So, you know, it's really not rocket science, but the problem is, a lot of the technology that we're using is designed for static, fixed thinking. And then to scale it is problematic and time-consuming. So, you know, Glue is a great idea, but it has a lot of sharp [pebbles 00:08:26]. Athena is a great idea but also has a lot of problems.And so that data pipeline, you know, it's not for digitally native, active, new use cases, new workloads coming up hourly, daily. You think about this long-term; so a lot of that data prep pipelining is something we address so uniquely, but really where the customer cares is the value of that data, right? And so if you're spending toils trying to get the data into a database, you're not answering the questions, whether it's for security, for performance, for your business needs. That's the problem. And you know, that agility, that time-to-value is where we're very uniquely coming in because we start where your data is raw and we automate the process all the way through.Corey: So, when I look at the things that I have stuffed into S3, they generally fall into a couple of categories. There are a bunch of logs for things I never asked for nor particularly wanted, but AWS is aggressive about that, first routing through CloudTrail so you can get charged 50-cent per gigabyte ingested. Awesome. And of course, large static assets, images I have done something to enter colloquially now known as shitposts, which is great. Other than logs, what could you possibly be storing in S3 that lends itself to, effectively, the type of analysis that you built around this?Thomas: Well, our first use case was the classic log use cases, app logs, web service logs. I mean, CloudTrail, it's famous; we had customers that gave up on elastic, and definitely gave up on relational where you can do a couple changes and your permutation of attributes for CloudTrail is going to put you to your knees. And people just say, “I give up.” Same thing with Kubernetes logs. And so it's the classic—whether it's CSV, where it's JSON, where it's log types, we auto-discover all that.We also allow you, if you want to override that and change the parsing capabilities through a UI wizard, we do discover what's in your buckets. That term data swamp, and not knowing what's in your bucket, we do a facility that will index that data, actually create a report for you for knowing what's in. Now, if you have text data, if you have log data, if you have BI data, we can bring it all together, but the real pain is at the scale. So classically, app logs, system logs, many devices sending IoT-type streams is where we really come in—Kubernetes—where they're dealing with terabytes of data per day, and managing an ELK cluster at that scale. Particularly on a Black Friday.Shoot, some of our customers like—Klarna is one of them; credit card payment—they're ramping up for Black Friday, and one of the reasons why they chose us is our ability to scale when maybe you're doing a terabyte or two a day and then it goes up to twenty, twenty-five. How do you test that scale? How do you manage that scale? And so for us, the data streams are, traditionally with our customers, the well-known log types, at least in the log use cases. And the challenge is scaling it, is getting access to it, and that's where we come in.Corey: I will say the last time you were on the show a couple of years ago, you were talking about the initial logging use case and you were speaking, in many cases aspirationally, about where things were going. What a difference a couple years is made. Instead of talking about what hypothetical customers might want, or what—might be able to do, you're just able to name-drop them off the top of your head, you have scaled to approximately ten times the number of employees you had back then. You've—Thomas: Yep. Yep.Corey: —raised, I think, a total of—what, 50 million?—since then.Thomas: Uh, 60 now. Yeah.Corey: Oh, 60? Fantastic.Thomas: Yeah, yeah.Corey: Congrats. And of course, how do you do it? By sponsoring Last Week in AWS, as everyone should. I'm taking clear credit for that every time someone announces around, that's the game. But no, there is validity to it because telling fun stories and sponsoring exciting things like this only carry you so far. At some point, customers have to say, yeah, this is solving a pain that I have; I'm willing to pay you money to solve it.And you've clearly gotten to a point where you are addressing the needs of those customers at a pretty fascinating clip. It's bittersweet from my perspective because it seems like the majority of your customers have not come from my nonsense anymore. They're finding you through word of mouth, they're finding through more traditional—read as boring—ad campaigns, et cetera, et cetera. But you've built a brand that extends beyond just me. I'm no longer viewed as the de facto ombudsperson for any issue someone might have with ChaosSearch on Twitters. It's kind of, “Aww, the company grew up. What happened there?”Thomas: No, [laugh] listen, this you were great. We reached out to you to tell our story, and I got to be honest. A lot of people came by, said, “I heard something on Corey Quinn's podcasts,” or et cetera. And it came a long way now. Now, we have, you know, companies like Equifax, multi-cloud—Amazon and Google.They love the data lake philosophy, the centralized, where use cases are now available within days, not weeks and months. Whether it's logs and BI. Correlating across all those data streams, it's huge. We mentioned Klarna, [APM Performance 00:13:19], and, you know, we have Armor for SIEM, and Blackboard for [Observers 00:13:24].So, it's funny—yeah, it's funny, when I first was talking to you, I was like, “What if? What if we had this customer, that customer?” And we were building the capabilities, but now that we have it, now that we have customers, yeah, I guess, maybe we've grown up a little bit. But hey, listen to you're always near and dear to our heart because we remember, you know, when you stop[ed by our booth at re:Invent several times. And we're coming to re:Invent this year, and I believe you are as well.Corey: Oh, yeah. But people listening to this, it's if they're listening the day it's released, this will be during re:Invent. So, by all means, come by the ChaosSearch booth, and see what they have to say. For once they have people who aren't me who are going to be telling stories about these things. And it's fun. Like, I joke, it's nothing but positive here.It's interesting from where I sit seeing the parallels here. For example, we have both had—how we say—adult supervision come in. You have a CEO, Ed, who came over from IBM Storage. I have Mike Julian, whose first love language is of course spreadsheets. And it's great, on some level, realizing that, wow, this company has eclipsed my ability to manage these things myself and put my hands-on everything. And eventually, you have to start letting go. It's a weird growth stage, and it's a heck of a transition. But—Thomas: No, I love it. You know, I mean, I think when we were talking, we were maybe 15 employees. Now, we're pushing 100. We brought on Ed Walsh, who's an amazing CEO. It's funny, I told him about this idea, I invented this technology roughly eight years ago, and he's like, “I love it. Let's do it.” And I wasn't ready to do it.So, you know, five, six years ago, I started the company always knowing that, you know, I'd give him a call once we got the plane up in the air. And it's been great to have him here because the next level up, right, of execution and growth and business development and sales and marketing. So, you're exactly right. I mean, we were a young pup several years ago, when we were talking to you and, you know, we're a little bit older, a little bit wiser. But no, it's great to have Ed here. And just the leadership in general; we've grown immensely.Corey: Now, we are recording this in advance of re:Invent, so there's always the question of, “Wow, are we going to look really silly based upon what is being announced when this airs?” Because it's very hard to predict some things that AWS does. And let's be clear, I always stay away from predictions, just because first, I have a bit of a knack for being right. But also, when I'm right, people will think, “Oh, Corey must have known about that and is leaking,” whereas if I get it wrong, I just look like a fool. There's no win for me if I start doing the predictive dance on stuff like that.But I have to level with you, I have been somewhat surprised that, at least as of this recording, AWS has not moved more in your direction because storing data in S3 is kind of their whole thing, and querying that data through something that isn't Athena has been a bit of a reach for them that they're slowly starting to wrap their heads around. But their UltraWarm nonsense—which is just, okay, great naming there—what is the point of continually having a model where oh, yeah, we're going to just age it out, the stuff that isn't actively being used into S3, rather than coming up with a way to query it there. Because you've done exactly that, and please don't take this as anything other than a statement of fact, they have better access to what S3 is doing than you do. You're forced to deal with this thing entirely from a public API standpoint, which is fine. They can theoretically change the behavior of aspects of S3 to unlock these use cases if they chose to do so. And they haven't. Why is it that you're the only folks that are doing this?Thomas: No, it's a great question, and I'll give them props for continuing to push the data lake [unintelligible 00:17:09] to the cloud providers' S3 because it was really where I saw the world. Lakes, I believe in. I love them. They love them. However, they promote the move the data out to get access, and it seems so counterintuitive on why wouldn't you leave it in and put these services, make them more intelligent? So, it's funny, I've trademark ‘Smart Object Storage,' I actually trademarked—I think you [laugh] were a part of this—‘UltraHot,' right? Because why would you want UltraWarm when you can have UltraHot?And the reason, I feel, is that if you're using Parquet for Athena [unintelligible 00:17:40] store, or Lucene for Elasticsearch, these two index technologies were not designed for cloud storage, for real-time streaming off of cloud storage. So, the trick is, you have to build UltraWarm, get it off of what they consider cold S3 into a more warmer memory or SSD type access. What we did, what the invention I created was, that first read is hot. That first read is fast.Snowflake is a good example. They give you a ten terabyte demo example, and if you have a big instance and you do that first query, maybe several orders or groups, it could take an hour to warm up. The second query is fast. Well, what if the first query is in seconds as well? And that's where we really spent the last five, six years building out the tech and the vision behind this because I like to say you go to a doctor and say, “Hey, Doc, every single time I move my arm, it hurts.” And the doctor says, “Well, don't move your arm.”It's things like that, to your point, it's like, why wouldn't they? I would argue, one, you have to believe it's possible—we're proving that it is—and two, you have to have the technology to do it. Not just the index, but the architecture. So, I believe they will go this direction. You know, little birdies always say that all these companies understand this need.Shoot, Snowflake is trying to be lake-y; Databricks is trying to really bring this warehouse lake concept. But you still do all the pipelining; you still have to do all the data management the way that you don't want to do. It's not a lake. And so my argument is that it's innovation on why. Now, they have money; they have time, but, you know, we have a big head start.Corey: I remembered last year at re:Invent they released a, shall we say, significant change to S3 that it enabled read after write consistency, which is awesome, for again, those of us in the business of misusing things as databases. But for some folks, the majority of folks I would say, it was a, “I don't know what that means and therefore I don't care.” And that's fine. I have no issue with that. There are other folks, some of my customers for example, who are suddenly, “Wait a minute. This means I can sunset this entire janky sidecar metadata system that is designed to make sure that we are consistent in our use of S3 because it now does it automatically under the hood?” And that's awesome. Does that change mean anything for ChaosSearch?Thomas: It doesn't because of our architecture. We're append-only, write-once scenario, so a lot of update-in-place viewpoints. My viewpoint is that if you're seeing S3 as the database and you need that type of consistency, it make sense of why you'd want it, but because of our distributive fabric, our stateless architecture, our append-only nature, it really doesn't affect us.Now, I talked to the S3 team, I said, “Please if you're coming up with this feature, it better not be slower.” I want S3 to be fast, right? And they said, “No, no. It won't affect performance.” I'm like, “Okay. Let's keep that up.”And so to us, any type of S3 capability, we'll take advantage of it if benefits us, whether it's consistency as you indicated, performance, functionality. But we really keep the constructs of S3 access to really limited features: list, put, get. [roll-on 00:20:49] policies to give us read-only access to your data, and a location to write our indices into your account, and then are distributed fabric, our service, acts as those indices and query them or searches them to resolve whatever analytics you need. So, we made it pretty simple, and that is allowed us to make it high performance.Corey: I'll take it a step further because you want to talk about changes since the last time we spoke, it used to be that this was on top of S3, you can store your data anywhere you want, as long as it's S3 in the customer's account. Now, you're also supporting one-click integration with Google Cloud's object storage, which, great. That does mean though, that you're not dependent upon provider-specific implementations of things like a consistency model for how you've built things. It really does use the lowest common denominator—to my understanding—of object stores. Is that something that you're seeing broad adoption of, or is this one of those areas where, well, you have one customer on a different provider, but almost everything lives on the primary? I'm curious what you're seeing for adoption models across multiple providers?Thomas: It's a great question. We built an architecture purposely to be cloud-agnostic. I mean, we use compute in a containerized way, we use object storage in a very simple construct—put, get, list—and we went over to Google because that made sense, right? We have customers on both sides. I would say Amazon is the gorilla, but Google's trying to get there and growing.We had a big customer, Equifax, that's on both Amazon and Google, but we offer the same service. To be frank, it looks like the exact same product. And it should, right? Whether it's Amazon Cloud, or Google Cloud, multi-select and I want to choose either one and get the other one. I would say that different business types are using each one, but our bulk of the business isn't Amazon, but we just this summer released our SaaS offerings, so it's growing.And you know, it's funny, you never know where it comes from. So, we have one customer—actually DigitalRiver—as one of our customers on Amazon for logs, but we're growing in working together to do a BI on GCP or on Google. And so it's kind of funny; they have two departments on two different clouds with two different use cases. And so do they want unification? I'm not sure, but they definitely have their BI on Google and their operations in Amazon. It's interesting.Corey: You know its important to me that people learn how to use the cloud effectively. Thats why I'm so glad that Cloud Academy is sponsoring my ridiculous non-sense. They're a great way to build in demand tech skills the way that, well personally, I learn best which I learn by doing not by reading. They have live cloud labs that you can run in real environments that aren't going to blow up your own bill—I can't stress how important that is. Visit cloudacademy.com/corey. Thats C-O-R-E-Y, don't drop the “E.” Use Corey as a promo-code as well. You're going to get a bunch of discounts on it with a lifetime deal—the price will not go up. It is limited time, they assured me this is not one of those things that is going to wind up being a rug pull scenario, oh no no. Talk to them, tell me what you think. Visit: cloudacademy.com/corey,  C-O-R-E-Y and tell them that I sent you!Corey: I know that I'm going to get letters for this. So, let me just call it out right now. Because I've been a big advocate of pick a provider—I care not which one—and go all-in on it. And I'm sitting here congratulating you on extending to another provider, and people are going to say, “Ah, you're being inconsistent.”No. I'm suggesting that you as a provider have to meet your customers where they are because if someone is sitting in GCP and your entire approach is, “Step one, migrate those four petabytes of data right on over here to AWS,” they're going to call you that jackhole that you would be by making that suggestion and go immediately for option B, which is literally anything that is not ChaosSearch, just based upon that core misunderstanding of their business constraints. That is the way to think about these things. For a vendor position that you are in as an ISV—Independent Software Vendor for those not up on the lingo of this ridiculous industry—you have to meet customers where they are. And it's the right move.Thomas: Well, you just said it. Imagine moving terabytes and petabytes of data.Corey: It sounds terrific if I'm a salesperson for one of these companies working on commission, but for the rest of us, it sounds awful.Thomas: We really are a data fabric across clouds, within clouds. We're going to go where the data is and we're going to provide access to where that data lives. Our whole philosophy is the no-movement movement, right? Don't move your data. Leave it where it is and provide access at scale.And so you may have services in Google that naturally stream to GCS; let's do it there. Imagine moving that amount of data over to Amazon to analyze it, and vice versa. 2020, we're going to be in Azure. They're a totally different type of business, users, and personas, but you're getting asked, “Can you support Azure?” And the answer is, “Yes,” and, “We will in 2022.”So, to us, if you have cloud storage, if you have compute, and it's a big enough business opportunity in the market, we're there. We're going there. When we first started, we were talking to MinIO—remember that open-source, object storage platform?—We've run on our laptops, we run—this [unintelligible 00:25:04] Dr. Seuss thing—“We run over here; we run over there; we run everywhere.”But the honest truth is, you're going to go with the big cloud providers where the business opportunity is, and offer the same solution because the same solution is valued everywhere: simple in; value out; cost-effective; long retention; flexibility. That sounds so basic, but you mentioned this all the time with our Rube Goldberg, Amazon diagrams we see time and time again. It's like, if you looked at that and you were from an alien planet, you'd be like, “These people don't know what they're doing. Why is it so complicated?” And the simple answer is, I don't know why people think it's complicated.To your point about Amazon, why won't they do it? I don't know, but if they did, things would be different. And being honest, I think people are catching on. We do talk to Amazon and others. They see the need, but they also have to build it; they have to invent technology to address it. And using Parquet and Lucene are not the answer.Corey: Yeah, it's too much of a demand on the producers of that data rather than the consumer. And yeah, I would love to be able to go upstream to application developers and demand they do things in certain ways. It turns out as a consultant, you have zero authority to do that. As a DevOps team member, you have limited ability to influence it, but it turns out that being the ‘department of no' quickly turns into being the ‘department of unemployment insurance' because no one wants to work with you. And collaboration—contrary to what people wish to believe—is a key part of working in a modern workplace.Thomas: Absolutely. And it's funny, the demands of IT are getting harder; the actual getting the employees to build out the solutions are getting harder. And so a lot of that time is in the pipeline, is the prep, is the schema, the sharding, and et cetera, et cetera, et cetera. My viewpoint is that should be automated away. More and more databases are being autotune, right?This whole knobs and this and that, to me, Glue is a means to an end. I mean, let's get rid of it. Why can't Athena know what to do? Why can't object storage be Athena and vice versa? I mean, to me, it seems like all this moving through all these services, the classic Amazon viewpoint, even their diagrams of having this centralized repository of S3, move it all out to your services, get results, put it back in, then take it back out again, move it around, it just doesn't make much sense. And so to us, I love S3, love the service. I think it's brilliant—Amazon's first service, right?—but from there get a little smarter. That's where ChaosSearch comes in.Corey: I would argue that S3 is in fact, a modern miracle. And one of those companies saying, “Oh, we have an object store; it's S3 compatible.” It's like, “Yeah. We have S3 at home.” Look at S3 at home, and it's just basically a series of failing Raspberry Pis.But you have this whole ecosystem of things that have built up and sprung up around S3. It is wildly understated just how scalable and massive it is. There was an academic paper recently that won an award on how they use automated reasoning to validate what is going on in the S3 environment, and they talked about hundreds of petabytes in some cases. And folks are saying, ah, S3 is hundreds of petabytes. Yeah, I have clients storing hundreds of petabytes.There are larger companies out there. Steve Schmidt, Amazon's CISO, was recently at a Splunk keynote where he mentioned that in security info alone, AWS itself generates 500 petabytes a day that then gets reduced down to a bunch of stuff, and some of it gets loaded into Splunk. I think. I couldn't really hear the second half of that sentence because of the sound of all of the Splunk salespeople in that room becoming excited so quickly you could hear it.Thomas: [laugh]. I love it. If I could be so bold, those S3 team, they're gods. They are amazing. They created such an amazing service, and when I started playing with S3 now, I guess, 2006 or 7, I mean, we were using for a repository, URL access to get images, I was doing a virtualization [unintelligible 00:29:05] at the time—Corey: Oh, the first time I played with it, “This seems ridiculous and kind of dumb. Why would anyone use this?” Yeah, yeah. It turns out I'm really bad at predicting the future. Another reason I don't do the prediction thing.Thomas: Yeah. And when I started this company officially, five, six years ago, I was thinking about S3 and I was thinking about HDFS not being a good answer. And I said, “I think S3 will actually achieve the goals and performance we need.” It's a distributed file system. You can run parallel puts and parallel gets. And the performance that I was seeing when the data was a certain way, certain size, “Wait, you can get high performance.”And you know, when I first turned on the engine, now four or five years ago, I was like, “Wow. This is going to work. We're off to the races.” And now obviously, we're more than just an idea when we first talked to you. We're a service.We deliver benefits to our customers both in logs. And shoot, this quarter alone we're coming out with new features not just in the logs, which I'll talk about second, but in a direct SQL access. But you know, one thing that you hear time and time again, we talked about it—JSON, CloudTrail, and Kubernetes; this is a real nightmare, and so one thing that we've come out with this quarter is the ability to virtually flatten. Now, you heard time and time again, where, “Okay. I'm going to pick and choose my data because my database can't handle whether it's elastic, or say, relational.” And all of a sudden, “Shoot, I don't have that. I got to reindex that.”And so what we've done is we've created a index technology that we're always planning to come out with that indexes the JSON raw blob, but in the data refinery have, post-index you can select how to unflatten it. Why is that important? Because all that tooling, whether it's elastic or SQL, is now available. You don't have to change anything. Why is Snowflake and BigQuery has these proprietary JSON APIs that none of these tools know how to use to get access to the data?Or you pick and choose. And so when you have a CloudTrail, and you need to know what's going on, if you picked wrong, you're in trouble. So, this new feature we're calling ‘Virtual Flattening'—or I don't know what we're—we have to work with the marketing team on it. And we're also bringing—this is where I get kind of excited where the elastic world, the ELK world, we're bringing correlations into Elasticsearch. And like, how do you do that? They don't have the APIs?Well, our data refinery, again, has the ability to correlate index patterns into one view. A view is an index pattern, so all those same constructs that you had in Kibana, or Grafana, or Elastic API still work. And so, no more denormalizing, no more trying to hodgepodge query over here, query over there. You're actually going to have correlations in Elastic, natively. And we're excited about that.And one more push on the future, Q4 into 2022; we have been given early access to S3 SQL access. And, you know, as I mentioned, correlations in Elastic, but we're going full in on publishing our [TPCH 00:31:56] report, we're excited about publishing those numbers, as well as not just giving early access, but going GA in the first of the year, next year.Corey: I look forward to it. This is also, I guess, it's impossible to have a conversation with you, even now, where you're not still forward-looking about what comes next. Which is natural; that is how we get excited about the things that we're building. But so much less of what you're doing now in our conversations have focused around what's coming, as opposed to the neat stuff you're already doing. I had to double-check when we were talking just now about oh, yeah, is that Google cloud object store support still something that is roadmapped, or is that out in the real world?No, it's very much here in the real world, available today. You can use it. Go click the button, have fun. It's neat to see at least some evidence that not all roadmaps are wishes and pixie dust. The things that you were talking to me about years ago are established parts of ChaosSearch now. It hasn't been just, sort of, frozen in amber for years, or months, or these giant periods of time. Because, again, there's—yeah, don't sell me vaporware; I know how this works. The things you have promised have come to fruition. It's nice to see that.Thomas: No, I appreciate it. We talked a little while ago, now a few years ago, and it was a bit of aspirational, right? We had a lot to do, we had more to do. But now when we have big customers using our product, solving their problems, whether it's security, performance, operation, again—at scale, right? The real pain is, sure you have a small ELK cluster or small Athena use case, but when you're dealing with terabytes to petabytes, trillions of rows, right—billions—when you were dealing trillions, billions are now small. Millions don't even exist, right?And you're graduating from computer science in college and you say the word, “Trillion,” they're like, “Nah. No one does that.” And like you were saying, people do petabytes and exabytes. That's the world we're living in, and that's something that we really went hard at because these are challenging data problems and this is where we feel we uniquely sit. And again, we don't have to break the bank while doing it.Corey: Oh, yeah. Or at least as of this recording, there's a meme going around, again, from an old internal Google Video, of, “I just want to serve five terabytes of traffic,” and it's an internal Google discussion of, “I don't know how to count that low.” And, yeah.Thomas: [laugh].Corey: But there's also value in being able to address things at much larger volume. I would love to see better responsiveness options around things like Deep Archive because the idea of being able to query that—even if you can wait a day or two—becomes really interesting just from the perspective of, at that point, current cost for one petabyte of data in Glacier Deep Archive is 1000 bucks a month. That is ‘why would I ever delete data again?' Pricing.Thomas: Yeah. You said it. And what's interesting about our technology is unlike, let's say Lucene, when you index it, it could be 3, 4, or 5x the raw size, our representation is smaller than gzip. So, it is a full representation, so why don't you store it efficiently long-term in S3? Oh, by the way, with the Glacier; we support Glacier too.And so, I mean, it's amazing the cost of data with cloud storage is dramatic, and if you can make it hot and activated, that's the real promise of a data lake. And, you know, it's funny, we use our own service to run our SaaS—we log our own data, we monitor, we alert, have dashboards—and I can't tell you how cheap our service is to ourselves, right? Because it's so cost-effective for long-tail, not just, oh, a few weeks; we store a whole year's worth of our operational data so we can go back in time to debug something or figure something out. And a lot of that's savings. Actually, huge savings is cloud storage with a distributed elastic compute fabric that is serverless. These are things that seem so obvious now, but if you have SSDs, and you're moving things around, you know, a team of IT professionals trying to manage it, it's not cheap.Corey: Oh, yeah, that's the story. It's like, “Step one, start paying for using things in cloud.” “Okay, great. When do I stop paying?” “That's the neat part. You don't.” And it continues to grow and build.And again, this is the thing I learned running a business that focuses on this, the people working on this, in almost every case, are more expensive than the infrastructure they're working on. And that's fine. I'd rather pay people than technologies. And it does help reaffirm, on some level, that—people don't like this reminder—but you have to generate more value than you cost. So, when you're sitting there spending all your time trying to avoid saving money on, “Oh, I've listened to ChaosSearch talk about what they do a few times. I can probably build my own and roll it at home.”It's, I've seen the kind of work that you folks have put into this—again, you have something like 100 employees now; it is not just you building this—my belief has always been that if you can buy something that gets you 90, 95% of where you are, great. Buy it, and then yell at whoever selling it to you for the rest of it, and that'll get you a lot further than, “We're going to do this ourselves from first principles.” Which is great for a weekend project for just something that you have a passion for, but in production mistakes show. I've always been a big proponent of buying wherever you can. It's cheaper, which sounds weird, but it's true.Thomas: And we do the same thing. We have single-sign-on support; we didn't build that ourselves, we use a service now. Auth0 is one of our providers now that owns that [crosstalk 00:37:12]—Corey: Oh, you didn't roll your own authentication layer? Why ever not? Next, you're going to tell me that you didn't roll your own payment gateway when you wound up charging people on your website to sign up?Thomas: You got it. And so, I mean, do what you do well. Focus on what you do well. If you're repeating what everyone seems to do over and over again, time, costs, complexity, and… service, it makes sense. You know, I'm not trying to build storage; I'm using storage. I'm using a great, wonderful service, cloud object storage.Use whats works, whats works well, and do what you do well. And what we do well is make cloud object storage analytical and fast. So, call us up and we'll take away that 2 a.m. call you have when your cluster falls down, or you have a new workload that you are going to go to the—I don't know, the beach house, and now the weekend shot, right? Spin it up, stream it in. We'll take over.Corey: Yeah. So, if you're listening to this and you happen to be at re:Invent, which is sort of an open question: why would you be at re:Invent while listening to a podcast? And then I remember how long the shuttle lines are likely to be, and yeah. So, if you're at re:Invent, make it on down to the show floor, visit the ChaosSearch booth, tell them I sent you, watch for the wince, that's always worth doing. Thomas, if people have better decision-making capability than the two of us do, where can they find you if they're not in Las Vegas this week?Thomas: So, you find us online chaossearch.io. We have so much material, videos, use cases, testimonials. You can reach out to us, get a free trial. We have a self-service experience where connect to your S3 bucket and you're up and running within five minutes.So, definitely chaossearch.io. Reach out if you want a hand-held, white-glove experience POV. If you have those type of needs, we can do that with you as well. But we booth on re:Invent and I don't know the booth number, but I'm sure either we've assigned it or we'll find it out.Corey: Don't worry. This year, it is a low enough attendance rate that I'm projecting that you will not be as hard to find in recent years. For example, there's only one expo hall this year. What a concept. If only it hadn't taken a deadly pandemic to get us here.Thomas: Yeah. But you know, we'll have the ability to demonstrate Chaos at the booth, and really, within a few minutes, you'll say, “Wow. How come I never heard of doing it this way?” Because it just makes so much sense on why you do it this way versus the merry-go-round of data movement, and transformation, and schema management, let alone all the sharding that I know is a nightmare, more often than not.Corey: And we'll, of course, put links to that in the [show notes 00:39:40]. Thomas, thank you so much for taking the time to speak with me today. As always, it's appreciated.Thomas: Corey, thank you. Let's do this again.Corey: We absolutely will. Thomas Hazel, CTO and Founder of ChaosSearch. I'm Cloud Economist Corey Quinn, and this is Screaming in the Cloud. If you've enjoyed this podcast episode, please leave a five-star review on your podcast platform of choice, whereas if you've hated this episode, please leave a five-star review on your podcast platform of choice along with an angry comment because I have dared to besmirch the honor of your homebrewed object store, running on top of some trusty and reliable Raspberries Pie.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.

The Bike Shed
317: Burn The Ships!

The Bike Shed

Play Episode Listen Later Nov 30, 2021 41:41


Steph gives an update about RSpec focus and how she often forgets to remove the focus feature from tests. She figured out two solutions: one using Rubocop, and the other from a Twitter user, suggesting using a GitHub gist. She also suggests that if you're one of those people who misses being in an office environment, you check out soundofcolleagues.com for ambient office noise selection. Chris has been struggling to actually do any coding and is adjusting to doing more product management and shares some strategies that have been helping him. They answer a listener question about dealing with large pull requests and how it's hard to recognize a good seam to break them up when you are in the thick of one. This episode is brought to you by ScoutAPM (https://scoutapm.com/bikeshed). Give Scout a try for free today and Scout will donate $5 to the open source project of your choice when you deploy. Twitter note re: rspec-retry (https://twitter.com/jasonrudolph/status/1458416077726158852) soundofcolleagues.com (https://soundofcolleagues.com) mailcheck (https://github.com/mailcheck/mailcheck) Inertia.js (https://inertiajs.com/) Svelte (https://svelte.dev/) devise (https://github.com/heartcombo/devise) clearance (https://github.com/thoughtbot/clearance) Become a Sponsor (https://thoughtbot.com/sponsorship) of The Bike Shed! Transcript: CHRIS: One day, I'll grow up. It's fine. I look forward to that day. But today, I don't think it's that day. Hello and welcome to another episode of The Bike Shed, a weekly podcast from your friends at thoughtbot about developing great software. I'm Chris Toomey. STEPH: And I'm Steph Viccari. CHRIS: And together, we're here to share a bit of what we've learned along the way. So, Steph, what's new in your world? STEPH: Hey, Chris. Well, in some fun news, Utah started his professional training as of this morning, which I'm very excited about. Because we've been working with him to work on being good with walking on a leash, FYI, he's not, [laughs] and also being good about not jumping on people. And essentially, being a really good roommate. And he started training today, and we are using an e-collar, which initially I was really hesitant about because I don't want it to hurt him in any way. But now that I have felt the e-collar myself and we've had a first day with it, it's going super well. I'm very excited for where this is headed. CHRIS: That's very exciting. When does he start paying rent? STEPH: Ooh. I'll have to check with him, or I guess I have set those boundaries. That's my job. CHRIS: I just figured that's a core part of being a good roommate. But maybe we've got baby steps or doggy steps to get there. But that's exciting. I'm glad [laughs] that the first day of training is going well. STEPH: Yeah, it's going great. And the place that we're going to the trainer they have horses, and mules, and goats. And so now I have a very cute video of him trying to play with a goat, and the goat was having none of it. But it's still all very cute. In tech-related news, I have an update for when you and I were recently chatting about the RSpec focus and how I mentioned that I often forget to remove the focus feature from tests. And so then that goes up to a PR, and I have to rely on a kind human to let me know, and then I remove it. Or worst-case scenario, it gets merged into the main branch. And for anyone that's not on Twitter, I just wanted to share an update because I also shared something there. But the resolution for what I was looking for there's already a rule that's written into Rubocop, but it's specifically written in the Rubocop RSpec codebase. And with that rule, you can essentially just say, hey, let me know anytime that a test is using the focus metadata, and then make sure to let me know and fail. And then if you don't want to actually include all of Rubocop into your project because Rubocop is pretty opinionated, you can still add Rubocop to your project, but you can specifically add Rubocop RSpec, and then you can say, hey, all other rules disabled by default, but then you can enable that specific rule. So then, that way, you will catch all of your focus tests. There's also another approach that someone on Twitter shared with us recently from Marz Drel. And Marz shared specifically a really nice simple GitHub Gist that documents or exemplifies that you can add an environment variable that checks to say, hey, if we're in CI mode, then add a before hook. And then that before hook will look for any examples that are using that focus metadata, and then it's going to raise. And then if we're not in CI mode, then don't do anything, don't raise, and carry on. And that's just a really nice simple addition if someone didn't want to pull in Rubocop into their project. CHRIS: Both of those definitely sound like great options. I don't think we have Rubocop on the current project that I'm working on. But I think the RSpec focus thing, the metadata one, seems like it'll work great. More generally, I just want to thank folks out there who listen to the show and then write back in like, "Hey, this is probably what you want." There was a similar thread that someone shared around the RSpec::Retry stuff that I was talking about recently and the failure mode there and trying to get that into the Junit Reporter. And so they had some suggestions around that. Jason Rudolph on Twitter reached out, sharing just his initial exploration and thoughts on how it might be possible to extend the XML reports that are generated and capture a flaky test in that way. So that's really interesting. And again, just really love that folks are listening to the things that we say and then even adding on to them and continuing the conversation. So thanks to everybody for sharing those things. STEPH: Yeah, it's incredibly helpful. And then one other fun thing that I'd love to share, and I found this out from someone else at thoughtbot because they had shared it recently. But it's a neat website called soundofcolleagues.com. And I know you've got your laptop in front of you. So if you'll go visit it, it'll be neat to see as we're talking through it. For anyone else that wants to pull it up, too, we'll include a link in the show notes. But it's a neat project that someone started where you can bump up the sounds that you would normally hear in an office. So maybe you want to bump up background noise of people or an open window. There's one specifically for printers and a coffee machine, and keyboards are on there as well. [laughs] I have discovered I am partial open window and partial rain, although rain is just always my go-to. I like the sound of rain for when I'm working. CHRIS: Gentle rain is definitely nice white noise in general. I've seen this for coffee shops, but I haven't seen the particular one. Also, yes, I definitely know how to spell the word colleague on the first of three tries. Definitely didn't have to rely on Google for that one. But yeah, nice site there. I enjoy that. STEPH: I tried the keyboard option that's on there because I was like, oh yeah, I'm totally going to be into this. This is going to be my jam. I don't think it is because I realized that I'm very biased. I like the sound of my own keyboard. So I had to shush the other one and just listen to the rain and the open window. But that's some of the fun things that are going on in my world today. What's new in your world? CHRIS: I'm just now spending a moment with the keyboard sound. It's a very muted keyboard. I want a little more clackety. STEPH: A little more clackety? CHRIS: I was assuming it would be too much clackety, and that would be the problem. But it sounds more mushy. Maybe we can pipe in some of the sound here [laughs] at this point. Or we can link to these sounds, and everyone can dial up the keyboards to 100. But I, too, am partial to the sounds of my own keyboard. But what's new in my world? This past week and I think probably even a little bit more of the prior week, I've been noticing that I've been struggling to actually do any coding, which has been interesting to observe. And again, trying to observe it, not necessarily judge it, although if that's not the thing that we want to be doing, then try and improve that. But mostly trying to observe what's going on, what is taking my time. A lot of it is product management type work. So I am spending a good amount of time trying to gather the different voices and understand what is the work to be done, and then shape that into the backlog and make sure that that's clear and ready for the team to pick up. And then, thankfully, the other two developers that are working on the project are fantastically prolific. So they're often very quickly working through the work that has been set up in front of them. And so I'm trying to then be proactive and respond to the code. But there's almost a cycle to it where I'm just staying out in front of them, but they're catching up with everything that's going on. So it's something that I'm trying again to be intentional about, name, share some of that back up with the group. If there are things that I'm doing that I don't uniquely need to be doing, then let's share as much of that knowledge as possible. But one thing that I will say is the product management, shaping the backlog work is exhausting. I am astonished by just how drained I am at the end of the day. And I'm like, I don't even really feel like I did anything. I didn't write any code, but I am just completely spent. And there really is something to when the work is clear, just doing the work, I can actually find energizing. And it's fun, and I can get in flow state. And sometimes, I'll be drained in a certain way. But the work of taking a bunch of different slack threads, and communications, and meetings, and synthesizing that down, and then determining what the work needs to look like moving forward, and providing enough clarity but then not over constraining and not providing too much clarity. And there are so many micro-decisions that are being made in there. And I'm just spent at the end of the day, and I have so much...I've always had a lot of respect for product managers and folks that are existing in that interstitial space and trying to make sense of the noise, especially of a growing company, but all the more so this week as I've been feeling some of that myself. STEPH: I totally agree. I have felt that having a strong product manager really makes or breaks a project for me where even though having technical leadership is really nice, I'd prefer someone that's really strong at the product knowledge and then helping direct where the product is headed. That is incredibly helpful. Like you mentioned, the work is exhausting. There's someone that joined the thoughtbot team fairly recently, and I was chatting with them about what type of projects they would be interested in working on. And one of their responses was, "I'd love to work on a project with a strong product manager because I have been doing that a fair amount for recent years. And I would love to get back to just focusing on coding." And so I think they enjoyed some of the work, but they just recognize it's exhausting. And I'd really like to just get back to writing code for a while. CHRIS: Yeah, I'm definitely in that space. And I think there's a ton of value to spending a little bit of time, like having any developer at some point in their career spend a little bit of time managing the backlog, and you will learn a bunch from that. But I'm also in the space of I would love to just turn on some music and code for a while. That sounds fun. There's a lot of work to be done right now. I'd love to just be in there doing the work. But sometimes, out of necessity, the defining of the work is the thing that's important. And so, I think I've been correctly assessing the most important thing. And that that has consistently for a while now been the defining and responding to the work that's in process as opposed to doing it myself. But, man, I really hope I get to dive back into the code sometime and use my clackety keyboard to its fullest extent. STEPH: Have you found any particular strategies that really help you with the product management work? CHRIS: I will say that I think this is a competency. This is a skillset and a career path that...again, I've been at plenty of organizations that I don't think respected the role as much as it should be. But it's an incredibly hard role and multidisciplinary communication at the core of it. And so I don't think I'm great at it is the thing that I'll say. So everything that follows is just to be clear; I'm not saying that I'm great at this, but I have been doing some of it. So here are some thoughts that I have. I think a lot of it is in reaction to where I felt like the work was clear. So I have a sense of what it looks like when I can go to the backlog, trust that it is in a roughly solid priority order, pick up a piece of work and immediately go to work on it. And understand what are the end-user implications of this piece of work? Where would I start on it like, how technically? What's a rough approach that I would have? And getting that level of specificity just right. So it's not overconstrained, but it's not under constrained. So having experienced that on the developer side, I try and then use that to shape some of the guidance that I'm putting into, say, the Trello tickets that I'm writing up here. We recently introduced Trello epics, which is I want to say like an add-on. And that allows us just the tiniest bit of product management, like one level up. So instead of just having cards and a list that is like, here's the work to be done, we now have an epics list that is separate to it, and it links between a card and its associated epics. So it's like project and action within that project. And just that little touch of structure there has been really, really useful to help look at like, okay, what are the big pieces that we're trying to move? And then how do they break down into the smaller pieces? So a tiny, tiny bit of fanciness in our product management tool, not Jira-like not going in that direction yet for as long as I cannot. But that little bit of structure. And then thinking about what has been useful to me as I pick up tickets. And then, as always, trying to just always be cognizant of what is the user's experience here? What problem am I trying to solve for them? What is their experience going to be? How will they know how to work with this feature? And just always asking that and then framing the work to be done in the context of that. STEPH: I like how you're adamant about a little bit of fanciness but not all the way to Jira-like. I also like how you highlighted end-users. All of that, I think, is awesome when developers are able to expand their role to experience all the other facets of building software. CHRIS: Yeah, definitely. I think that whole list of all of the different facets of where our work interacts with different groups. The more empathy or, the more experience that you can have there, the better that you'll be able to understand how to communicate there, how to express things in terms, et cetera, et cetera. So a huge fan of all of those ideas. I am ready to just get back in the code for a few minutes, though. But for now, for as long as necessary, I'll do some of this work. But I am trying to find my way to other things. In terms of actual feature work that we're working on, one of the things that we're doing right now is restructuring our onboarding. So when a user comes and signs up to the website and then subsequently has to fill out a handful of other forms, there's actually an external system that we've been working with that houses some of the core data of our application. And they have a hosted application form. So we can send the user over to them, and the user fills out the rest of the application on this other system's site. And then they get redirected back to us. And everything's got nice DNS entries for a particular subdomain and whatnot. So it looks roughly consistent. There's some branding. But it's still someone else's UI, essentially. And we were feeling enough pain from that experience. We were like; you know what? It's time. We're going to bring this back in-house. We're going to do all the forms ourselves. We're going to do a nice progressive little progress bar. You can see all the steps as you're going through onboarding. We're just going to own that more because that's a core part of the experience that we're building here. So biting the bullet, deciding to do that. But there's an interesting edge case that we run into, which is we are using Devise for authentication. Totally makes sense. We're in Rails context; there we go. It's the thing to use. But Devise exists in truly the Rails world. So like HTML ERB templates, the controllers have certain expectations as to what's going on. So thus far, we've just let that exist in that world and everything else we're building in Inertia and Svelte. But we're just now starting to feel enough of the pain, and that Devise exists in this other context. And for a while, we just kept saying, "You know what? It's not worth the effort to port it over. It's fine." Because we're using Tailwind, we have a consistent design language that we can use across them. That said, the components are drifting a little bit. And it's like, oh, this one's got a rounded corner like this, and that one's got this color. And we don't have the disabled style. But it is nice that it's not completely distinct. But we have finally decided it is time. We need to port this thing over because we feel like the onboarding and authentication type flows; they're actually a big part of the user experience or at least the first run user experience when someone's signing up to our site. So we want to own that a little bit more. One of the things that I ran into as I was trying to introduce Mailcheck, which is a library that I've talked about, I think in a previous episode...but basically, you can have it observe a field and if someone types in like, user@gmaip.com, you can like, did you mean gmail.com? And then go from there. And I think there's more subtlety. They can maybe even look up MX records and things like that. But basically validate an email address heuristically and offer the nice, very friendly to a user, "Hey, did you mean this instead?" So not a full validation that says, "No, you cannot put your email address," because maybe you have a weird one that sounds like Gmail but isn't. But that's a little bit trickier to implement both on the Devise side and then in any other place that we have an email input. And so what we want to do is port over to Inertia and Svelte, and then everything's in our nice, happy context with all our components and all the other work that we're doing. And it really does just highlight how much I've come to enjoy working with Inertia and Svelte. They are fantastic technologies. And now I just want absolutely everything to be in them. So we're finally going to bite the bullet, and I think port those over a little bit after we get the current batch of work done. But soon, soon, that's the goal. STEPH: I'm having a bit of déjà vu where I feel like there was a project that you were working on that was using Devise, and then removing Devise and replacing it with something else was a challenge. Does that ring a bell? CHRIS: Yes, that is accurate. So I had a project that I worked on where we had both Devise and Clearance was actually what was going on. There were basically two different applications that existed; one was using Clearance, the later one used Devise. But then we folded those two applications back together. And by virtue of that, I tried to unify the authentication schemes, and it was like, nope, not going to happen. And then we didn't. STEPH: And then we didn't. [laughs] I like that ending. CHRIS: Well, sometimes you don't. [laughs] STEPH: Yeah, I love that ending because it reflects reality. Sometimes that just happens. In fact, I'm going to segue for just a moment because you're reminding me that there's something I don't think I've shared with you yet. On my previous project, there was a particular feature. It was a big feature that someone had picked up and worked on. And at one point, we were essentially playing hot potato with this feature because we hadn't gotten it to the point that it was merged. There was too much that was happening in that pull request, although then we ended up merging it. But then we found lots of bugs. And it was just one of those features that we couldn't really get across the finish line. There was always something else that was wrong with it or needed to be done or needed to be considered. And we'd reach that point where Chad Pytel, who is on the project, was like, "We're either going to finish this, or we're going to throw it away." And I felt a little guilty saying this, and I was like, "I vote we throw it away. I have lots of concerns about this. We are essentially reimplementing another complex workflow. But now, we are implementing it pretty differently in another portion of the application. It's going to be hard to manage. The cost of adding this and maintaining this is a really high concern." And so he talked with the rest of the team and came back, and he's like, "Yep, we're going to throw it away." And so then he issued a PR, and we removed it. And it was one of those moments of like; this isn't great because then we have invested hours into this, and now we are taking it away. But it also felt really good that that's always an option. And that was the better option because it was either we're going to continue sinking more time into this, or we can stop it now. And then we can move on to more important work. CHRIS: Sunk costs and all that. STEPH: Yeah. I feel like it's so rare when that really happens because then we just feel dedicated to like, well, we're going to make this valuable to somebody. We're going to keep this. And in this case, we just threw it away. It's very nice. CHRIS: There's a similar anecdote that I remember. Actually, I think it's happened more than once. But very particularly, we were working on a system. And this was with our friend, Matt Sumner, a friend of the show, as well been on a few times. And Matt was working on the project. And we got to a point where we had two competing implementations of a given workflow, and we were opting to go with the new one. But there were folks that were saying, "Let's keep the code around for the old one." And Matt was like, "Absolutely not. If we do that, we might go...no, this will be bad. Then we have to maintain that code. We need to burn the ships," as he said. And he actually named the pull request burn the ships where he just removed all the code. And I was like, I like your style, man. You made a decision here. We collectively made a decision. And then this is a classic Matt Sumner move. But he did the thing that we said we were going to do. And he just held that line. And I really appreciated it. And it's a voice that I have in the back of my head often now, which is just like, no, burn the ships. If we need it, it'll be in Git history. We can recover it. But it's going to need to be handled in the interim. We don't want to have to support that code right now and for however long until we actually decide to remove it from the codebase. So let's get rid of it. And if we really need it, well, then we'll resurrect it, but for now, burn the ships. And I like that. STEPH: I like that too. I think it's one of those areas where it takes experience to feel that pain too. If you're pretty new to writing code, you're going to think, well, we can keep it around. There's no harm. And so it often has to be that sage, that person who's been around long enough and felt some pain from making that decision in prior centuries or years. And he's like, "No, we're not going to do this." The WE collective of developers who have experienced the pain from this understand that that's not a good choice. And so we're going to burn the ships instead. But it is one of those that if you're newer, you won't think that way. And I think that's totally reasonable that you wouldn't think that immediately. CHRIS: I think that tacit knowledge that oh, I've gone through this before, and I've experienced the pain, and now let me tell you about that. And let me try and share that with you because there's always the cost-benefit trade-off. Because if that code stays in the codebase, then we know it works because we've kept it around for that whole time. And so there's a nicety to that, but there's a cost, that maintenance cost. And being able to express that well and being able to say, "I've been here, and let me tell you a tale," but do it in a way that doesn't sound overly condescending or explainy or things like that. I think that's a very subtle skill and a very important one, and frankly, really hard one to get right. I'm not sure I always hit the mark on that where I'm just like, "No, can't do it. It's bad." I think it's very easy to end up in a space where you're just like, "No, it's bad." And they're like, "But why?" And you're like, "Because it's bad. Trust me." It's like, well, I feel like you do need to be able to explain the stories, the experiences that you've had in the past, the anecdotes that you've heard, the blog posts that you've read that have really informed your thinking. But I think that is a big part of what it means to continue on in this profession and be able to do the work and make those subtle trade-offs, and the it depends because, at the end of the day, it all depends. STEPH: Or you just issue a pull request and title it burn the ships. [laughs] CHRIS: Burn the ships. Indeed, that is, in fact an option. And actually, while we're on the topic of pull requests, this might be a perfect segue into a listener question that we have. Mid-roll Ad And now a quick break to hear from today's sponsor, Scout APM. Scout APM is leading-edge application performance monitoring that's designed to help Rails developers quickly find and fix performance issues without having to deal with the headache or overhead of enterprise platform feature bloat. With a developer-centric UI and tracing logic that ties bottlenecks to source code, you can quickly pinpoint and resolve those performance abnormalities like N+1 queries, slow database queries, memory bloat, and much more. Scout's real-time alerting and weekly digest emails let you rest easy knowing Scout's on watch and resolving performance issues before your customers ever see them. Scout has also launched its new error monitoring feature add-on for Python applications. Now you can connect your error reporting and application monitoring data on one platform. See for yourself why developers call Scout their best friend and try our error monitoring and APM free for 14 days; no credit card needed. And as an added-on bonus for Bike Shed listeners, Scout will donate $5 to the open-source project of your choice when you deploy. Learn more at scoutapm.com/bikeshed. That's scoutapm.com/bikeshed. CHRIS: As always, thanks to everyone who sends in listener questions. We so appreciate getting them. They help direct the conversation and give us something to chat about. So this question comes in from Bryan Robles. And Bryan writes in about large pull requests. And Bryan writes in with, "My toxic trait is large pull requests. Any tips on when you get into a place where you're fixing or refactoring something, and it ends up cascading to many more changes than you want it to? I sometimes can go back and break it up. But it's hard to recognize a good seam when you're in the thick of it." So, Steph, what do you think? Large pull requests and finding yourself in them after [laughs] certain amounts of time. STEPH: Yeah, speaking of that knowledge that often comes from experience, this is something that I'm certainly always striving to get better at. I think it does take practice. There are some things that I do that I can share. And I categorize them really into a before, and I guess midway. So there's the before I set sail and set off to deeper waters list that I will think through as I'm starting a new task, and then there's the I'm lost at sea. And then, I need to figure out how I'm going to organize this change. So in the first category, when I'm first starting off a task, I consider what sort of changes need to be made, and are there any obvious roadblocks? So an obvious roadblock may be changing or updating a model that has one relationship, and I need to change it to has many relationships. Or perhaps there's a part of the application that is untested. And before I make any changes, I need to document that existing behavior. And that really falls neatly within Kent Beck's advice where he said, "First make the change easy (warning: this might be hard) and then make the easy change." So I try to think upfront what are some of the small, incremental changes that I can make first that will then make the final change easy? And then I separate that mentally into PRs. Or I may separate it into tickets, whatever is going to help me stay organized and communicate how I'm breaking up that work. And then the other thing that I'll do is I'll consider what's my MVP? So what's my minimum viable pull request? What set of changes include just enough changes to be helpful to users or to other developers? Which, by the way, is also a helpful mindset to have when you're breaking down work into tickets. So, as an example, let's say that I need to fix some bad data that's causing a site to error. So my first step could be to write a task to fix the bad data. And then, step two, prevent bad data from being created. And then probably step three, I need to rerun the task to fix data that was created during step two. But I can think through each of those steps and separate them into different pull requests. And then there may also be the question of well, how small is too small? Like you're saying, what's a minimum viable pull request? How do I know if I am not delivering value? And that one gets a little trickier and vague. But ultimately, I will think, does it pass CI? Is this change deployable? And then I do have to define what value I'm delivering. And I think that's a common area that folks struggle because we'll think of delivering value as delivering a whole new feature or adding complete test coverage for an untested interface. But delivering value doesn't have to represent that end goal. It may be that you added one test for an untested interface. And that's still delivering really great value to your team, same for delivering a feature to a user. You may be able to speak with that wonderful product manager and find what's the smallest bit of value that you can deliver instead of the whole feature set? I think the smallest PR I can think of that I've issued is either fixing a typo or removing a focus metadata from an RSpec test. So that's my starting point. That's the before I set sail. Those are some of the things I think about. I have more for the I'm lost at sea. But what are your thoughts? CHRIS: First, that was a great summary that you gave. So I totally agree with everything that you just said. I think part of the question I would have...So Bryan wrote this in and described this as his toxic trait. So he's identifying this as something that seemingly consistently plagues him. So I would ask, is there a way that you can introduce something? Like, are there natural breaks in your day? And can you ask the question at those breaks? Like, hey, I've been working on a thing for a little while. Is there a version that I could...like, could I close off a body of work at this moment? When you break for lunch, if you go grab coffee in the morning, when you're leaving at the end of the day, use those natural breakpoints. I'm not sure exactly what you mean when you say large pull requests. But if those are spanning multiple days, in my mind, if anything starts to span more than a day, I will start to ask that question to myself. And that's a reflex that I built up over time by feeling the pain of large pull requests and putting it up, and feeling apologetic. And then having my colleagues gently, professionally kindly ask me to break it down into smaller pieces. And me saying, "I really don't want it. All right, fine, fine, fine, I'll do it." And then I do it. And it's one of those things that I never want to do in the first place, but I'm always happy to have done after the fact. But it is work. And so, if I can get better at pulling that thinking and pulling that question earlier in the process, that I think is really useful. Similarly, I will try to, again, as friendly as I can; if I notice someone mentioning the same body of work at stand up for a few days, I might gently ask, "Hey, is there a way that we can find a shippable version of a portion of that of a subset? Can we put it up behind a feature flag and get something out there just to try and keep the PR small, et cetera?" And so gently nudge in that direction. And then I think the other side of that is being very okay with one character PRs. Like, that's it. We changed one character. It turns out we need to pluralize that word, or we need one-line changes are great. That's fine. And more pull requests, in my mind, are better than fewer, larger pull requests. And so really embracing that and having that be part of the core conversation and demonstrating that throughout the team is a way to share this idea. So that's perhaps more in the process or person point of view on this as opposed to the technical, but that's part of the consideration that I would have. I am interested, and I'll bounce back to, Steph, what you were saying of now that you're out at sea, what do you do? STEPH: So I need to react positively to some of the things that you just said because you made me think of two things. One of them is I've never had someone say, "Hey, Steph, that PR is too small. Could you add some more changes to it? Could you do some more work?" I have had people say, "Hey, that PR was hard to review." But even then, sometimes getting that feedback from folks is hard because nobody really wants to say, "I had a hard time reviewing your PR." That's something that, over time, you may become really comfortable saying to someone. But I think initially, people don't want to say, "Hey, that was hard to review," or "There were a lot of changes in that. Would you break it down?" Because that's a lot of complex emotions and discussion to have there. But yeah, I just figured I'd share that I have never had someone complain that a PR is too small, and I've issued a single character change. And then I love, love how much you asked the question of what's the problem we're trying to solve? And so there's this ambiguous idea of a large PR. But what does that mean? What are the pain points? What are we actually looking to change about our behavior? And then how is that going to impact or benefit the team or benefit ourselves? And so, going back to the question of how do we measure this? How do I know I'm starting to break up my changes in a helpful way? We may need to circle back to that because I don't have answers to it. But I just really like asking that question. As for the I'm lost at sea part, or maybe you're not lost at sea, but you've caught too many fish, and the fish warden is going to fuss at you if you bring too many fish back to dock. I don't think this is a real nautical example. But here we are. CHRIS: Was that the fish warden? STEPH: Yeah, the fish warden. You know, the fish warden. [laughs] CHRIS: Sure, I do, yeah. Yeah, I know about that, well-versed in fish law. STEPH: [laughs] Got to know your fish law. If we're going to talk about pull requests, you got to introduce fish law. But I'm actually going to quote Joël Quenneville, a fellow thoughtboter, because they shared a thoughtful thread on Twitter that talks a lot about breaking up your changes and how to break up your pull requests and your commits. And I'll be sure to include a link in the show notes because it's really worth reading as there's a lot of knowledge in that thread. But one of the things that Joël says is get comfortable with Git, and it makes a world of difference. In particular, you want to get really good at git add --patch, git reset, and git rebase interactive. And that is so true for me. Once I have gotten really good at using those commands, then I feel like I can break up anything. Because often when I am helping someone break something up, it's often they want to, but they're like, "I don't know how. And this is going to take so much of my time. It doesn't feel efficient and the right thing to do." And they're probably right. If you don't know how to break it up, then it may take you too long. And maybe it's not worth it at that point. But if you can ask a friend, and they can help walk you through this process, or if you can learn on your own, that's going to be a game-changer because you will start to think about how can I separate these commits? And I can reorder them, and then issue separate PRs, or just keep them in separate commits, whatever process you're looking to improve. In fact, there's a really great course on Upcase called Mastering Git written by someone who is co-host of this podcast. And it has a lot of great videos and tutorials that will help you get really good at these Git commands and then will help you split up your commits. CHRIS: Oh yeah, I did do that. Warning: it's like three and a half hours long. But it is broken up into, I believe, 10 or 11 videos. So you can find just the ones that you want. There's a couple in the middle that I think are particularly useful talking about the object model of Git. Git is weird, unfortunately. And so I spent a bunch of time in that course. Also, thank you for the kind words, Steph. [laughs] But I spent a bunch of time in that course trying to make Git less weird or understandable. If you look under the hood, it starts to make more sense. But if you really want to get comfortable with manipulating Git history, which I think is a really useful skill for this conversation that we're having, that's the only way I found to do it, just memorizing the steps. It's always going to feel a little bit foreign. But once you understand the stuff under the hood, that's a really useful thing for being able to manipulate and tease apart a pull request and break it into different things, and port things from one branch to another, and all those fun activities. Yeah, man, that was a bunch of years ago too. I wonder what I look like in it. Huh. STEPH: I really liked that episode, the one you just mentioned, the Git Object Model. Now that you've mentioned it, I remember watching it, and it's very interesting. So yeah, thank you for making all this helpful content for folks. There's also a blog post that we can include in the show notes as well that is a really nice overview of using git interactive, and rebase, and squash and amend those types of behaviors as well. So will be sure to include both so folks can check those out. And then to round things out, one of the other things that I will do is I will ask a friend. I will ask someone for help. So we've talked about some of these behaviors, or some of these processes that we have are really built up from experience and practice. And you can watch a lot of helpful content, and you can read blog posts. But sometimes, it really just takes time to get good at it. I know, as I'd mentioned earlier, I am always still looking to improve this particular skill because I think it's so valuable. And one of the ways I do that is I will just phone a friend. And I'll say, "Hey, can we chat for a bit? I would like to show you my changes. I want to hear from you if you see something in here that's valuable that you think can be shipped independently, so that way we can get it delivered faster." Or it may be a change that's just like a test improvement or something. And we can go ahead and get that immediately released to the team, and it will benefit them. Or you may want to do this at the start of a ticket. If I am new to a project or when I am new to a project, I will often ask someone to break down a ticket with me if I'm feeling a little bit uncertain. Or just say, "Hey, do you see any clean lines of division here? I feel like there's a lot in this ticket. You're more familiar with the codebase. What would you ship? How would you ship this incrementally?" and have someone else walk through the process with you. CHRIS: Yep, the phone a friend and/or, as always, pairing is a wonderful tool in these sorts of situations. The one other thing that comes to mind for me is part of the question was about sometimes it's difficult to find a clear parting line within a larger body of work, within a larger change. And that can definitely be true. I think there are certain standouts of like is this a refactoring that can be shipped separately? Is this a test change that would be useful on its own? Is there a model change that we could break out and have just that go out? So there's a bunch of mechanical questions that we can ask and say; here's categories of things that might fit that bill. But to flip this to the other side, the question was asked by Bryan very much as an I struggle with this thing. This is my toxic trait is the phrase that he used, which I thought was really interesting. And that can be true. This can be something that if you're consistently and uniquely within the team producing these giant PRs and then folks find that difficult to review, then I think that is absolutely something to work on. But if this is something that is happening between members like, other members of the team are also finding that they keep ending up with PRs that are bigger than they expected and taking longer and harder to review, there is a question of is the codebase actually in a shape that makes it harder to do small changes? There's the phrase shotgun surgery, which refers to a codebase that is so entangled and coupled that any change requires modifying ten files just to make one small alteration. And I think that's a worthwhile question to step back and ask, actually, is it not me? Is it actually the codebase? It could be both certainly. But there is a version of your codebase is coupled in a way that means that any even small, tiny change requires touching so many different places in the code. And if that's true, that's at least worth naming and worth highlighting and maybe talking about in retro and saying, hey, this feels like it's true. So maybe we start to get intentional about refactoring, and breaking out, and starting to add those dividing lines within the code such that hopefully, down the road, small changes can, in fact, be small changes. So that is the one last thing that I would consider here. Also, anecdotally, this is just a thing that came to mind. As I've worked with strongly-typed languages, systems that have a compiler, and have a type system, and the ability for the compiler to keep an eye on the whole codebase, I've noticed that it's very easy to do this sort of thing where I just start with one small data model change, and then the compiler is like, oh, you got to go fix it here, and here, and here, and here. And I found that because the compiler is your friend and will just point you to all the places you need to make the change, it is very easy to just keep going because some of that mechanical work is happening on your behalf. And it's a wonderful facet of typed languages and of having a compiler and being able to have that conversation with the compiler. But I found that for me, it is much easier to end up in this mode where I'm like, oh no, this PR is way too large. When I'm working in a system that has types, that has a compiler, that frankly makes it a little bit easier to chase down all the places you need to make a change. So that's also a consideration. It's not necessarily a good or a bad thing, just something that I've observed that feels like it's adjacent to this conversation. But yeah, I think those are my thoughts. STEPH: Yeah, those are great points. I've certainly worked on projects where that felt very true where it's a small change, but it would cascade throughout the project. And all the changes were necessary. It wasn't something that I could split into smaller PRs. So checking if it is the codebase that's really making it hard to have small PRS is a really great idea. CHRIS: Who'd have thunk such a little question could get us rambling for so long? Oh, wait, I would have thunk that. STEPH: And so far, reflecting on the things that we've talked about so far, I think I've talked a good game of where I'm saying, "Oh, I identify the seams upfront, and then I organize and create different tickets." And that is very much not the case. That's the really ideal outcome. But often, I am in the thick of things where like you just said...and it's this moment of, oh, I've done a lot in this PR. And how can I break this up? And that does take time. And it becomes a conversation of trade-off, which is why those Git skills really come in handy because then it will lower the cost of then splitting things out for others. But for people that are struggling with creating smaller PRs, I do think it's very fair to ask your team for help. I think it's also fair that if you issued a large pull request and folks have already reviewed it, and it's gotten approved, and someone makes a comment like, "Oh, this would be great as two PRs instead of one," to say, "Awesome, thank you for letting me know. I will take that forward with me, but I'm not going to do it for this PR." I wouldn't recommend making that a habit. But just know that that is something that you can say to someone to say, "I think this one is good to go at this point. But I will keep that in mind for future PRs. And I may even reach out to you for help if I feel like I'm having trouble splitting up a PR." And bring that person into your progress and use them as an accountability buddy. They can be someone that helps you down that path towards smaller PRs. CHRIS: Yeah, I definitely agree with that, although it becomes a very subtle line. Saying, "Thank you, but no thank you," in a pull request or to feedback is delicate. It's difficult. That's a whole thing. But I agree there have been times where I have either been the one making that decision or suggesting that or being like, "We probably should have broken this up. But we're far enough along now. Let's get this merged. And then we'll iterate on it after the fact." One last thing, actually. I thought I was done, but I have one more thing, which is I feel like there's a strong parallel between test-driven development and this question in that, often, I hear folks saying, "I don't know how to write tests upfront. I don't know how to do that. I know after the fact I can write tests, and I can add them after." And that can definitely be true. It can become more obvious after you've written the code how you could then write a test that would constrain that behavior that would interact with the system. But I think the useful thing that you can do there is take a moment and pause there and say, "Okay, now that I have written the test, what would it look like if I had written this in the first place?" Or if you really want to go for it, throw away the code, try again. Start with the test first and then rebuild it. That's maybe a little much. But that thing of taking these moments of maybe you don't know upfront how to break the work into smaller pieces, but then you get to the end, and you have that conversation with someone. And they highlight where some parting lines would be, or you figure it out after the fact. Stay there in that moment. Meditate on it a bit and try and internalize that knowledge because that's how moving forward, you might know how to do this in the future. So take those moments, whether it be with TDD or with pull requests, or breaking up a ticket into smaller tickets, anything like that. And spend a moment there and try and internalize that knowledge so that you have it proactively moving forward. STEPH: You know how Slack has status? I really like the idea of there being a status that's meditating on...and you can fill it in. And the example that you just provided, meditating on splitting up a pull request or meditating on how to write a test first, [laughs] I think that would be delightful. CHRIS: I, too, think that would be delightful. But with that long, adventurous answer to what seemed like a simple question, and they always do, but here we are, shall we wrap up? STEPH: Let's wrap up. CHRIS: The show notes for this episode can be found at bikeshed.fm. STEPH: This show is produced and edited by Mandy Moore. CHRIS: 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, as it really helps other folks find the show. STEPH: If you have any feedback for this or any of our other episodes, you can reach us at @_bikeshed or reach me on Twitter @SViccari. CHRIS: And I'm @christoomey STEPH: Or you can reach us at hosts@bikeshed.fm via email. CHRIS: Thanks so much for listening to The Bike Shed, and we'll see you next week. All: Byeeeeeeeeeee! Announcer: This podcast was brought to you by thoughtbot. thoughtbot is your expert design and development partner. Let's make your product and team a success.

the Millennial Throwback Machine
Interview Episode 12: Dayna Hartwick

the Millennial Throwback Machine

Play Episode Listen Later Nov 29, 2021 73:42


I hope you had a great thanksgiving Holiday with your friends and family, this week's episode is something pretty special. So it's on a VERY special and rare occasion that I do interviews on my podcast, sometimes I do them, but most of the time I don't, but whenever I do, I try to bring in interesting guests, and most of the time it's someone from the 60's, and why I bring in a music industry figure from the 60's is so that way they can share the story behind the songs they helped create, but they can also share a lot of cool memories about their time in the music industry back in the 60's, but it's also because in 10-15 years, most of these people will be gone and a lot of their stories will not be told unless they go on a podcast to talk about their life in the music industry back in the 60's, and since this is an internet podcast, this will live on the internet forever and will never go away, so future generations will be able to listen to these interviews and see what it was like to be in the music industry back in the 60's, and many times there are learning lessons from these people as they often were taken advantage of by other industry people and many of them did not profit from the massive success they had back then. so hopefully the long lasting systemic trend of people getting royally screwed in the music industry ends at some point, and hopefully these interview episodes will help make that happen, and this podcast episode, I have someone on that shares one of those stories, and it's familiar, but it also shines a light on the unfair treatment women specifically were given in the entertainment industry at that time (even though honestly, men got screwed over too, but women often got the worst of it a lot of times) and it's honestly has been a long time since I had a woman guest on my podcast, but I hope this opens your eyes to some of the awful things that women went through in the music industry at that time, and that just because someone was involved in making hit records, that doesn't mean that they were millionaires as people imagined them to be, cause often times, someone was making a HUGE profit on these records, but was it the people behind the scenes?, most certainly not. Session musicians were like constructions workers. they clocked in, did their work, got paid , they clocked out then they left the studio they were at cutting records, and came home. but instead of building houses or bridges, they were sight reading charts & blasting out songs every thirty or so minutes during 3 hour union sessions at major recording studios, and then hearing their songs they played on on Top 40 radio in their cars just months and weeks and sometimes even days after they played on them, and this week's guest was one of those people. you never saw her name on records, but trust me, she was there and will always be there no matter how many times you hear the songs she played on even after she is no longer here with us. She played some AMAZING flute parts on records that were HUGE and she was also a piccolo player too, so I'm very excited to have her on this week, and if your wondering when I"m gonna do this again, very soon I'll be doing more interviews. Often times I go through long Dry spells of not doing any interviews, then a bunch more come up and I do a bunch more. But to give you some context of exactly what we talk about during this interview, here are the links to some of the songs that we talked about. I will be putting these into the official playlists for this podcast, but don't be afraid to stop and listen to these songs when listening to this interview then come back to listening to this interview, it will help you get better context as to what is being talked about here. https://www.youtube.com/watch?v=1v4twH9KbnUhttps://www.youtube.com/watch?v=4heHLbchPKkhttps://www.youtube.com/watch?v=Fjufjv4rH0shttps://www.youtube.com/watch?v=48AGnoovrRUhttps://www.youtube.com/watch?v=Ex6zh6InDmQPlease do follow me on Instagram & reach out to me on there as well: https://www.instagram.com/iheartoldies/Would love it if you could also check out more of my original music right here:https://www.samwilliamsmusic.netPlease do also check out the EP that I put out this year. Would love it if you could listen to it and you could let me know whatcha think of it. I love all of the songs on the album, and I hope you do too. please email me at samltwilli@icloud.com and let me know your thoughts on this EP. would love it if you could do that: https://distrokid.com/hyperfollow/samlwilliams/turquoise-apricotWould also love it if you could read the two interviews I did this year as well. I shared a lot about myself in these interviews and I hope you learn a lot about me when reading these interviews, so after reading these interviews, if you would like to meet me in person because my personality intrigued you after reading these interviews, please don't be afraid to reach out to me. drop me a line at samltwilli@icloud.com, or you can also reach out to me on Instagram @iheartoldies: https://honkmagazine.com/sam-l-williams-talks-about-his-career-path-influence-and-new-music/https://shoutoutla.com/meet-sam-l-williams-musician-songwriter-podcast-host/Please do also check out the Official Spotify and Youtube playlists for this podcast, here you'll be able to find all of the songs that I have talked about on my podcast, plus some of the ones that I have mentioned in interview episodes of this podcast. if you liked any of the songs that are on this playlists and would like to suggest any songs I should cover next on my podcast that I haven't covered yet, please email me at samltwilli@icloud.com, or you can also reach out to me on Instagram @iheartoldies: https://open.spotify.com/playlist/21f3uBS6kU4hUF6QAC5JMjhttps://www.youtube.com/watch?v=CS1sYR7xky8&list=PL66sgq_GAmRcXy8yKZJfVmAD14HUYj7NfPlease don't forget to also check out my official music video I put out this year as well, would love it if you guys could watch it and let me know whatcha think of it, you can do that by emailing me at samltwilli@icloud.com, or you can also reach out to me on Instagram @iheartoldies: https://www.youtube.com/watch?v=LTbmSoW6RyYwould also love it if you could also check out the Official Redbubble March store for this podcast. here you'll be able to find these super cool merchandise items with my own custom logo for this podcast, if you liked these logos and would like to give me feedback on the prices of each item in the store plus the logo itself, please email me at samltwilli@icloud.com, or you can also reach out to me on Instagram @iheartoldies: https://www.redbubble.com/people/60ssam95/works/36806158-keep-things-groovy?asc=u&ref=recent-ownerhttps://www.redbubble.com/people/60ssam95/works/88967481-turquoise-apricot?ref=dashboard-earnings-by-artwork&asc=uI would absolutely LOVE your feedback on this particular interview. it's a little bit different then most other interviews I have done on my podcast, because it's very REVEALING about what women went through in the music industry back in the 60's, so hopefully you learned a lot and it opens your eyes to some things that you may or may not been aware of, and if that is true, please email me at samltwilli@icloud.com, or you can also reach out to me on Instagram @iheartoldies.

Dream Freedom Beauty with Natalie Ross
Founders Natalie & Shawna on the ups and downs of spiritual Entrepreneurship [episode 65]

Dream Freedom Beauty with Natalie Ross

Play Episode Listen Later Nov 19, 2021 64:14


Natalie Ross and Shawna Cason share a special announcement and a call-out for support, from the Earth Speak community. You'll also hear about: On why you literally can't buy a community On cultivating growth in a sustainable way How online relationships can create real connection Feeling disconnected from a system that values profit over people  ♥♥♥ Join The Earth Speak Collective Membership! Join like-hearted folks in a sacred container and community where you'll: Connect deeply to yourself, others, nature & spirit Learn to trust your intuition Activate your Earth magic Expand your healing & divination skills Put your intuition into practice in everyday life Stop feeling lonely on your spiritual path Embody & express your creative power & truths Experience safe space without agenda or judgment When you join the Collective, you get access to all of our past workshops, any live workshops happening while you're a member, live weekly energetic reset calls, monthly community rituals, all the secret episodes, member-run meetups to explore magical topics, and a lively members-only forum (that's not on FB!). ▶▶▶ Learn more and sign up for the Collective membership here: https://www.earthspeak.love/collective  ***** We are excited to share this very special episode, where Natalie and Shawna record their first-ever IRL podcast together! They reveal what it was like meeting each other for the first after 3 years of working together online only. And pull back the curtain to share some behind-the-scenes of running a spiritual business in the world of late-stage capitalism. In this episode, Natalie and Shawna give a very special announcement - the launching of Earth Speak's first official t-shirt! They share how the vision for this t-shirt was born and why they are calling forward their community for support. We hope you enjoy this episode! Stay tuned for more info on how to purchase the t-shirt and support this community and magical business.   In this episode, we talk about: What happened when Natalie + Shawna met in person for the first time How you can tell a lot about a person by their book and tea collection  A shared passion and hobby of staring at plants On balancing the silly and the serious in business How online relationships can create real connection An exciting announcement - the launching of Earth Speaks first official t-shirt How the t-shirt represents and embodies the energy and magic of the collective Standing up for the weird Sacred adornment and why the t-shirt is a talisman On embodying what your stand for Natalie and Shawna share their hopes and dreams for the future of Earth Speak  On co-creating with nature spirits Why the t-shirt is an important revenue stream for Earth Speak On the ups and downs of spiritual entrepreneurship Feeling disconnected from a system that values profit over people  How we are programmed to be productive  On why you can't buy a community Why community is dependent on how you show up  On cultivating growth in a sustainable way Not comprising on your integrity  Connection as the medicine  On taking on too much, and knowing when to ask for help Natalie and Shawna get personal and share a little behind the scenes of their business  They share their fundraising goals and what this support will provide  And so much more! Secret Episodes! Get access to past secret episodes at https://www.earthspeak.love/secret. Links: Support us and purchase our t-shirt || COMING SOON  Sign up for our newsletter, get the Village app, or join the Collective membership at www.earthspeak.love Follow us on Instagram @earthspeak // http://www.instagram.com/earthspeak Follow Natalie on Instagram @natalie.alexandra.ross // http://www.instagram.com/natalie.alexandra.ross    Follow Shawna on Instagram @shawna.cason // https://www.instagram.com/shawna.cason/   References: Support us and purchase our T-shirt || COMING SOON Gene in a Bottle || Song https://en.wikipedia.org/wiki/Genie_in_a_Bottle Hannah n'Grained https://www.instagram.com/hngrained/ Star Trek https://en.wikipedia.org/wiki/Star_Trek Animism https://en.wikipedia.org/wiki/Animism Weird || Definition https://www.dictionary.com/browse/weird Amanita https://en.wikipedia.org/wiki/Amanita Late-stage capitalism https://en.wikipedia.org/wiki/Late_capitalism  Egalitarian society https://en.wikipedia.org/wiki/Egalitarianism Bootstrap business https://en.wikipedia.org/wiki/Bootstrapping The Lorax https://en.wikipedia.org/wiki/The_Lorax VC https://en.wikipedia.org/wiki/Venture_capital UX and UI designer https://en.wikipedia.org/wiki/User_experience_design     ► Leave us a written review on iTunes, and get shouted out on the show! Theme music is “It's Easier” by Scarlet Crow http://www.scarletcrow.org/ and “Meeting Again” by Emily Sprague  https://mlesprg.info/ ► Join the Earth Speak Collective Membership at https://www.earthspeak.love/collective Follow Earth Speak on Instagram and tag us when you share @earthspeak https://www.instagram.com/earthspeak